:root{--ink-font-sans: "Inter", "HarmonyOS Sans SC", "Microsoft YaHei", sans-serif;--ink-font-mono: "JetBrains Mono", "Cascadia Code", monospace;--ink-bg: #020617;--ink-text: #e2e8f0;--ink-muted: #94a3b8}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--ink-font-sans);color:var(--ink-text);background:var(--ink-bg);min-height:100vh}button{font-family:inherit}a{color:inherit;text-decoration:none}.canvas-preview{display:flex;flex-direction:column;gap:16px;flex:1}.canvas-preview__header{display:flex;align-items:center;justify-content:space-between}.canvas-preview__title{margin:0;font-size:20px;font-weight:600;color:#f8fafc}.canvas-preview__subtitle{margin:4px 0 0;font-size:12px;color:#94a3b8}.canvas-preview__meta{display:flex;gap:12px;font-size:12px;color:#cbd5f5;background:#3b82f62e;padding:6px 12px;border-radius:10px;border:1px solid rgba(59,130,246,.32)}.canvas-preview__surface{flex:1;background:#070c18cc;border-radius:18px;border:1px solid rgba(148,163,184,.14);padding:16px;position:relative;overflow:hidden}.canvas-preview__surface canvas{width:100%;height:100%;display:block;border-radius:12px}.playback-controls{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;background:#0f172ad9;border:1px solid rgba(148,163,184,.16);border-radius:16px;padding:16px 20px}.playback-controls__buttons{display:flex;gap:8px}.playback-controls__button{width:44px;height:44px;padding:10px;border-radius:10px;position:relative;display:inline-flex;align-items:center;justify-content:center;background:#3b82f62e;color:#bfdbfe;border:1px solid rgba(59,130,246,.35);cursor:pointer;font-size:14px;transition:background .2s ease,transform .2s ease}.playback-controls__button:hover{background:#3b82f647;transform:translateY(-1px)}.playback-controls__button:disabled{cursor:not-allowed;opacity:.4;transform:none}.playback-controls__timeline{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.playback-controls__timeline input[type=range]{width:100%}.playback-controls__timeline input[type=range]:disabled{opacity:.4}.playback-controls__time{font-size:12px;color:#94a3b8;min-width:48px;text-align:center}.playback-controls__speed{display:flex;align-items:center;gap:12px;font-size:12px;color:#cbd5f5}.playback-controls__speed input[type=range]{width:120px}.playback-controls__speed input[type=range]:disabled{opacity:.4}.playback-controls__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.gcode-editor{height:100%;display:flex;flex-direction:column;background:#0f172a;border-radius:12px;overflow:hidden;border:1px solid rgba(148,163,184,.2)}.gcode-editor .monaco-editor,.gcode-editor .monaco-editor-background,.gcode-editor .overflow-guard{background-color:transparent!important}.gcode-editor__active-line{background-color:#3b82f633}.gcode-editor__active-glyph{background-color:#3b82f699;border-radius:4px}.editor-panel{display:flex;flex-direction:column;gap:16px;background:#0c1321d9;border-radius:16px;border:1px solid rgba(148,163,184,.18);padding:20px;min-height:0}.editor-panel__header{display:flex;flex-direction:column;gap:6px}.editor-panel__title{margin:0 0 4px;font-size:18px;font-weight:600;color:#f1f5f9}.editor-panel__subtitle{margin:4px 0 0;font-size:12px;color:#94a3b8}.editor-panel__editor{flex:1;min-height:320px}.error-panel{background:#111c33;border-radius:12px;border:1px solid rgba(148,163,184,.16);padding:16px;display:flex;flex-direction:column;gap:12px}.error-panel__header{display:flex;align-items:center;justify-content:space-between}.error-panel__title{font-size:16px;font-weight:600;color:#e2e8f0}.error-panel__counter{background:#3b82f633;color:#93c5fd;font-weight:600;border-radius:8px;padding:4px 10px;font-size:12px}.error-panel__empty{color:#94a3b8;font-size:14px}.error-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto}@supports (scrollbar-width: thin){.error-panel__list{scrollbar-width:thin}}.error-panel__item{border-radius:10px;overflow:hidden}.error-panel__item-button{background:transparent;border:none;width:100%;display:flex;flex-direction:column;gap:4px;cursor:pointer;padding:12px;text-align:left;transition:background .2s ease}.error-panel__item-button:hover{background:#3b82f61f}.error-panel__item--error .error-panel__item-button{border-left:4px solid rgba(248,113,113,.8)}.error-panel__item--warning .error-panel__item-button{border-left:4px solid rgba(250,204,21,.8)}.error-panel__item-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#cbd5f5}.error-panel__badge{background:#f8717140;color:#fecaca;border-radius:6px;padding:2px 8px}.error-panel__item--warning .error-panel__badge{background:#facc1533;color:#fde68a}.error-panel__line{opacity:.8}.error-panel__message{margin:0;font-size:14px;color:#e2e8f0;line-height:1.4}.app-layout{min-height:100vh;padding:24px;display:flex;flex-direction:column;gap:24px;background:linear-gradient(180deg,#070b14f2,#020617 60%);box-sizing:border-box}.app-layout__content{flex:1;display:grid;grid-template-columns:minmax(360px,400px) 1fr;gap:24px;min-height:0}.app-layout__sidebar{display:flex;flex-direction:column;gap:16px;min-height:0}.app-layout__main{background:#0f172ab8;border-radius:18px;border:1px solid rgba(148,163,184,.18);padding:20px;display:flex;flex-direction:column;gap:20px;min-height:0}.app-layout__footer{background:#0f172abf;border-radius:16px;padding:18px 24px;border:1px solid rgba(148,163,184,.16)}.app-main__stack{display:flex;flex-direction:column;gap:18px;flex:1}@media (max-width: 1024px){.app-layout{padding:16px}.app-layout__content{grid-template-columns:1fr}}.settings-panel{background:#0f172abf;border-radius:16px;border:1px solid rgba(148,163,184,.16);padding:16px;display:flex;flex-direction:column;gap:12px}.settings-panel__title{margin:0;font-size:16px;font-weight:600;color:#f8fafc}.settings-panel__description{margin:0;font-size:12px;color:#94a3b8;line-height:1.4}.settings-panel__field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#cbd5f5}.settings-panel__field input,.settings-panel__field select{border-radius:10px;background:#1e293be6;border:1px solid rgba(148,163,184,.3);color:#f1f5f9;padding:8px 12px;font-size:13px;outline:none;color-scheme:dark}.settings-panel__field input:focus,.settings-panel__field select:focus{border-color:#3b82f699;box-shadow:0 0 0 2px #3b82f640}.settings-panel__hint{margin-left:8px;font-size:11px;color:#7c8ca6}.settings-panel__custom-size{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-panel__custom-size-item{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#94a3b8}.settings-panel__field input[type=number]::-webkit-inner-spin-button,.settings-panel__field input[type=number]::-webkit-outer-spin-button{filter:invert(70%)}.top-bar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-radius:20px;background:#0f172aeb;border:1px solid rgba(148,163,184,.18);box-shadow:0 12px 32px #0f172a52;color:#f8fafc}.top-bar__brand{display:flex;align-items:center;gap:16px}.top-bar__logo{width:44px;height:44px;border-radius:16px;background:linear-gradient(135deg,#1d7df1,#0f5cc2);display:flex;align-items:center;justify-content:center;color:#f8fafc}.top-bar__logo svg{width:30px;height:30px;fill:currentColor}.top-bar__title{margin:0;font-size:18px;font-weight:600;letter-spacing:.02em}.top-bar__subtitle{margin:2px 0 0;font-size:12px;color:#94a3b8;letter-spacing:.01em}.top-bar__menu{display:flex;align-items:center;gap:12px;position:relative}.top-bar__menu-item-wrapper{position:relative}.top-bar__menu-item{background:transparent;border:none;color:#cbd5f5;font-size:14px;padding:10px 14px;border-radius:10px;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.top-bar__menu-item:hover,.top-bar__menu-item--active{color:#f8fafc;background:#3b82f62e;transform:translateY(-1px)}.top-bar__dropdown{position:absolute;top:calc(100% + 8px);left:0;min-width:180px;background:#0d1523fa;border:1px solid rgba(148,163,184,.18);border-radius:14px;box-shadow:0 18px 48px #02061770;padding:8px;display:flex;flex-direction:column;gap:4px;z-index:20}.top-bar__dropdown--right{left:auto;right:0}.top-bar__dropdown-heading{padding:6px 10px;font-size:12px;color:#8ca5d6;text-transform:uppercase;letter-spacing:.06em}.top-bar__dropdown-item{border:none;background:transparent;color:#e2e8f0;font-size:13px;padding:8px 10px;border-radius:10px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.top-bar__dropdown-item:hover{background:#3b82f629;color:#f8fafc;transform:translate(2px)}.top-bar__dropdown-switch{width:30px;height:18px;border-radius:999px;background:#3b82f62e;position:relative;display:inline-flex;align-items:center;padding:2px}.top-bar__switch-indicator{width:14px;height:14px;border-radius:50%;background:#94a3b899;transition:transform .2s ease,background .2s ease}.top-bar__switch-indicator--on{transform:translate(12px);background:#3b82f6}.top-bar__actions{display:flex;align-items:center;gap:12px}.top-bar__gear{width:40px;height:40px;border-radius:14px;background:#3b82f62e;border:1px solid rgba(59,130,246,.35);color:#9cc3ff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background .2s ease}.top-bar__gear:hover,.top-bar__gear--active{background:#3b82f647;transform:rotate(8deg)}.top-bar__gear svg{width:20px;height:20px}.top-bar__avatar{width:42px;height:42px;border-radius:50%;background:#4f46e561;border:1px solid rgba(129,140,248,.5);color:#e0e7ff;display:flex;align-items:center;justify-content:center;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:transform .2s ease,background .2s ease}.top-bar__avatar:hover,.top-bar__avatar--active{background:#6366f199;transform:translateY(-1px)}.top-bar__icon-wrapper,.top-bar__profile-wrapper{position:relative}@media (max-width: 1024px){.top-bar{padding:0 20px;gap:12px}.top-bar__menu{gap:6px}.top-bar__menu-item{padding:8px 10px}}#root{min-height:100vh}.app-modal{position:fixed;inset:0;background:#020617bf;display:flex;align-items:center;justify-content:center;z-index:40;padding:24px}.app-modal__content{background:#0f172af5;border:1px solid rgba(148,163,184,.2);border-radius:18px;padding:24px;max-width:480px;color:#e2e8f0;display:flex;flex-direction:column;gap:16px;box-shadow:0 30px 80px #02061780}.app-modal__content h3{margin:0;font-size:20px;font-weight:600}.app-modal__content p,.app-modal__content li{font-size:14px;line-height:1.6;color:#cbd5f5}.app-modal__content ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.app-modal__content button{align-self:flex-end;border:none;border-radius:12px;padding:8px 16px;font-size:14px;cursor:pointer;background:#3b82f633;color:#bfdbfe;border:1px solid rgba(59,130,246,.35);transition:background .2s ease,transform .2s ease}.app-modal__content button:hover{background:#3b82f64d;transform:translateY(-1px)}.app__file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
