:root{color:#3d3344;background:#f7f1f6;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,HarmonyOS Sans,Microsoft YaHei,sans-serif;font-synthesis:none;--paper: #fffaf8;--ink: #3d3344;--muted: #6f6373;--line: #eadde5;--accent: #ef91ad;--accent-dark: #a94f70;--mint: #a9ddce;--butter: #ffe8a7;--lavender: #d8c9ef;--sky: #c7def5;--stage: #211c24;--stage-soft: #2c2530;--radius: 18px}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}button,input,select,textarea{font:inherit}button,label{-webkit-tap-highlight-color:transparent}button:focus-visible,select:focus-visible,input:focus-visible,label[data-touch-target]:focus-within{outline:3px solid #2367d1;outline-offset:2px}.app-shell{height:100vh;height:100dvh;min-height:0;display:grid;grid-template-rows:64px minmax(0,1fr);overflow:hidden}.topbar{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:11px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:#fff;background:var(--ink);font-family:Georgia,serif}.brand strong,.brand small{display:block}.brand strong{font-size:15px;letter-spacing:.08em}.brand small{margin-top:2px;color:var(--muted);font-size:11px}.topbar-actions{display:flex;gap:8px}.quiet-button,.primary-button,.select-button{min-height:44px;border:0;border-radius:12px;padding:0 17px}.quiet-button{color:var(--muted);background:transparent}.primary-button{color:#fff;background:var(--accent-dark)}button:disabled{opacity:.4}.workspace{min-height:0;display:grid;grid-template-columns:clamp(220px,19vw,272px) minmax(0,1fr) clamp(240px,20vw,288px)}.side-panel{min-height:0;overflow:auto;padding:32px 24px;background:var(--paper)}.left-panel{border-right:1px solid var(--line)}.right-panel{border-left:1px solid var(--line)}.eyebrow{margin:0 0 12px;color:var(--accent-dark);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}h1{margin:0;font-family:Georgia,Songti SC,serif;font-size:clamp(25px,2vw,34px);line-height:1.2;font-weight:500;letter-spacing:-.03em}.supporting{margin:16px 0 24px;color:var(--muted);font-size:13px;line-height:1.65}.select-button{display:grid;place-items:center;cursor:pointer;color:#fff;background:var(--ink);font-weight:650}.select-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.import-status{margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.import-error{margin:6px 0 0;color:#a43f2c;font-size:11px}.restored-indicator{margin:7px 0 0;color:#1f6b4e;font-size:11px;font-weight:700}.mode-preview,.desktop-section{display:grid;gap:8px;margin-top:28px}.mode-card{min-height:44px;display:flex;align-items:center;padding:0 13px;border:1px solid var(--line);border-radius:12px;color:var(--muted);background:transparent;font-size:13px;cursor:pointer}.mode-card.active{color:var(--ink);border-color:#c7c1b4;background:#efede6}.layout-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}.layout-option{min-height:54px;padding:5px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:transparent;font-size:10px;cursor:pointer}.layout-option.active{color:var(--accent-dark);border-color:var(--accent);background:#fff1ea}.reverse-order{width:100%;min-height:44px;margin-top:10px;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:transparent;cursor:pointer}.canvas-stage{position:relative;min-width:0;display:grid;place-items:center;padding:40px;overflow:hidden;background-image:radial-gradient(#cbc7bc .7px,transparent .7px);background-size:16px 16px}.mobile-import-feedback{display:none}.empty-canvas{width:min(62vh,560px);aspect-ratio:1;display:grid;place-content:center;justify-items:center;gap:9px;border:1px solid #ddd8ca;border-radius:4px;background:#fff;box-shadow:0 22px 70px #3732261a}.empty-canvas>span{color:var(--muted);font-size:13px}.empty-grid{width:84px;height:60px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:4px;margin-bottom:10px}.empty-grid span{border-radius:5px;background:#e4e0d7}.empty-grid span:first-child{grid-row:1 / 3;background:#d7d1c5}.canvas-viewport{position:relative;width:min(100%,72vh,720px);display:grid;place-items:center;touch-action:none}.canvas-viewport[data-mode^=stitch-]{width:100%;height:100%;align-items:start;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.canvas-viewport[data-mode=stitch-vertical] .canvas-sheet{width:min(100%,520px)}.canvas-sheet{position:relative;width:100%;aspect-ratio:var(--canvas-ratio);overflow:hidden;background:#fff;box-shadow:0 22px 70px #37322624;transform-origin:center;will-change:transform}.editor-canvas{width:100%;height:100%;display:block}.canvas-hit-layer{position:absolute;inset:0}.preview-frame{position:absolute;min-width:0;min-height:0;padding:0;overflow:hidden;border:0;background:transparent center / cover no-repeat;cursor:grab;transition:box-shadow .18s ease,opacity .18s ease}.preview-frame.selected{box-shadow:inset 0 0 0 3px var(--accent)}.preview-frame.dragging{z-index:3;border-radius:4px;opacity:.88;pointer-events:none;box-shadow:0 16px 36px #2b261e47,inset 0 0 0 3px #fff;cursor:grabbing;will-change:transform}.preview-frame.swap-target{z-index:2;box-shadow:inset 0 0 0 4px var(--accent-dark),inset 0 0 0 999px #da6c4229}.preview-frame:focus-visible{z-index:2;outline:3px solid var(--accent);outline-offset:-3px}.annotation-hit-target{position:absolute;z-index:4;width:44px;height:44px;padding:0;border:1px dashed rgba(255,255,255,.76);border-radius:10px;background:#2927221f;box-shadow:0 0 0 1px #29272247;transform:translate(-50%,-50%);cursor:move;touch-action:none}.annotation-hit-target.selected{border-style:solid;border-color:#fff;background:#d9613c33;box-shadow:0 0 0 3px var(--accent)}.annotation-hit-target:focus-visible{outline:3px solid #2367d1;outline-offset:3px}.canvas-zoom-controls{position:absolute;z-index:4;right:8px;bottom:8px;display:flex;align-items:center;gap:4px;padding:4px;border:1px solid color-mix(in srgb,var(--line) 75%,transparent);border-radius:12px;background:color-mix(in srgb,var(--paper) 90%,transparent);box-shadow:0 7px 24px #3732261a;transform:translateY(calc(100% + 10px))}.canvas-zoom-controls button{min-width:44px;min-height:44px;padding:0 9px;border:0;border-radius:9px;color:var(--ink);background:transparent;cursor:pointer}.canvas-zoom-controls button:hover{background:#ece9e1}.canvas-zoom-controls output{min-width:42px;color:var(--muted);font-size:11px;text-align:center}.gesture-owner{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.control-placeholder{min-height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:13px}.control-placeholder b{font-weight:500}.control-placeholder i{width:22px;height:22px;border:1px solid var(--line);border-radius:50%;background:#f7f3e8}.control-field,.range-field{display:grid;gap:8px;margin-bottom:18px;color:var(--muted);font-size:12px}.control-field select{min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.control-field input{min-height:44px}.range-field{grid-template-columns:1fr auto}.range-field input{grid-column:1 / -1;width:100%;accent-color:var(--accent)}.range-field output{color:var(--ink);font-variant-numeric:tabular-nums}.context-actions{display:grid;gap:8px;margin:22px 0;padding:14px;border-radius:12px;background:#efede6}.context-actions p{margin:0 0 4px;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis}.context-actions button{min-height:44px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff;cursor:pointer}.nudge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.exchange-targets{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.context-actions .done-button{color:#fff;border-color:var(--ink);background:var(--ink)}.text-annotation-editor{display:grid;gap:14px;color:var(--ink)}.text-annotation-editor.desktop{margin:22px 0;padding:15px;border:1px solid var(--line);border-radius:14px;background:#efede6}.text-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.text-editor-heading strong{font-size:14px}.text-editor-heading-actions{display:flex;align-items:center;gap:7px}.text-editor-heading button{min-width:44px;min-height:44px;padding:0 10px;border:0;color:var(--muted);background:transparent}.text-editor-heading-actions .save-annotation{padding:0 14px;border:1px solid var(--accent-dark);border-radius:10px;color:#fff;background:var(--accent-dark);font-weight:700}.text-editor-field{display:grid;gap:7px;color:var(--muted);font-size:12px}.text-editor-field textarea{width:100%;min-height:82px;resize:vertical;padding:10px 11px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff;font-size:16px;line-height:1.45}.text-editor-field span{justify-self:end;font-size:10px}.text-annotation-editor .range-field{margin:0}.text-color-row{display:flex;flex-wrap:wrap;gap:7px}.text-color-row>button{min-width:44px;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.text-color-row>button[aria-pressed=true]{color:var(--accent-dark);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.text-color-row>label{min-height:44px;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.text-color-row input[type=color]{width:44px;height:44px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#fff}.text-style-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.text-style-grid label{display:grid;gap:5px;color:var(--muted);font-size:11px}.text-style-grid select,.text-style-grid button{min-height:44px;padding:0 9px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.text-style-grid button[aria-pressed=true]{color:#fff;border-color:var(--ink);background:var(--ink)}.text-editor-actions{display:flex;justify-content:flex-end;gap:8px}.text-editor-actions:empty{display:none}.text-editor-actions button{min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.text-editor-actions .delete-annotation{margin-right:auto;color:#a43f2c;border-color:#d7a99f}.text-editor-actions .save-annotation{color:#fff;border-color:var(--accent-dark);background:var(--accent-dark);font-weight:700}.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}.storage-status{margin:22px 0 10px;color:var(--muted);font-size:11px;line-height:1.55}.clear-project-button{min-height:44px;padding:0;border:0;color:#a43f2c;background:transparent;font-size:12px;cursor:pointer}.mobile-dock,.mobile-drawer,.mobile-quick-controls{display:none}.export-notice{position:fixed;z-index:20;top:84px;left:50%;width:min(92vw,620px);display:grid;gap:7px;padding:16px 18px;border:1px solid var(--line);border-radius:15px;background:var(--paper);box-shadow:0 18px 60px #28241d33;transform:translate(-50%)}.export-notice strong{font-size:14px}.export-notice span,.export-notice output{color:var(--muted);font-size:12px;line-height:1.5}.export-notice.error{border-color:#d7a99f}.export-recovery-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.export-notice button{min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.export-notice button:first-child{color:#fff;border-color:var(--accent-dark);background:var(--accent-dark)}@media(max-width:899px){.app-shell[data-mobile-empty=true] .workspace{height:100%}.app-shell[data-mobile-empty=true] .canvas-stage{padding:0}.app-shell[data-mobile-surface=preview]>.mobile-top-actions,.app-shell[data-mobile-surface=preview]>.mobile-main-dock,.app-shell[data-mobile-surface=preview]>.mobile-photo-actions{display:none}.app-shell[data-mobile-surface=preview] .workspace{position:fixed;z-index:20;inset:0;height:100dvh}.app-shell[data-mobile-surface=preview] .canvas-stage{padding:calc(56px + env(safe-area-inset-top)) 12px 12px}.app-shell[data-mobile-surface=save]>.mobile-main-dock,.app-shell[data-mobile-surface=save]>.mobile-photo-actions{display:none}.app-shell{grid-template-rows:calc(60px + env(safe-area-inset-top)) minmax(0,1fr) calc(64px + env(safe-area-inset-bottom))}.export-notice{top:calc(68px + env(safe-area-inset-top))}.topbar{padding:env(safe-area-inset-top) 14px 0}.brand small,.side-panel{display:none}.topbar-actions{gap:4px}.mobile-history-button{min-width:44px;padding:0 7px;color:var(--ink)}.workspace{display:block;min-height:0}.canvas-stage{width:100%;height:100%;padding:22px 18px}.mobile-import-feedback{position:absolute;z-index:2;top:10px;left:14px;right:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 10px;border-radius:10px;color:var(--muted);background:color-mix(in srgb,var(--paper) 88%,transparent);font-size:11px;line-height:1.4;text-align:center;pointer-events:none}.mobile-import-feedback .import-error{margin:0}.mobile-storage-status{color:#777269;font-size:10px}.mobile-import-feedback .restored-indicator{margin:0}.mobile-quick-controls{position:absolute;z-index:3;top:58px;left:8px;right:8px;display:flex;align-items:center;gap:7px;overflow-x:auto;padding:5px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-radius:13px;background:color-mix(in srgb,var(--paper) 92%,transparent);box-shadow:0 8px 24px #37322617;scrollbar-width:none}.mobile-quick-controls::-webkit-scrollbar{display:none}.mobile-quick-controls label{min-width:112px;min-height:44px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px;padding:0 8px;color:var(--muted);font-size:10px;white-space:nowrap}.mobile-quick-controls label:has(select),.mobile-quick-controls label:has(input[type=color]){min-width:104px}.mobile-quick-controls input[type=range]{width:70px;accent-color:var(--accent-dark)}.mobile-quick-controls input[type=color],.mobile-quick-controls select{min-width:52px;min-height:44px;border:1px solid var(--line);border-radius:9px;background:#fff}.mobile-quick-controls button{flex:0 0 auto;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.mobile-quick-controls output,.mobile-quick-controls span{flex:0 0 auto;color:var(--muted);font-size:11px;white-space:nowrap}.empty-canvas{width:min(88vw,58vh)}.canvas-viewport{width:min(100%,92vw,62vh)}.canvas-zoom-controls{right:0;bottom:-2px;max-width:100%;transform:translateY(100%)}.canvas-zoom-controls button{min-width:44px;padding:0 7px}.mobile-dock{display:grid;grid-template-columns:repeat(5,1fr);padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper)}.mobile-dock button{min-width:44px;min-height:44px;border:0;border-radius:11px;color:var(--muted);background:transparent}.mobile-dock .select-button{min-width:44px;min-height:44px;padding:0 4px;color:var(--ink);background:#ece9e1;font-weight:400}.mobile-drawer{position:fixed;z-index:8;left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom));display:block;max-height:min(48vh,430px);overflow:auto;padding:8px 18px calc(18px + env(safe-area-inset-bottom));border-top:1px solid var(--line);border-radius:20px 20px 0 0;background:var(--paper);box-shadow:0 -18px 50px #37322624}.drawer-grabber{width:42px;height:4px;margin:0 auto 12px;border-radius:3px;background:#cfcbc1}.mobile-drawer h2{margin:0 0 14px;font:600 17px/1.2 Georgia,Songti SC,serif}.mobile-mode-grid,.mobile-layout-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mobile-layout-grid{margin-top:10px}.mobile-mode-grid button,.mobile-layout-grid button,.mobile-alternatives button,.drawer-export,.mobile-reverse{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:#fff}.mobile-mode-grid button.active,.mobile-layout-grid button.active{color:var(--accent-dark);border-color:var(--accent);background:#fff1ea}.mobile-reverse{width:100%;margin-top:10px}.mobile-alternatives{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:16px}.mobile-alternatives span{grid-column:1 / -1;color:var(--muted);font-size:11px}.drawer-export{width:100%;color:#fff;border-color:var(--accent-dark);background:var(--accent-dark);font-weight:700}.mobile-danger-zone{display:grid;gap:8px;margin-top:22px;padding-top:14px;border-top:1px solid var(--line);color:#9a3928;font-size:11px}.mobile-danger-zone button{min-height:44px;border:1px solid #d7a99f;border-radius:11px;color:#9a3928;background:#fff8f5}.text-annotation-editor.mobile{position:relative;z-index:50;width:auto;align-self:stretch;margin:0 10px 10px;max-height:min(58dvh,520px);overflow:auto;overscroll-behavior:contain;padding:14px 18px calc(18px + env(safe-area-inset-bottom));border:1px solid rgba(234,221,229,.92);border-radius:24px;background:var(--paper);box-shadow:0 12px 34px #0c081047,0 1px #fffc inset}}@media(max-width:899px)and (orientation:landscape){.app-shell{grid-template-rows:calc(52px + env(safe-area-inset-top)) minmax(0,1fr) calc(56px + env(safe-area-inset-bottom))}.canvas-stage{padding:12px 18px 18px}.canvas-viewport{width:min(66vw,66vh)}.mobile-drawer{bottom:calc(56px + env(safe-area-inset-bottom));max-height:62vh}.text-annotation-editor.mobile{max-height:72dvh;margin-bottom:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}[data-shell=desktop] .topbar{background:color-mix(in srgb,var(--paper) 94%,transparent);border-bottom-color:var(--line);box-shadow:0 8px 28px #76536914}[data-shell=desktop] .brand-mark{color:var(--ink);background:var(--butter);box-shadow:inset 0 0 0 1px #a94f7024}[data-shell=desktop] .brand strong{color:var(--ink)}[data-shell=desktop] .quiet-button{color:var(--ink);border:1px solid transparent}[data-shell=desktop] .quiet-button:hover{background:#f8e9f0}[data-shell=desktop] .primary-button{color:#fff;background:var(--accent-dark);box-shadow:0 8px 18px #a94f7033}[data-shell=desktop] .side-panel{background:var(--paper)}[data-shell=desktop] .left-panel{border-right-color:var(--line)}[data-shell=desktop] .right-panel{border-left-color:var(--line)}[data-shell=desktop] .eyebrow{color:var(--accent-dark)}[data-shell=desktop] .select-button{color:var(--ink);background:var(--butter);border:1px solid #e2c777;box-shadow:0 8px 18px #b5892b1f}[data-shell=desktop] .mode-card.active,[data-shell=desktop] .layout-option.active{color:var(--accent-dark);border-color:var(--accent);background:#fff0f5}[data-shell=desktop] .context-actions{background:#fff2f6;border:1px solid #f1d9e3}[data-shell=desktop] .canvas-stage{background-color:#f5edf3;background-image:radial-gradient(#d8cbd5 .7px,transparent .7px)}[data-shell=desktop] .canvas-sheet{box-shadow:0 26px 70px #53374a2e}[data-shell=desktop] .preview-frame.selected{box-shadow:inset 0 0 0 3px var(--accent)}[data-shell=desktop] .preview-frame.swap-target{box-shadow:inset 0 0 0 4px var(--accent-dark),inset 0 0 0 999px #ef91ad29}[data-shell=desktop] .control-field select,[data-shell=desktop] .text-editor-field textarea,[data-shell=desktop] .text-style-grid select,[data-shell=desktop] .text-style-grid button{border-color:var(--line);background:#fff}[data-shell=desktop] .range-field input{accent-color:var(--accent-dark)}.mobile-top-actions,.mobile-main-dock,.mobile-photo-actions,.mobile-tool-sheet,.mobile-empty-canvas,.mobile-save-sheet,.mobile-preview-backdrop,.mobile-toast,.mobile-legacy-compat{display:none}@media(max-width:899px){.app-shell[data-mobile-empty=true]{grid-template-rows:minmax(0,1fr)}.app-shell[data-mobile-empty=false]{grid-template-rows:auto minmax(0,1fr) auto}.app-shell[data-mobile-empty=true]>.topbar,.app-shell[data-mobile-empty=true]>.mobile-top-actions,.app-shell[data-mobile-empty=true]>.mobile-main-dock{display:none}.app-shell[data-mobile-empty=false]>.topbar{display:none}.app-shell[data-mobile-empty=false]>.mobile-top-actions{display:flex}.app-shell[data-mobile-empty=false]>.mobile-main-dock{display:grid}.app-shell[data-mobile-empty=false]>.mobile-photo-actions{display:grid}.workspace{display:flex;flex-direction:column;min-height:0;height:100%}.canvas-stage{flex:1 1 auto;min-height:0;width:100%;padding:18px 12px;background:var(--stage);background-image:radial-gradient(rgba(255,255,255,.07) .7px,transparent .7px);background-size:16px 16px}.canvas-stage.is-preview{padding:0}.canvas-viewport{width:min(100%,92vw,64dvh);max-height:100%}.canvas-viewport[data-mode=stitch-vertical]{touch-action:pan-y}.canvas-sheet{box-shadow:0 20px 50px #0000004d}.canvas-zoom-controls{display:none}.mobile-import-feedback,.mobile-quick-controls,.mobile-dock{display:none!important}.empty-canvas{display:none}.mobile-empty-canvas{position:relative;display:grid;place-items:center;width:100%;height:100%;min-height:0;padding:24px;color:#fff7fb;text-align:center;background:var(--stage)}.mobile-empty-canvas:before{position:absolute;inset:14px;border:1px dashed rgba(255,231,239,.26);border-radius:28px;content:"";pointer-events:none}.mobile-empty-canvas-picker{position:relative;z-index:1;width:min(82vw,360px);min-height:176px;display:grid;place-items:center;gap:9px;padding:28px 22px;border:1px dashed #efb2c6;border-radius:28px;color:#fff8fb;background:#fffaf814;cursor:pointer}.mobile-empty-canvas-picker:hover,.mobile-empty-canvas-picker:focus-within{background:#fffaf824;box-shadow:0 0 0 3px #ef91ad57}.mobile-empty-canvas-picker strong{font-size:18px;font-weight:700}.mobile-empty-canvas-picker span{color:#e8dbe3;font-size:12px}.mobile-empty-canvas-picker svg{width:34px;height:34px;color:var(--accent)}.mobile-empty-canvas-picker input,.mobile-add-picker input,.mobile-replace-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.mobile-top-actions{position:relative;z-index:10;align-items:center;justify-content:space-between;gap:6px;min-height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 10px 0;color:#fff8fb;background:var(--stage)}.mobile-add-picker,.mobile-top-action,.mobile-save-action{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 8px;border:1px solid rgba(255,255,255,.2);border-radius:14px;color:#fff8fb;background:#fffaf814;cursor:pointer;touch-action:manipulation}.mobile-add-picker{color:var(--ink);border-color:#e2c777;background:var(--butter);font-size:12px;font-weight:700}.mobile-top-action:disabled{opacity:.46;cursor:not-allowed}.mobile-top-action[aria-pressed=true]{color:var(--accent);border-color:#ef91adb8;background:#ef91ad21}.mobile-top-action svg,.mobile-add-picker svg,.mobile-save-action svg{flex:0 0 auto;width:20px;height:20px}.mobile-top-action span,.mobile-add-picker span,.mobile-save-action span{font-size:11px;line-height:1;white-space:nowrap}.mobile-history-group{display:flex;align-items:center;gap:3px}.mobile-save-action{color:#fff;border-color:var(--accent-dark);background:var(--accent-dark);box-shadow:0 7px 18px #0000002e}.mobile-main-dock,.mobile-photo-actions{position:relative;z-index:10;grid-template-columns:repeat(3,1fr);gap:6px;min-height:calc(72px + env(safe-area-inset-bottom));padding:6px 9px calc(6px + env(safe-area-inset-bottom));border-top:1px solid #eadde5;background:var(--paper);box-shadow:0 -9px 24px #261a2524}.mobile-dock-item{min-width:44px;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;border-radius:14px;color:var(--muted);background:transparent;font-size:11px;cursor:pointer;touch-action:manipulation}.mobile-dock-item svg{width:23px;height:23px}.mobile-dock-item.active{color:var(--accent-dark);background:#fff0f5}.mobile-dock-item:focus-visible{outline:3px solid #6f4a9a;outline-offset:-2px}.mobile-photo-actions{grid-template-columns:repeat(4,1fr)}.mobile-photo-actions .mobile-dock-item:first-child{color:var(--accent-dark)}.mobile-replace-picker{min-width:44px;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;border-radius:14px;color:var(--accent-dark);background:transparent;cursor:pointer}.mobile-replace-picker svg{width:23px;height:23px}.mobile-replace-picker span{font-size:11px}.mobile-tool-sheet{display:block;flex:0 1 auto;max-height:min(38dvh,304px);overflow:auto;overscroll-behavior:contain;padding:10px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid #eadde5;border-radius:22px 22px 0 0;background:var(--paper);box-shadow:0 -16px 36px #301e2b2e}.mobile-tool-sheet h2{margin:0 0 10px;color:var(--ink);font-size:16px;line-height:1.25}.mobile-tool-sheet h2{display:flex;align-items:center;gap:7px}.mobile-tool-sheet h2 small{margin-left:auto;color:var(--muted);font-size:11px;font-weight:500}.mobile-tool-sheet .sheet-grabber{width:42px;height:4px;margin:0 auto 10px;border-radius:3px;background:#dcc8d2}.mobile-tool-sheet .sheet-section{display:grid;gap:8px}.mobile-tool-sheet .sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));gap:8px}.mobile-tool-sheet button,.mobile-tool-sheet select,.mobile-tool-sheet input[type=color]{min-width:44px;min-height:44px}.mobile-sheet-button{display:grid;place-items:center;gap:3px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:#fff;font-size:11px;cursor:pointer}.mobile-sheet-button svg{width:20px;height:20px;color:var(--accent-dark)}.mobile-sheet-button.active{border-color:var(--accent);color:var(--accent-dark);background:#fff0f5;box-shadow:inset 0 0 0 1px var(--accent)}.mobile-sheet-button:disabled{opacity:.46;cursor:not-allowed}.mobile-tool-sheet .control-field,.mobile-tool-sheet .range-field{margin-bottom:10px;color:var(--muted);font-size:12px}.mobile-tool-sheet .control-field select{width:100%;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:#fff}.mobile-tool-sheet .range-field{grid-template-columns:1fr auto}.mobile-tool-sheet .range-field input{grid-column:1 / -1;width:100%;accent-color:var(--accent-dark)}.mobile-tool-sheet .sheet-danger{color:#9c3f57;border-color:#e5b5c4;background:#fff5f8}.mobile-asset-list{display:grid;gap:5px;max-height:82px;overflow:auto;color:var(--muted);font-size:11px}.mobile-asset-list span{padding:4px 8px;border-radius:8px;background:#fbf4f7}.mobile-asset-list span.selected{color:var(--accent-dark);background:#fff0f5;font-weight:700}.mobile-preview-backdrop{position:fixed;z-index:30;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr);background:transparent;pointer-events:none}.mobile-preview-toolbar{display:flex;align-items:center;justify-content:flex-end;min-height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0}.mobile-preview-toolbar button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.2);border-radius:13px;color:#fff8fb;background:#211c24c7;pointer-events:auto}.mobile-preview-canvas{min-height:0;display:grid;place-items:center;padding:12px;pointer-events:none}.mobile-preview-canvas .canvas-stage{width:100%;height:100%;padding:0}.mobile-save-sheet{position:fixed;z-index:60;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));left:10px;display:grid;gap:12px;max-height:min(72dvh,560px);overflow:auto;padding:16px;border:1px solid #eadde5;border-radius:24px;color:var(--ink);background:var(--paper);box-shadow:0 18px 48px #301e2b3d,0 1px #ffffffe6 inset}.mobile-save-sheet h2{margin:0;font-size:17px}.mobile-save-sheet .save-summary{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.mobile-save-sheet .save-actions,.mobile-tool-sheet .save-actions{display:flex;gap:8px}.mobile-save-sheet button{flex:1;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:#fffdfc;font-size:13px;visibility:visible;opacity:1}.mobile-tool-sheet .save-actions button{flex:1;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:#fff}.mobile-tool-sheet .save-actions button.primary,.mobile-save-sheet button.primary{color:#fff;border-color:var(--accent-dark);background:var(--accent-dark)}.mobile-save-sheet .export-recovery-actions{display:grid;gap:8px;margin:0}.mobile-save-sheet .export-recovery-actions button{width:100%}.mobile-photo-delete{color:#a94f70}.mobile-photo-delete:hover,.mobile-photo-delete:focus-visible{color:#8f3f5d;background:#fff0f5}.mobile-toast{position:fixed;z-index:40;right:14px;bottom:calc(82px + env(safe-area-inset-bottom));left:14px;display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border:1px solid #f0c5d2;border-radius:15px;color:var(--ink);background:#fff8fb;box-shadow:0 14px 34px #2d172738;font-size:12px;line-height:1.45}.mobile-toast svg{flex:0 0 auto;color:#b34e6c}.mobile-toolbar-legacy-anchor{position:absolute;top:0;left:0;width:1px;height:1px}.mobile-legacy-compat{position:fixed;z-index:100;top:0;left:0;width:1px;height:1px;display:block;overflow:hidden;opacity:0;pointer-events:auto}.mobile-legacy-compat label,.mobile-legacy-compat button,.mobile-legacy-compat select,.mobile-legacy-compat input{width:1px;height:1px;min-width:1px;min-height:1px;margin:0;padding:0}}@media(max-width:899px)and (orientation:landscape){.mobile-top-actions{min-height:calc(48px + env(safe-area-inset-top))}.mobile-main-dock,.mobile-photo-actions{min-height:calc(60px + env(safe-area-inset-bottom))}.mobile-dock-item,.mobile-replace-picker{min-height:48px}.mobile-tool-sheet{max-height:min(46dvh,248px)}}@media(max-width:899px){.app-shell[data-mobile-empty=false]{background:var(--stage)}.workspace,.canvas-stage{position:relative;z-index:0}.mobile-top-actions{z-index:40;pointer-events:auto;background:linear-gradient(180deg,#211c24fa,#211c24d6)}.mobile-main-dock,.mobile-photo-actions{z-index:50;margin:0 10px 10px;min-height:calc(74px + env(safe-area-inset-bottom));padding:8px 8px calc(8px + env(safe-area-inset-bottom));border:1px solid rgba(234,221,229,.92);border-radius:24px;background:#fffaf8fa;box-shadow:0 12px 34px #0c081047,0 1px #fffc inset;pointer-events:auto}.mobile-tool-sheet{position:relative;z-index:30;flex:0 0 auto;min-height:0;margin:0 10px 10px;max-height:min(40dvh,320px);border:1px solid rgba(234,221,229,.95);border-radius:24px;box-shadow:0 12px 34px #0c08103d,0 1px #fffc inset;pointer-events:auto}.mobile-top-actions>*,.mobile-main-dock>*,.mobile-photo-actions>*,.mobile-tool-sheet button,.mobile-tool-sheet select,.mobile-tool-sheet input{pointer-events:auto}.mobile-add-picker,.mobile-top-action,.mobile-save-action,.mobile-dock-item,.mobile-replace-picker,.mobile-sheet-button{transition:transform .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.mobile-add-picker:active,.mobile-top-action:active:not(:disabled),.mobile-save-action:active:not(:disabled),.mobile-dock-item:active,.mobile-replace-picker:active,.mobile-sheet-button:active{transform:scale(.96)}.mobile-top-action:hover:not(:disabled),.mobile-add-picker:hover,.mobile-save-action:hover:not(:disabled){box-shadow:0 6px 16px #00000029}.mobile-dock-item.active{box-shadow:0 5px 14px #a94f7024}.mobile-tool-sheet h2{padding:2px 2px 4px;letter-spacing:-.01em}.mobile-tool-sheet .sheet-section{padding:0 1px}.mobile-sheet-button{min-height:48px;border-radius:15px;background:#fffdfc}.mobile-sheet-button:hover{border-color:#efb3c6;background:#fff4f7}.mobile-empty-canvas{background:radial-gradient(circle at 50% 42%,rgba(239,145,173,.18),transparent 42%),var(--stage)}.mobile-empty-canvas-picker{box-shadow:0 24px 70px #0003,0 1px #ffffff14 inset}}@media(max-width:899px)and (orientation:landscape){.mobile-main-dock,.mobile-photo-actions{min-height:calc(62px + env(safe-area-inset-bottom));margin-bottom:6px}.mobile-tool-sheet{max-height:min(46dvh,248px);margin-bottom:6px}}@media(max-width:899px){.app-shell[data-mobile-empty=false],.app-shell[data-mobile-empty=true]{background:#f4ecf5}.app-shell[data-mobile-surface=text] .workspace{height:auto}.app-shell[data-mobile-surface=text] .canvas-viewport[data-mode=grid]{width:min(64vw,calc(40dvh - 92px));height:auto;aspect-ratio:1;max-width:100%}.mobile-top-actions{color:var(--ink);background:#fffaf8f0;border-bottom:1px solid rgba(214,192,211,.72);box-shadow:0 8px 22px #5c395814;backdrop-filter:blur(18px)}.mobile-top-action{color:#66556c;border-color:#e7dbe8;background:#fffdfc}.mobile-top-action:hover:not(:disabled),.mobile-top-action:focus-visible{color:var(--accent-dark);border-color:#efb3c6;background:#fff4f7}.mobile-history-group{gap:6px}.mobile-add-picker{border-color:#e0c375;background:var(--butter);box-shadow:0 6px 15px #b5892b21}.mobile-save-action{border-color:var(--accent-dark);background:var(--accent-dark);box-shadow:0 7px 18px #a94f7038}.canvas-stage{background-color:#eee5f2;background-image:radial-gradient(#d5c4dc .8px,transparent .8px),radial-gradient(circle at 20% 18%,rgba(239,145,173,.16),transparent 34%),radial-gradient(circle at 86% 82%,rgba(169,221,206,.18),transparent 32%);background-size:18px 18px,auto,auto}.canvas-sheet{box-shadow:0 24px 54px #5b3b582e,0 1px #ffffffe0 inset}.mobile-tool-sheet{border-color:#e2d1e5;background:#fffaf8fa;box-shadow:0 15px 36px #4f2e4d33,0 1px #ffffffe0 inset}.mobile-tool-sheet .sheet-grabber{background:#d7b6d8}.mobile-main-dock,.mobile-photo-actions{border-color:#e2d1e5;background:#fffaf8fa;box-shadow:0 13px 32px #4f2e4d2e,0 1px #ffffffe6 inset}.mobile-dock-item{color:#76647a}.mobile-dock-item.active{color:var(--accent-dark);border:1px solid #f0b6c8;background:#fff0f5;box-shadow:0 6px 16px #a94f701f}.mobile-dock-item:focus-visible{outline-color:#9c6ab2}.mobile-replace-picker{color:#5d8c7c}.mobile-replace-picker:hover,.mobile-replace-picker:focus-within{color:#3f7664;background:#effaf5}.mobile-empty-canvas{color:var(--ink);background:radial-gradient(circle at 50% 35%,rgba(239,145,173,.25),transparent 38%),radial-gradient(circle at 82% 80%,rgba(169,221,206,.24),transparent 34%),#eee5f2}.mobile-empty-canvas:before{border-color:#d8c0df}.mobile-empty-canvas-picker{border-color:#d5b6db;color:var(--ink);background:#fffaf8b8;box-shadow:0 24px 70px #5b3b5829,0 1px #ffffffe6 inset}.mobile-empty-canvas-picker span{color:var(--muted)}.mobile-empty-canvas-picker:hover,.mobile-empty-canvas-picker:focus-within{background:#fffaf8e6;box-shadow:0 0 0 3px #ef91ad47,0 24px 70px #5b3b5824}}@media(max-width:899px){.app-shell[data-mobile-empty=true],.app-shell[data-mobile-empty=false]{background:#f5f7ff}.mobile-top-actions{min-height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 10px 0;color:#17213f;background:#fffffff0;border-bottom:1px solid #e2e7f3;box-shadow:0 4px 14px #29345814;backdrop-filter:blur(16px)}.mobile-top-action,.mobile-add-picker,.mobile-save-action{min-width:44px;min-height:44px;border-radius:12px;box-shadow:none}.mobile-top-action{color:#53617f;border-color:#dfe5f1;background:#fff}.mobile-top-action:hover:not(:disabled),.mobile-top-action:focus-visible{color:var(--ds-color-brand-primary);border-color:#b9b9ff;background:#f0f1ff}.mobile-add-picker{color:var(--ds-color-brand-primary);border-color:#d4d7ff;background:#f2f3ff}.mobile-save-action{border-color:var(--ds-color-brand-primary);background:var(--ds-color-brand-primary);box-shadow:0 5px 12px #4f46e52e}.mobile-main-dock,.mobile-photo-actions{min-height:calc(64px + env(safe-area-inset-bottom));margin:0 10px 10px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));gap:6px;border:1px solid #e0e5f1;border-radius:18px;background:#fffffff7;box-shadow:0 8px 20px #2934581f}.mobile-dock-item,.mobile-replace-picker{min-height:52px;border-radius:14px;color:#66718a}.mobile-dock-item.active{color:var(--ds-color-brand-primary);border:1px solid #c6c7ff;background:#eef0ff;box-shadow:none}.mobile-dock-item:focus-visible,.mobile-replace-picker:focus-within{outline:3px solid rgba(79,70,229,.28);outline-offset:1px}.mobile-photo-actions{grid-template-columns:repeat(4,1fr)}.mobile-photo-actions .mobile-dock-item:first-child,.mobile-replace-picker{color:var(--ds-color-brand-primary)}.mobile-tool-sheet{max-height:min(42dvh,340px);margin:0 10px 10px;padding:10px 16px calc(14px + env(safe-area-inset-bottom));border:1px solid #e0e5f1;border-radius:18px;background:#fffffffa;box-shadow:0 10px 28px #29345824}.mobile-tool-sheet .sheet-grabber{background:#cbd3e5}.mobile-tool-sheet .mobile-sheet-button{border-radius:12px;background:#fff}.mobile-tool-sheet .mobile-sheet-button.active{color:var(--ds-color-brand-primary);border-color:#c6c7ff;background:#eef0ff;box-shadow:inset 0 0 0 1px var(--ds-color-brand-primary)}.mobile-tool-sheet select,.mobile-tool-sheet input:not([type=color]),.mobile-tool-sheet textarea,.mobile-save-sheet select,.mobile-save-sheet input,.mobile-save-sheet textarea{font-size:16px}.mobile-save-sheet{max-height:min(72dvh,560px);border-radius:18px;border-color:#e0e5f1;background:#fffffffc;box-shadow:0 12px 32px #2934582e}.mobile-toast{bottom:calc(76px + env(safe-area-inset-bottom));border-color:#d4d7ff;background:#fff;box-shadow:0 8px 20px #29345824}.mobile-empty-canvas{color:#17213f;background:radial-gradient(circle at 50% 38%,rgba(117,124,255,.14),transparent 42%),#f5f7ff}.mobile-empty-canvas:before{border-color:#cbd3e5}.mobile-empty-canvas-picker{border-color:#bfc5ff;border-radius:18px;color:#17213f;background:#ffffffc2;box-shadow:0 12px 30px #2934581a}.mobile-empty-canvas-picker span{color:#66718a}}@media(max-width:899px)and (orientation:landscape){.mobile-top-actions{min-height:calc(52px + env(safe-area-inset-top))}.mobile-main-dock,.mobile-photo-actions{min-height:calc(56px + env(safe-area-inset-bottom));margin-bottom:6px}.mobile-dock-item,.mobile-replace-picker{min-height:44px}.mobile-tool-sheet{max-height:min(42dvh,248px);margin-bottom:6px}}@media(prefers-reduced-motion:reduce){.mobile-add-picker,.mobile-top-action,.mobile-save-action,.mobile-dock-item,.mobile-replace-picker,.mobile-sheet-button{transition:none}}.confirm-dialog-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:#1219315c}.confirm-dialog{width:min(100%,420px);display:grid;gap:14px;padding:22px;border:1px solid #e0e5f1;border-radius:18px;color:#17213f;background:#fff;box-shadow:0 18px 48px #2934583d}.confirm-dialog h2,.confirm-dialog p{margin:0}.confirm-dialog h2{font-size:18px;line-height:1.35}.confirm-dialog p{color:#66718a;font-size:14px;line-height:1.55}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.confirm-dialog-actions button{min-width:96px;min-height:44px;padding:0 14px;border:1px solid #dfe5f1;border-radius:12px;color:#53617f;background:#fff;font:inherit;cursor:pointer}.confirm-dialog-actions button:hover,.confirm-dialog-actions button:focus-visible{border-color:#b9b9ff;color:var(--ds-color-brand-primary);background:#f2f3ff}.confirm-dialog-actions button.danger,.confirm-dialog-actions button.danger:hover,.confirm-dialog-actions button.danger:focus-visible{border-color:#dc2626;color:#fff;background:#dc2626}@media(max-width:899px){.confirm-dialog-backdrop{align-items:end;padding:12px}.confirm-dialog-actions button{flex:1}}@media(prefers-reduced-motion:reduce){.confirm-dialog-backdrop,.confirm-dialog{transition:none}}.app-shell{--paper: var(--ds-color-surface);--ink: var(--ds-color-ink);--muted: var(--ds-color-muted);--line: var(--ds-color-border);--accent: var(--ds-color-brand-primary);--accent-dark: var(--ds-color-brand-primary);--stage: var(--ds-color-canvas);--stage-soft: #eef2ff;--radius: var(--ds-radius-md);color:var(--ds-color-ink);font-family:var(--ds-font-sans);font-synthesis:none;background:radial-gradient(circle at 78% 16%,rgb(219 234 254 / 58%),transparent 28rem),var(--ds-color-canvas)}.app-shell button,.app-shell input,.app-shell select,.app-shell textarea{font-family:inherit}.app-shell button:focus-visible,.app-shell select:focus-visible,.app-shell input:focus-visible,.app-shell label[data-touch-target]:focus-within{outline:3px solid color-mix(in srgb,var(--ds-color-focus) 50%,transparent);outline-offset:2px}.app-shell .topbar{padding-inline:24px;border-bottom-color:#d9e0ecc7;background:#ffffffdb;box-shadow:0 4px 16px #1720330d;backdrop-filter:blur(18px)}body.site-page .app-shell .brand{gap:10px}body.site-page .app-shell .brand-mark{width:36px;height:36px;border-radius:10px;color:transparent;background:linear-gradient(var(--ds-color-brand-primary),var(--ds-color-brand-primary)) 5px 5px / 10px 10px no-repeat,linear-gradient(var(--ds-color-focus),var(--ds-color-focus)) 21px 5px / 10px 10px no-repeat,linear-gradient(var(--ds-color-focus),var(--ds-color-focus)) 5px 21px / 10px 10px no-repeat,linear-gradient(var(--ds-color-brand-primary),var(--ds-color-brand-primary)) 21px 21px / 10px 10px no-repeat;background-color:#eef2ff;box-shadow:0 6px 14px #4f46e529;font-size:0}body.site-page .app-shell .brand strong{color:var(--ds-color-ink);font-family:var(--ds-font-sans);font-size:16px;font-weight:750;letter-spacing:-.02em}body.site-page .app-shell .brand small{color:var(--ds-color-muted);font-family:var(--ds-font-sans)}.app-shell .topbar-actions{gap:8px}.app-shell .quiet-button,.app-shell .primary-button,.app-shell .select-button{border-radius:var(--ds-radius-md);font-weight:700;transition:background-color var(--ds-motion-standard) ease,border-color var(--ds-motion-standard) ease,box-shadow var(--ds-motion-standard) ease,transform var(--ds-motion-standard) ease}.app-shell .quiet-button{color:var(--ds-color-muted);background:transparent}.app-shell .quiet-button:hover:not(:disabled){color:var(--ds-color-brand-primary);background:#818cf81a}.app-shell .primary-button,.app-shell .select-button{color:#fff;background:var(--ds-color-brand-primary);box-shadow:0 8px 20px #4f46e533}.app-shell .primary-button:hover:not(:disabled),.app-shell .select-button:hover:not(:disabled){background:var(--ds-color-brand-primary-hover)}.app-shell .workspace{background:var(--ds-color-canvas)}.app-shell .side-panel{padding:32px 24px;background:#ffffffdb}.app-shell .left-panel,.app-shell .right-panel{border-color:#d9e0ecd1}body.site-page .app-shell .eyebrow{color:var(--ds-color-brand-primary);font-family:var(--ds-font-sans);font-size:12px;font-weight:750;letter-spacing:.12em}body.site-page .app-shell h1,body.site-page .app-shell h2,body.site-page .app-shell h3{font-family:var(--ds-font-sans);color:var(--ds-color-ink)}body.site-page .app-shell h1{margin-top:0;margin-bottom:0;font-size:clamp(25px,2vw,34px);font-weight:750;letter-spacing:-.05em}.app-shell .supporting,.app-shell .import-status,.app-shell .storage-status,.app-shell .context-actions p{color:var(--ds-color-muted)}.app-shell .import-error,.app-shell .clear-project-button,.app-shell .text-editor-actions .delete-annotation{color:var(--ds-color-danger)}.app-shell .restored-indicator{color:#0f766e}.app-shell .mode-card,.app-shell .layout-option,.app-shell .reverse-order,.app-shell .context-actions button,.app-shell .text-color-row>button,.app-shell .text-style-grid select,.app-shell .text-style-grid button,.app-shell .text-editor-actions button,.app-shell .control-field select,.app-shell .export-notice button{border-color:var(--ds-color-border);border-radius:var(--ds-radius-sm);color:var(--ds-color-ink);background:var(--ds-color-surface)}.app-shell .mode-card:hover,.app-shell .layout-option:hover,.app-shell .reverse-order:hover,.app-shell .context-actions button:hover,.app-shell .text-color-row>button:hover,.app-shell .text-style-grid select:hover,.app-shell .text-style-grid button:hover,.app-shell .text-editor-actions button:hover,.app-shell .control-field select:hover,.app-shell .export-notice button:hover{border-color:var(--ds-color-focus);background:#f5f7ff}.app-shell .mode-card.active,.app-shell .layout-option.active,.app-shell .text-color-row>button[aria-pressed=true]{color:var(--ds-color-brand-primary);border-color:var(--ds-color-focus);background:#818cf81f;box-shadow:inset 0 0 0 1px #818cf847}.app-shell .reverse-order{color:var(--ds-color-muted)}.app-shell .canvas-stage{background-color:var(--ds-color-canvas);background-image:radial-gradient(rgb(148 163 184 / 42%) .7px,transparent .7px),radial-gradient(circle at 80% 18%,rgb(219 234 254 / 52%),transparent 30rem);background-size:16px 16px,auto}.app-shell .empty-canvas,.app-shell .canvas-sheet{border-color:#d9e0ece0;border-radius:var(--ds-radius-sm);box-shadow:0 18px 48px #1720331f}.app-shell .empty-canvas>span,.app-shell .canvas-zoom-controls output{color:var(--ds-color-muted)}.app-shell .empty-grid span{border-radius:4px;background:#dbeafe}.app-shell .empty-grid span:first-child{background:#c7d2fe}.app-shell .preview-frame.selected{box-shadow:inset 0 0 0 3px var(--ds-color-brand-primary)}.app-shell .preview-frame.dragging{box-shadow:0 16px 36px #17203338,inset 0 0 0 3px #fff}.app-shell .preview-frame.swap-target{box-shadow:inset 0 0 0 4px var(--ds-color-brand-primary),inset 0 0 0 999px #818cf824}.app-shell .preview-frame:focus-visible,.app-shell .annotation-hit-target:focus-visible{outline-color:var(--ds-color-focus)}.app-shell .annotation-hit-target{border-color:#ffffffc2;background:#1720331f;box-shadow:0 0 0 1px #17203342}.app-shell .annotation-hit-target.selected{border-color:#fff;background:#4f46e52e;box-shadow:0 0 0 3px var(--ds-color-brand-primary)}.app-shell .canvas-zoom-controls,.app-shell .mobile-quick-controls,.app-shell .mobile-drawer{border-color:#d9e0ecdb;background:#ffffffeb;box-shadow:0 12px 32px #1720331f}.app-shell .canvas-zoom-controls button,.app-shell .mobile-quick-controls button{color:var(--ds-color-ink)}.app-shell .canvas-zoom-controls button:hover,.app-shell .mobile-quick-controls button:hover{background:#eef2ff}.app-shell .control-field,.app-shell .range-field,.app-shell .text-editor-field,.app-shell .text-style-grid label{color:var(--ds-color-muted)}.app-shell .control-field select,.app-shell .control-field input,.app-shell .text-editor-field textarea,.app-shell .text-style-grid select,.app-shell .text-style-grid button,.app-shell .text-color-row input[type=color]{background:var(--ds-color-surface);color:var(--ds-color-ink)}.app-shell input[type=range]{accent-color:var(--ds-color-brand-primary)}.app-shell .context-actions,.app-shell .text-annotation-editor.desktop{border:1px solid rgb(217 224 236 / 72%);border-radius:var(--ds-radius-md);background:#f5f7ff}.app-shell .context-actions .done-button,.app-shell .text-editor-heading-actions .save-annotation,.app-shell .text-editor-actions .save-annotation,.app-shell .text-style-grid button[aria-pressed=true],.app-shell .export-notice button:first-child{color:#fff;border-color:var(--ds-color-brand-primary);background:var(--ds-color-brand-primary)}.app-shell .text-annotation-editor.desktop{padding:15px}.app-shell .export-notice{border-color:var(--ds-color-border);border-radius:var(--ds-radius-lg);background:#fffffff5;box-shadow:0 18px 60px #1720332e}.app-shell .export-notice.error{border-color:#ef44447f}.app-shell .mobile-top-actions,.app-shell .mobile-main-dock,.app-shell .mobile-photo-actions,.app-shell .mobile-tool-sheet,.app-shell .mobile-save-sheet,.app-shell .mobile-toast,.app-shell .mobile-empty-canvas-picker{border-color:#d9e0ece0;background:#fffffff5;box-shadow:0 12px 32px #17203324}.app-shell .mobile-top-actions{color:var(--ds-color-ink);background:#ffffffeb;box-shadow:0 4px 16px #17203312}.app-shell .mobile-top-action,.app-shell .mobile-add-picker,.app-shell .mobile-save-action,.app-shell .mobile-dock-item,.app-shell .mobile-replace-picker,.app-shell .mobile-sheet-button,.app-shell .mobile-mode-grid button,.app-shell .mobile-layout-grid button,.app-shell .mobile-alternatives button,.app-shell .drawer-export,.app-shell .mobile-reverse{border-color:var(--ds-color-border);border-radius:var(--ds-radius-md);color:var(--ds-color-muted);background:var(--ds-color-surface)}.app-shell .mobile-add-picker,.app-shell .mobile-replace-picker{color:var(--ds-color-brand-primary);background:#f5f7ff}.app-shell .mobile-save-action{color:#fff;border-color:var(--ds-color-brand-primary);background:var(--ds-color-brand-primary);box-shadow:0 7px 18px #4f46e533}.app-shell .mobile-top-action:hover:not(:disabled),.app-shell .mobile-top-action:focus-visible,.app-shell .mobile-add-picker:hover,.app-shell .mobile-replace-picker:hover,.app-shell .mobile-dock-item:hover,.app-shell .mobile-sheet-button:hover{color:var(--ds-color-brand-primary);border-color:var(--ds-color-focus);background:#f5f7ff}.app-shell .mobile-dock-item.active,.app-shell .mobile-mode-grid button.active,.app-shell .mobile-layout-grid button.active,.app-shell .mobile-tool-sheet .mobile-sheet-button.active{color:var(--ds-color-brand-primary);border-color:var(--ds-color-focus);background:#818cf81f;box-shadow:inset 0 0 0 1px #818cf847}.app-shell .mobile-tool-sheet,.app-shell .mobile-save-sheet{border-radius:var(--ds-radius-lg);color:var(--ds-color-ink)}.app-shell .mobile-tool-sheet h2,.app-shell .mobile-save-sheet h2{font-family:var(--ds-font-sans);color:var(--ds-color-ink)}.app-shell .sheet-grabber,.app-shell .drawer-grabber{background:#cbd5e1}.app-shell .mobile-empty-canvas{color:var(--ds-color-ink);background:radial-gradient(circle at 50% 38%,rgb(129 140 248 / 14%),transparent 42%),var(--ds-color-canvas)}.app-shell .mobile-empty-canvas:before{border-color:#cbd5e1}.app-shell .mobile-empty-canvas-picker span,.app-shell .mobile-save-sheet .save-summary{color:var(--ds-color-muted)}.app-shell .mobile-save-sheet button,.app-shell .mobile-tool-sheet .save-actions button{border-color:var(--ds-color-border);color:var(--ds-color-ink);background:var(--ds-color-surface)}.app-shell .mobile-save-sheet button.primary,.app-shell .mobile-tool-sheet .save-actions button.primary{color:#fff;border-color:var(--ds-color-brand-primary);background:var(--ds-color-brand-primary)}.app-shell .mobile-photo-delete,.app-shell .mobile-danger-zone,.app-shell .sheet-danger{color:var(--ds-color-danger)}.app-shell .mobile-photo-delete:hover,.app-shell .mobile-photo-delete:focus-visible,.app-shell .sheet-danger:hover{color:#b91c1c;background:#ef444414}.app-shell .mobile-preview-backdrop{background:var(--ds-color-canvas)}.app-shell .mobile-preview-toolbar button{border-color:var(--ds-color-border);color:var(--ds-color-ink);background:var(--ds-color-surface);box-shadow:0 8px 20px #1720331f}.app-shell .mobile-toast{color:var(--ds-color-ink);background:#fffffffa}.app-shell .confirm-dialog-backdrop{background:#1720335c}.app-shell .confirm-dialog{border-color:var(--ds-color-border);border-radius:var(--ds-radius-lg);color:var(--ds-color-ink);background:var(--ds-color-surface);box-shadow:0 18px 48px #1720333d}.app-shell .confirm-dialog p{color:var(--ds-color-muted)}.app-shell .confirm-dialog-actions button{border-color:var(--ds-color-border);border-radius:var(--ds-radius-md);color:var(--ds-color-muted);background:var(--ds-color-surface)}.app-shell .confirm-dialog-actions button:hover,.app-shell .confirm-dialog-actions button:focus-visible{border-color:var(--ds-color-focus);color:var(--ds-color-brand-primary);background:#f5f7ff}.app-shell .confirm-dialog-actions button.danger,.app-shell .confirm-dialog-actions button.danger:hover,.app-shell .confirm-dialog-actions button.danger:focus-visible{border-color:var(--ds-color-danger);background:var(--ds-color-danger)}@media(max-width:899px){.app-shell[data-mobile-empty=true],.app-shell[data-mobile-empty=false]{background:var(--ds-color-canvas)}.app-shell .canvas-stage{background-color:var(--ds-color-canvas);background-image:radial-gradient(rgb(148 163 184 / 32%) .7px,transparent .7px),radial-gradient(circle at 50% 18%,rgb(219 234 254 / 58%),transparent 28rem)}.app-shell .mobile-main-dock,.app-shell .mobile-photo-actions,.app-shell .mobile-tool-sheet{margin-inline:10px}}@media(prefers-reduced-motion:reduce){.app-shell *,.app-shell *:before,.app-shell *:after{transition-duration:0ms!important;animation-duration:0ms!important}}
