@font-face{font-family:Workshop;src:url(vendor/DejaVuSans.ttf);font-display:swap}
:root{
 /* Logo sage is decorative; darker sage keeps action labels and selection controls readable. */
 --paper:#f8f7f2;--chrome:#f2f1eb;--ground:#dce2dc;
 --ink:#26332e;--muted:#58655d;--line:#c3cec4;--control-line:#798e7d;
 --sage:#78937e;--accent:#44684f;--accent-hover:#34543e;--accent-border:#69846f;
 --selected:#e0e9df;--hover:#e7ede5;--pressed:#d9e2d7;--surface:#f6f5ef;--canvas-bar:#e7ece5;
 --disabled:#7c897f;--disabled-surface:#e5ebe3;--focus:#44684f;
 --on-accent:#ffffff;--document-paper:#ffffff;
 --danger:#a43227;--warning:#624618;--warning-surface:#f4e6cc;--success:#375a41;
 font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--chrome);font-synthesis:none;color-scheme:light
}
:root[data-theme=dark]{
 --paper:#27312b;--chrome:#242c28;--ground:#1c231f;
 --ink:#e4eae4;--muted:#afbbb1;--line:#47564c;--control-line:#809489;
 --sage:#8fae97;--accent:#abc8b1;--accent-hover:#bfd6c3;--accent-border:#87aa90;
 --selected:#354b3d;--hover:#344139;--pressed:#3b4b41;--surface:#2b3530;--canvas-bar:#303c34;
 --disabled:#809086;--disabled-surface:#354138;--focus:#bad6bd;--on-accent:#18251d;
 --danger:#ffaaa0;--warning:#f0d69a;--warning-surface:#453b28;--success:#acd7b6;
 color-scheme:dark
}
*{box-sizing:border-box}body{margin:0;height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;font-size:14px}button,input,textarea,select,summary{font:inherit}button,summary{touch-action:manipulation}button{border:1px solid transparent;border-radius:4px;padding:8px 11px;min-height:40px;color:var(--ink);background:transparent;cursor:pointer;white-space:nowrap}button:hover:not(:disabled),summary:hover{background:var(--hover)}button:active:not(:disabled){background:var(--pressed)}button:disabled{color:var(--disabled);cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.primary:hover:not(:disabled){background:var(--accent-hover)}.primary:disabled{background:var(--disabled-surface);border-color:transparent;color:var(--muted)}.danger{color:var(--danger)}input,textarea,select{border:1px solid var(--control-line);border-radius:3px;padding:9px;background:var(--paper);color:var(--ink);min-width:0}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}input[type=color]{width:40px;height:38px;padding:3px}textarea{width:100%;resize:vertical;line-height:1.5}h1,h2,h3,p{margin-top:0}h2{font-size:16px}h3{font-size:13px}label{font-size:13px}a{color:var(--accent)}[hidden]{display:none!important}.subtle{font-size:12px;color:var(--muted);line-height:1.5}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.appbar{display:flex;align-items:center;gap:8px;min-height:62px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--chrome)}.brand{display:flex;align-items:center;gap:7px;flex-shrink:0;font-family:Georgia,serif;font-size:26px;font-weight:bold;letter-spacing:-1px;padding-right:14px}.brand-logo{display:block;width:32px;height:32px;object-fit:contain;flex-shrink:0}.document{min-width:0;flex:1}.document strong{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document span{font-size:11px;color:var(--muted);display:block;margin-top:3px}.file-menu{position:relative}.file-menu summary{list-style:none;cursor:pointer;min-height:40px;display:grid;place-items:center;padding:8px 11px;border-radius:4px}.file-menu summary::-webkit-details-marker{display:none}.menu-body{position:absolute;z-index:20;right:0;top:44px;background:var(--paper);border:1px solid var(--line);padding:6px;min-width:230px;max-height:calc(100dvh - 82px);overflow-y:auto;box-shadow:0 5px 16px #26332e22}.menu-body button{display:block;text-align:left;width:100%;min-height:44px}
.toolbar{display:flex;justify-content:space-between;gap:10px;padding:4px 12px;border-bottom:1px solid var(--line);background:var(--surface);min-width:0}#tools{display:flex;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:thin}#tools button{min-width:52px;flex-shrink:0}#tools button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.history-controls{display:flex;align-items:center;gap:2px;border-left:1px solid var(--line);padding-left:8px}
main{display:grid;grid-template-columns:132px minmax(0,1fr) 264px;min-height:0;min-width:0}.pages-panel,.inspector{background:var(--chrome);min-height:0;overflow:auto}.pages-panel{border-right:1px solid var(--line);display:flex;flex-direction:column}.panel-title{display:flex;justify-content:space-between;align-items:center;padding:16px 14px 8px}.panel-title h2{margin:0;font-size:13px}.panel-title span{font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted)}.page-actions{display:flex;padding:0 8px 8px;gap:3px}.page-actions button{flex:1;min-width:0;padding:4px;font-size:20px}#pages{padding:8px 14px;flex:1;overflow:auto}.thumb{display:block;width:100%;padding:5px;margin-bottom:12px;border:2px solid transparent;border-radius:3px}.thumb.selected{border-color:var(--accent);background:var(--selected)}.thumb canvas{width:100%;height:auto;display:block;border:1px solid var(--line)}.thumb small{display:block;margin-top:6px;color:var(--muted);font-size:11px}.page-footer{display:grid;padding:8px;border-top:1px solid var(--line)}.page-footer button{font-size:11px;text-align:left;white-space:normal}
.document-area{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;min-width:0}.canvas-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;padding:0 12px;background:var(--canvas-bar);border-bottom:1px solid var(--line);font-size:12px}.canvas-bar>div{display:flex;align-items:center;gap:1px}.canvas-bar button{min-width:34px;min-height:36px;padding:5px}.canvas-bar output{font-size:11px;min-width:40px;text-align:center;font-variant-numeric:tabular-nums}#workspace{overflow:auto;position:relative;background:var(--ground);padding:22px;min-height:0;min-width:0}#stage{position:relative;margin:0 auto;background:white;box-shadow:0 2px 8px #26332e26}#pageCanvas{display:block}#marksCanvas{position:absolute;left:0;top:0;touch-action:none}.tool-hint{padding:8px 12px;line-height:1.4;font-size:12px;color:var(--muted);background:var(--surface);border-top:1px solid var(--line)}#welcome{max-width:420px;margin:clamp(20px,8vh,80px) auto;padding:28px 12px;text-align:left}#welcome h1{font-size:30px;font-weight:600;letter-spacing:-1px;margin-bottom:10px}#welcome>p{line-height:1.5;color:var(--muted);max-width:32em}#welcome .primary{min-height:46px;padding:10px 22px;margin-top:10px}.file-note{font-size:12px;margin-top:12px}.samples{border-top:1px solid var(--line);margin-top:28px;padding-top:16px;display:flex;align-items:center;flex-wrap:wrap;gap:4px}.samples span{width:100%;font-size:12px;color:var(--muted);margin-bottom:4px}.samples button{padding-left:0;margin-right:18px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--control-line);font-size:13px}.privacy-note{font-size:12px;margin-top:24px}#workspace.dragover{outline:3px solid var(--accent);outline-offset:-4px}
.inspector{border-left:1px solid var(--line)}.inspector section,.inspector>details{padding:14px;border-bottom:1px solid var(--line)}.option-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.option-row input[type=number]{width:60px}.options>button{display:block;text-align:left;width:100%;font-size:12px;padding-left:0}.options>button:disabled{display:none}.options .subtle{margin:12px 0 2px}#resizeOptions{margin-top:10px}#resizeOptions input{width:85px;margin:6px}#resizeOptions button{font-size:12px}details>summary{cursor:pointer;font-size:13px;font-weight:600;padding:2px 0;min-height:30px}.inspector details[open]>summary{margin-bottom:10px}#notice{background:var(--warning-surface);color:var(--warning);margin:10px;padding:10px;font-size:12px;line-height:1.5}#fields .form-field{margin:14px 0}#fields label{display:block;overflow-wrap:anywhere}#fields input:not([type=checkbox]),#fields select,#fields textarea{width:100%;margin-top:6px}#fields input[type=checkbox]{width:20px;height:20px;vertical-align:middle;margin:8px 0}#fields .field-name{display:block;font-size:12px;font-weight:600}#fields small{display:block;color:var(--muted);font-size:11px;margin-top:5px}#previewFields{font-size:12px;text-decoration:underline;padding-left:0}.search-row{display:flex;gap:4px}.search-row input{width:100%}#results button{white-space:normal;text-align:left;width:100%;font-size:12px}.mark-row button{white-space:normal;overflow-wrap:anywhere;text-align:left;width:100%;font-size:12px}.mark-row.active button{background:var(--selected)}#markcount{font-size:11px;color:var(--muted);margin-left:5px}.mobile-nav{display:none}footer{padding:6px 12px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);background:var(--chrome);line-height:1.4}#status.error{color:var(--danger)}
dialog{width:min(520px,calc(100vw - 28px));max-height:85dvh;overflow:auto;border:1px solid var(--control-line);border-radius:7px;padding:22px;color:var(--ink);background:var(--paper)}dialog::backdrop{background:#26332e80}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-header h2{margin:0}dialog p{line-height:1.55;color:var(--muted);font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}#textDialog textarea{margin-top:8px;font-size:16px;min-height:120px}#textDialog h2{font-size:20px}#proofDialog{width:min(900px,calc(100vw - 24px));background:var(--chrome)}#proofCanvas{display:block;max-width:100%;height:auto;margin:14px auto;background:white}
@media(max-width:1099px){main{grid-template-columns:minmax(0,1fr)}main[data-panel=document] .pages-panel,main[data-panel=document] .inspector{display:none}main[data-panel=pages]{grid-template-columns:180px minmax(0,1fr)}main[data-panel=pages] .inspector{display:none}main[data-panel=tools]{grid-template-columns:minmax(0,1fr) 280px}main[data-panel=tools] .pages-panel{display:none}.mobile-nav{display:flex;gap:6px;justify-content:center;background:var(--chrome);border-top:1px solid var(--line);padding:5px 12px;padding-bottom:max(5px,env(safe-area-inset-bottom))}.mobile-nav button{min-width:120px;min-height:44px}.mobile-nav button[aria-pressed=true]{background:var(--selected);color:var(--accent);font-weight:600}}
@media(max-width:699px){body{font-size:14px}.appbar{min-height:56px;padding:6px 8px;gap:4px}.brand{font-size:22px;gap:5px;padding-right:6px}.brand-logo{width:28px;height:28px}.document span{display:none}.document strong{font-size:12px}.appbar button,.file-menu summary{min-height:44px;font-size:12px;padding:7px 9px}.toolbar{gap:3px;padding:3px 6px}.toolbar button{min-height:44px;font-size:12px;padding:6px 9px}#tools button{min-width:47px}.history-controls{padding-left:4px}.history-controls button{font-size:11px;padding:6px}.history-controls #redo{display:none}.canvas-bar{padding:0 8px;min-height:44px}.canvas-bar button{min-height:44px;min-width:33px}.canvas-bar output{min-width:34px}main[data-panel]{display:block;overflow:hidden}main[data-panel=document] .document-area{height:100%}main[data-panel=pages] .document-area,main[data-panel=tools] .document-area{display:none}.pages-panel,.inspector{height:100%;border:0}.pages-panel #pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:12px;height:auto;overflow:auto}.thumb{margin:0}.thumb canvas{max-height:140px;object-fit:contain}.page-actions{max-width:300px}.page-actions button{min-height:44px}.page-footer{grid-template-columns:1fr 1fr;gap:4px}.page-footer button{font-size:13px;min-height:44px;text-align:center}.inspector input,.inspector textarea,.inspector select{font-size:16px}.inspector section,.inspector>details{padding:16px}.inspector button,details>summary{min-height:44px}.options>button{font-size:13px}.panel-title h2{font-size:16px}.mobile-nav{gap:4px;padding:4px 8px;padding-bottom:max(4px,env(safe-area-inset-bottom))}.mobile-nav button{min-width:0;flex:1;font-size:12px}.tool-hint{font-size:11px;padding:6px 10px}#workspace{padding:12px}#welcome{margin:12px auto;padding:15px 10px}#welcome h1{font-size:27px}.samples{margin-top:20px;padding-top:10px}.samples button{min-height:44px}.privacy-note{margin-top:12px}footer{font-size:10px;padding:4px 10px}dialog{padding:18px}.dialog-actions button{min-height:44px}.file-menu .menu-body{min-width:225px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
body:not(.has-document) main{grid-template-columns:1fr}body:not(.has-document) .pages-panel,body:not(.has-document) .inspector,body:not(.has-document) .toolbar,body:not(.has-document) .canvas-bar,body:not(.has-document) .tool-hint,body:not(.has-document) .mobile-nav{display:none}body:not(.has-document) .document-area{grid-template-rows:minmax(0,1fr)}body:not(.has-document) #workspace{background:var(--chrome)}
@media(max-width:699px){.history-controls #redo{display:block}}
.appbar{grid-row:1}.toolbar{grid-row:2}main{grid-row:3}.mobile-nav{grid-row:4}footer{grid-row:5}
.tool-hint{display:flex;justify-content:space-between;align-items:center;gap:8px}.tool-hint button{min-height:40px;background:var(--accent);color:var(--on-accent)}.tool-hint button:hover:not(:disabled){background:var(--accent-hover)}.tool-hint button:disabled{background:var(--disabled-surface);color:var(--muted)}.nudge-controls{display:flex;gap:6px;margin-top:10px}.nudge-controls button{min-width:44px;min-height:44px;background:var(--hover)}#nativeList button{display:block;text-align:left;white-space:normal;overflow-wrap:anywhere;width:100%;font-size:12px}#nativeFontOptions select{display:block;width:100%;margin-top:8px}#textError{color:var(--danger)}#nativeInfo{overflow-wrap:anywhere}
.layer-row{display:flex;align-items:center;border-bottom:1px solid var(--line);min-height:42px}.layer-row.selected{background:var(--selected);border-left:3px solid var(--accent)}.layer-row small{font-size:10px;color:var(--muted);padding-right:6px}.layer-row.hidden-layer{opacity:.5}.layer-row button{min-width:0;flex:1}.layer-name{display:flex;gap:4px;margin:6px 0}.layer-name input{width:100%;min-width:0}.layer-flags{display:flex;align-items:center;justify-content:space-between;gap:5px;margin:8px 0}.layer-flags label{display:flex;align-items:center;gap:5px}#layerFilter{width:100%;margin-bottom:8px}#nativeList{max-height:42vh;overflow:auto}
/* Document-first tool rail and independent inspector drawer. */
body{grid-template-rows:auto minmax(0,1fr) auto auto}.appbar{grid-row:1}main{grid-row:2;position:relative;grid-template-columns:minmax(0,1fr)}.mobile-nav{grid-row:3}footer{grid-row:4}
main[data-panel=document] .pages-panel,main[data-panel=document] .inspector{display:none}
main[data-panel=pages]{grid-template-columns:160px minmax(0,1fr)}main[data-panel=pages] .inspector{display:none}
main[data-panel=tools]{grid-template-columns:minmax(0,1fr) 310px}main[data-panel=tools] .pages-panel{display:none}
.document-area{position:relative;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}.context-bar{min-height:48px;padding:5px 14px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);background:var(--surface);min-width:0}.active-tool{display:flex;flex-direction:column;gap:2px;min-width:100px}.active-tool strong{font-size:12px}.active-tool span{font-size:11px;color:var(--muted)}.context-bar .history-controls{margin-left:auto;border:0;padding:0}.context-bar .history-controls button{font-size:12px;min-height:36px}.context-bar .option-row{flex-wrap:nowrap}.context-bar label{font-size:11px}.context-bar input[type=color]{width:32px;height:32px}.context-bar input[type=number]{width:55px;min-height:32px;padding:5px}.context-bar #contextProperties{font-size:12px;min-height:36px;border:1px solid var(--line)}
.canvas-bar{min-height:42px}.canvas-bar #pageposition{margin-right:auto}.canvas-bar #toggleLayers{font-size:12px;padding:6px 9px}
.toolbar.floating-tools{position:absolute;z-index:8;left:12px;top:106px;width:58px;display:flex;flex-direction:column;padding:5px;gap:3px;border:1px solid var(--control-line);border-radius:7px;background:var(--surface);box-shadow:0 3px 10px #26332e25;max-height:calc(100% - 158px);overflow:auto;grid-row:auto}
.rail-head{display:flex;justify-content:center;border-bottom:1px solid var(--line)}.rail-head button{width:44px;min-height:30px;padding:2px;color:var(--muted)}
#tools{display:flex;flex-direction:column;overflow:visible;gap:3px;flex:1;min-width:0}#tools button{position:relative;min-width:44px;width:44px;min-height:44px;height:44px;padding:10px;display:grid;place-items:center;border:1px solid transparent;flex-shrink:0}#tools button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.tool-label{position:absolute;left:54px;top:8px;background:var(--ink);color:var(--paper);padding:6px 9px;border-radius:3px;white-space:nowrap;font-size:12px;display:none;pointer-events:none}#tools button[aria-pressed=true]{background:var(--selected);color:var(--accent);border-color:var(--accent-border);box-shadow:inset 3px 0 var(--accent)}#tools button:hover{background:var(--hover)}#tools button:focus-visible{outline-offset:-2px}
.floating-tools[data-collapsed=true] #tools button:not([aria-pressed=true]){display:none}
#workspace{padding:22px 24px 22px 86px}.inspector-tabs{position:sticky;top:0;background:var(--chrome);display:flex;gap:2px;padding:4px 8px;border-bottom:1px solid var(--line);z-index:2}.inspector-tabs button{min-width:0;flex:1;font-size:11px;padding:8px 4px;min-height:40px;border-bottom:2px solid transparent;border-radius:0}.inspector-tabs button[aria-selected=true]{border-color:var(--accent);color:var(--accent);font-weight:600}.inspector [role=tabpanel]>details,.inspector [role=tabpanel]>section{padding:14px;border-bottom:1px solid var(--line)}#emptyProperties{padding:14px}.panel-title button{font-size:23px;min-height:36px;min-width:36px;padding:0}#nativeList{max-height:none}#panelLayers details>summary{font-size:12px}
.mobile-nav{display:flex;justify-content:center;gap:8px;padding:4px 10px;background:var(--chrome);border-top:1px solid var(--line)}.mobile-nav button{min-width:96px;min-height:36px;font-size:12px}.mobile-nav button[aria-pressed=true]{background:var(--selected);color:var(--accent);font-weight:600}
body:not(.has-document) .context-bar,body:not(.has-document) .floating-tools{display:none}
@media(max-width:699px){
 main[data-panel]{display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden}
 main[data-panel] .document-area{display:grid;height:100%;grid-column:1;grid-row:1}
 main[data-panel=pages] .pages-panel,main[data-panel=tools] .inspector{display:block;position:absolute;z-index:12;left:8px;right:8px;bottom:0;height:min(65%,520px);max-height:calc(100% - 80px);border:1px solid var(--control-line);border-radius:10px 10px 0 0;box-shadow:0 -5px 20px #26332e33;background:var(--chrome)}
 .panel-title{padding:8px 12px 4px}.panel-title button{min-width:44px;min-height:44px}.inspector-tabs button{font-size:12px;min-height:44px}.inspector [role=tabpanel]>details,.inspector [role=tabpanel]>section{padding:12px}
 .context-bar{padding:4px 8px;gap:8px;min-height:48px;flex-wrap:wrap}.active-tool{min-width:54px}.active-tool span{display:none}.context-bar .history-controls{margin-left:auto}.context-bar .history-controls button{min-height:40px;padding:6px}.context-bar .option-row{gap:4px}.context-bar input[type=number]{width:46px}.context-bar label{font-size:10px}.context-bar #contextProperties{min-height:40px}
 #workspace{padding:12px 12px 78px}.toolbar.floating-tools{left:12px;right:auto;top:auto;bottom:52px;max-width:calc(100% - 24px);width:auto;max-height:none;flex-direction:row;padding:4px;gap:4px;border-radius:8px;overflow:hidden}.rail-head{border:0;border-right:1px solid var(--line);align-items:center;order:2}.rail-head button{min-height:44px;min-width:40px;width:40px;font-size:19px}
 #tools{flex-direction:row;gap:2px;overflow-x:auto;max-width:calc(100vw - 84px);scrollbar-width:none}#tools button{min-width:44px;width:44px;height:44px;min-height:44px;padding:10px}.floating-tools[data-collapsed=true]{width:auto}.tool-label{display:none!important}
 .mobile-nav{padding-bottom:max(4px,env(safe-area-inset-bottom));gap:2px}.mobile-nav button{min-width:0;flex:1;min-height:44px;font-size:11px}
 .tool-hint{min-height:42px;max-height:54px;overflow:auto;padding:6px 9px}.tool-hint #hint{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.canvas-bar{gap:2px}.canvas-bar #toggleLayers{display:none}
}
body:not(.has-document) .document-area{grid-template-rows:minmax(0,1fr)}
.context-bar{flex-wrap:wrap}
@media(min-width:700px){.toolbar.floating-tools{top:var(--rail-top,106px)}}

/* Object-local actions stay within the visible document workspace. */
.selection-tools{position:absolute;z-index:9;display:flex;flex-wrap:wrap;align-items:center;gap:2px;max-width:min(410px,calc(100% - 90px));padding:5px;background:var(--surface);border:1px solid var(--control-line);border-radius:6px;box-shadow:0 4px 16px #26332e24;cursor:default}.selection-tools>span{font-size:11px;color:var(--muted);padding:0 7px;width:100%}.selection-tools button{min-height:36px;padding:5px 8px;font-size:12px}.selection-tools small{flex-basis:100%;padding:3px 7px;font-size:10px;color:var(--muted)}.position-row{display:flex;gap:8px}.position-row label{flex:1;min-width:0}.position-row input{display:block;width:100%;margin-top:5px}.position-row+button{margin:8px 0}.history-controls #redo{display:inline-block}
@media(max-width:699px){.selection-tools{max-width:calc(100% - 16px)}.selection-tools button{min-height:44px}.selection-tools>span{font-size:12px}.selection-tools small{display:none}}

/* Continuous document: stable page shells, bounded bitmap working set. */
#stage{display:flex;flex-direction:column;gap:28px;background:transparent;box-shadow:none;min-width:0;overflow-anchor:none}
.pdf-page{position:relative;flex:none;margin:0 auto;background:white;box-shadow:0 2px 8px #26332e26;overflow:hidden}
.pdf-page .page-canvas{display:block}.pdf-page .marks-canvas{width:100%;height:100%;position:absolute;left:0;top:0;touch-action:none}
#workspace{overflow-anchor:none}.thumb-frame{position:relative;width:100%;background:white;border:1px solid var(--line)}.thumb-frame canvas{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Local recovery status stays visible on phones as well as desktop. */
footer{display:flex;flex-wrap:wrap;gap:4px 14px}#autosaveStatus{font-weight:600;color:var(--success)}#autosaveStatus.error{color:var(--danger)}#recoveryCard{border:1px solid var(--line);background:var(--surface);padding:18px;margin-bottom:24px;border-radius:5px}#recoveryCard h2{font-size:18px;margin-bottom:8px}#recoveryName{overflow-wrap:anywhere;font-size:12px}#recoveryCard .subtle{margin:12px 0 0}

.font-detection{padding:10px;background:var(--chrome);border-left:3px solid var(--accent);overflow-wrap:anywhere}#fontPreview{padding:12px;border:1px solid var(--line);font-size:20px;line-height:1.4;overflow-wrap:anywhere;max-height:140px;overflow:auto;margin:10px 0}.font-rights{display:flex;gap:8px;align-items:flex-start;margin:10px 0}.font-rights input{flex:none;margin-top:2px}.font-import{margin-top:12px}#bulkFontSection{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}#bulkFontScope{display:block;width:100%;margin:6px 0}#bulkFontSummary{white-space:pre-line;font-size:12px}#fontImportStatus{overflow-wrap:anywhere}#textDialog button{white-space:normal}.font-import a{font-size:12px;margin-left:10px}

/* Readable, touch-friendly original-text fit controls. */
.text-fit-options{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}.text-fit-choice{display:flex;align-items:flex-start;gap:9px;min-height:44px;padding:10px 0;line-height:1.4;font-size:14px}.text-fit-choice input{flex:none;width:20px;height:20px;margin:0}.text-fit-options .subtle,#bulkTextFitHelp{margin:0 0 10px}#nativeTextFitSummary{white-space:pre-line;font-size:12px}#previewBulkPdf{margin-right:6px}#textDialog input:focus-visible,#textDialog button:focus-visible{outline:2px solid var(--focus);outline-offset:3px}

/* Drag helpers use CSS-pixel strokes and stay outside saved PDF content. */
#snapGuides{min-width:48px;min-height:40px;font-size:12px;padding:6px 9px;border:1px solid var(--line)}#snapGuides[aria-pressed=true]{background:var(--selected);color:var(--accent);border-color:var(--accent-border)}.drag-position{position:absolute;z-index:10;right:16px;bottom:60px;max-width:calc(100% - 108px);padding:7px 10px;border:1px solid var(--accent-border);border-radius:5px;background:var(--selected);color:var(--ink);box-shadow:0 2px 8px #26332e20;font-size:11px;line-height:1.4;font-variant-numeric:tabular-nums;pointer-events:none}.drag-position[data-state=free],.drag-position[data-state=bypass]{color:var(--ink);border-color:var(--line);background:var(--surface)}
@media(max-width:699px){#snapGuides{min-height:44px}.drag-position{right:10px;bottom:112px;max-width:calc(100% - 20px);font-size:11px}}

/* Page-scoped selection controls and original text styling. */
#multiSelect{min-height:40px;font-size:12px;border:1px solid var(--line);padding:6px 9px}#multiSelect[aria-pressed=true]{background:var(--selected);color:var(--accent);border-color:var(--accent-border)}.arrange-buttons{display:grid;grid-template-columns:1fr 1fr;gap:4px}.arrange-buttons button{font-size:12px;min-height:40px}.native-text-style{display:flex;gap:16px;margin-bottom:10px}.native-text-style label{flex:1;min-width:0;font-size:12px}.native-text-style input{display:block;margin-top:6px;min-height:40px;width:100%}.native-text-style input[type=color]{padding:4px}#selectionCount:empty{display:none}#transformOptions .position-row{margin-top:6px;align-items:center}#selectionScale{width:90px;min-height:40px}#transformReason{margin-top:8px}#arrangeOptions h3{margin-top:16px}
@media(max-width:699px){#multiSelect,.arrange-buttons button,#applySelectionScale{min-height:44px}}

/* Explicit added-text frames: controls remain legible on small screens. */
.text-box-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.text-box-grid label{min-width:0;font-size:12px}.text-box-grid input,.text-box-grid select{display:block;width:100%;min-height:40px;margin-top:6px}#textBoxSummary{white-space:pre-line;font-variant-numeric:tabular-nums}#textBoxSummary[data-state=error]{color:var(--danger)}#textBoxSummary[data-state=loading]{color:var(--muted)}#addedTextOptions>button{border:1px solid var(--line)}
@media(max-width:699px){.text-box-grid input,.text-box-grid select,#addedTextOptions button{min-height:44px;font-size:16px}}

/* Native text sections are derived selections, never flattened PDF content. */
#textSections{min-height:40px;font-size:12px;border:1px solid var(--line);padding:6px 9px}#textSections[aria-pressed=true]{background:var(--selected);color:var(--accent);border-color:var(--accent-border)}.text-section-layer{border-left:2px solid var(--sage);margin:5px 0;padding-left:5px}.text-section-layer>.layer-row{margin-bottom:0}.section-expand{flex:none!important;max-width:76px!important;font-size:11px!important}.section-runs{margin-left:12px;border-left:1px solid var(--line);padding-left:5px}.section-runs .layer-row button{font-size:11px}.section-runs .layer-row small{font-size:10px}#textSectionOptions button{margin:4px 4px 4px 0}#textSectionEditReason{overflow-wrap:anywhere}
@media(max-width:699px){#textSections,.section-expand,#textSectionOptions button{min-height:44px}}

/* Keep the document name and primary file actions usable on narrow phones. */
@media(max-width:419px){.brand-wordmark{display:none}.brand{padding-right:4px}}

:root[data-theme=dark] .brand-logo{background:#f2f1eb;border-radius:5px;padding:3px}

/* Appearance stays in File so primary document controls fit on phones. */
.theme-setting{border-top:1px solid var(--line);margin-top:6px;padding:12px 8px 6px}.theme-setting label{display:block;font-weight:600;margin-bottom:7px}.theme-setting select{width:100%;min-height:44px}.theme-setting .subtle{margin:8px 0 0}.theme-setting #themeStatus{color:var(--warning)}

/* One optional, in-flow banner. Disabled placements take no space. */
body.has-ad-banner{grid-template-rows:auto auto minmax(0,1fr) auto auto}
body.has-ad-banner #adBanner{grid-row:2}
body.has-ad-banner main{grid-row:3}
body.has-ad-banner .mobile-nav{grid-row:4}
body.has-ad-banner footer{grid-row:5}
.ad-banner{min-width:0;padding:20px 14px 24px;background:var(--chrome);border-bottom:1px solid var(--line)}
.ad-banner-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;width:320px;margin:0 auto 8px;font-size:10px;color:var(--muted)}
.ad-banner-meta a{color:var(--muted);text-underline-offset:2px}
.ad-banner-slot{display:flex;justify-content:center;min-width:0}
@media(min-width:520px){.ad-banner-meta{width:468px}}
@media(min-width:800px){.ad-banner-meta{width:728px}}
@media(max-width:347px),(max-height:599px){#adBanner{display:none!important}body.has-ad-banner{grid-template-rows:auto minmax(0,1fr) auto auto}body.has-ad-banner main{grid-row:2}body.has-ad-banner .mobile-nav{grid-row:3}body.has-ad-banner footer{grid-row:4}}
@media print{#adBanner{display:none!important}}

.menu-body>a{display:block;padding:10px 11px;min-height:44px;font-size:13px;text-decoration:none;border-radius:4px}.menu-body>a:hover{background:var(--hover)}
/* Menus/dialogs keep the reserved banner space but mask its clickable contents. */
body:has(.file-menu[open]) #adBannerSlot,body:has(dialog[open]) #adBannerSlot{visibility:hidden}
