*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#e9eef6;color:#182338;overflow:hidden}header{height:62px;background:#fff;border-bottom:1px solid #dce3ed;display:flex;align-items:center;padding:0 12px;gap:12px}.back{width:38px;height:38px;border:0;border-radius:9px;background:#f0f3f8;font-size:20px}.brand b{display:block;font-size:14px}.brand b span{font-size:9px;background:#edf4ff;color:#2168ff;border-radius:5px;padding:3px 5px;margin-left:5px}.brand small{font-size:9px;color:#8993a4}.head-actions{margin-left:auto;display:flex;gap:8px}.head-actions button,.subbar button,.tool{border:1px solid #dce3ed;background:#fff;color:#4e5b70;border-radius:7px;padding:7px 9px;font-size:11px;font-weight:600;cursor:pointer}.head-actions .primary,.primary{background:#2168ff;border-color:#2168ff;color:#fff}.ribbon{height:50px;background:#fff;border-bottom:1px solid #dce3ed;display:flex;align-items:center;gap:5px;padding:0 8px;overflow:auto}.group{display:flex;gap:3px;border-right:1px solid #e5e9f0;padding-right:7px;margin-right:2px;white-space:nowrap}.tool.active,.tool:hover{background:#edf4ff;color:#2168ff}.subbar{height:42px;background:#f7f9fc;border-bottom:1px solid #dce3ed;display:flex;align-items:center;justify-content:space-between;padding:0 10px;font-size:11px}.subbar button{padding:5px 7px}main{display:grid;grid-template-columns:180px 1fr 235px;height:calc(100vh - 154px)}.pages,.properties{background:#fff;overflow:auto}.pages{border-right:1px solid #dce3ed}.properties{border-left:1px solid #dce3ed}.pages h4,.properties h4{margin:0;padding:13px 14px;border-bottom:1px solid #edf0f5;font-size:11px}.thumbs{padding:10px}.empty{font-size:11px;color:#99a3b3;text-align:center;padding:30px 5px}.thumb{background:#f8fafc;border:1px solid #dce3ed;border-radius:7px;margin-bottom:8px;padding:5px;cursor:pointer}.thumb.active{border:2px solid #2168ff}.thumb canvas{width:100%;display:block;background:#fff}.thumb div{text-align:center;font-size:9px;color:#7e899c;padding-top:3px}.stage{overflow:auto;background:#e7ecf4;position:relative}.drop{height:100%;display:grid;place-items:center}.upload{background:#fff;border:1px solid #dbe3ee;border-radius:18px;padding:36px;width:min(440px,90%);text-align:center;box-shadow:0 16px 40px #1f3b6512}.pdficon{width:65px;height:65px;border-radius:16px;background:#edf4ff;color:#2168ff;display:grid;place-items:center;font-weight:900;margin:auto}.upload h2{font-size:20px;margin:15px 0 7px}.upload p{font-size:12px;color:#748096}.upload small{display:block;color:#98a2b2;font-size:10px;margin-top:12px}.stage-inner{padding:34px;min-height:100%;display:flex;justify-content:center;align-items:flex-start}.hidden{display:none!important}#page{position:relative;background:#fff;box-shadow:0 8px 30px #263d5a2a;flex:none}#pdf,#draw{display:block}#draw{position:absolute;inset:0;z-index:5;cursor:crosshair}#textLayer{position:absolute;inset:0;z-index:4;pointer-events:auto}.tspan{position:absolute;white-space:pre;transform-origin:0 0;color:transparent;cursor:text;border-radius:2px}.tspan:hover,.tspan.sel{background:#2168ff1a;outline:1px solid #2168ff55}.inline{position:absolute;z-index:20;border:1px solid #2168ff;outline:none;border-radius:3px;padding:1px 3px;background:#fff;box-shadow:0 5px 20px #193a6426}.properties{padding-bottom:20px}.properties label{display:block;font-size:10px;color:#647086;margin:11px 12px}.properties select,.properties input[type=number]{width:100%;margin-top:5px;border:1px solid #dce3ed;border-radius:6px;padding:7px;font-size:11px}.properties input[type=color]{display:block;margin-top:5px}.row{display:flex;gap:6px;padding:0 12px}.row label{margin:0;flex:1}.mini{border:1px solid #dce3ed;background:#f8faff;border-radius:6px;padding:7px;flex:1;font-weight:700}.danger{color:#c53030!important}.full{width:calc(100% - 24px);margin:10px 12px}.muted{font-size:10px;color:#8a95a6;line-height:1.6;padding:12px}.bubble{position:fixed;z-index:40;background:#182338;color:#fff;padding:6px;border-radius:9px;box-shadow:0 8px 30px #17294244;display:flex;gap:4px;align-items:center}.bubble select,.bubble input,.bubble button{height:28px;border:0;border-radius:5px}.bubble button{padding:0 8px}.modal{position:fixed;inset:0;background:#0c193666;z-index:50;display:grid;place-items:center}.modalbox{width:min(470px,92%);background:#fff;border-radius:16px;padding:20px;position:relative}.modalbox .x{position:absolute;right:12px;top:10px;border:0;border-radius:50%;width:28px;height:28px}.modalbox textarea{width:100%;resize:vertical;border:1px solid #dce3ed;border-radius:8px;padding:10px;font-family:inherit}.modalrow{display:flex;gap:7px;margin-top:8px}.modalrow>*{padding:8px;border:1px solid #dce3ed;border-radius:7px}.modalrow select{flex:1}.modalrow .primary{border:0}.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#182338;color:#fff;border-radius:20px;padding:8px 14px;font-size:11px;z-index:70;display:none}.toast.show{display:block}@media(max-width:900px){main{grid-template-columns:85px 1fr}.properties{display:none}.ribbon{height:58px}.group{flex-wrap:nowrap}.stage-inner{padding:20px}.head-actions button:first-child{display:none}}

#objects{position:absolute;inset:0;z-index:20;pointer-events:none}
.text-object{box-sizing:border-box;user-select:none}
.text-object:hover{outline:1px solid #2168ff55}
.image-object{box-sizing:border-box;user-select:none}

#objects{position:absolute;inset:0;z-index:20;pointer-events:none}
.text-object,.image-object{box-sizing:border-box;user-select:none;pointer-events:auto}
.text-object:hover{outline:1px solid #2168ff55}
.image-object{touch-action:none}
.resize-handle{position:absolute;width:10px;height:10px;background:#2168ff;border:1px solid #fff;border-radius:2px;z-index:50}
.resize-handle.nw{left:-6px;top:-6px;cursor:nwse-resize}.resize-handle.n{left:50%;top:-6px;transform:translateX(-50%);cursor:ns-resize}
.resize-handle.ne{right:-6px;top:-6px;cursor:nesw-resize}.resize-handle.e{right:-6px;top:50%;transform:translateY(-50%);cursor:ew-resize}
.resize-handle.se{right:-6px;bottom:-6px;cursor:nwse-resize}.resize-handle.s{left:50%;bottom:-6px;transform:translateX(-50%);cursor:ns-resize}
.resize-handle.sw{left:-6px;bottom:-6px;cursor:nesw-resize}.resize-handle.w{left:-6px;top:50%;transform:translateY(-50%);cursor:ew-resize}
.ocr-tspan{box-sizing:border-box}

.tspan.selected-text{outline:1px dashed #2168ff;background:rgba(33,104,255,.08)}
#objects{position:absolute;inset:0;z-index:20;pointer-events:none}
.text-object,.image-object{box-sizing:border-box;user-select:none;pointer-events:auto}
.resize-handle{position:absolute;width:10px;height:10px;background:#2168ff;border:1px solid #fff;border-radius:2px;z-index:50}

#textLayer .tspan{display:block;box-sizing:border-box}
#textLayer .edited-text-cover{box-sizing:border-box}
#textLayer .inline{box-sizing:border-box}

.signature-object{box-sizing:border-box;touch-action:none}
.signature-object img{user-select:none}

/* FIX9: the object layer must not block clicks on empty PDF space.
   Individual objects remain clickable/selectable. */
#objects{pointer-events:none}
#objects > .text-object,
#objects > .image-object,
#objects > .signature-object{pointer-events:auto}

#textLayer .tspan{cursor:move;touch-action:none}
#textLayer .edited-text-cover{box-sizing:border-box}

.mark-object{box-sizing:border-box;touch-action:none;user-select:none}
.mark-object:hover{outline:1px solid #2168ff55}

#objects .resize-handle{pointer-events:auto}
.mark-object .resize-handle{z-index:60}
.image-settings{display:grid;grid-template-columns:1fr 1fr;gap:8px}

/* FIX16: Properties panel always sits above page interaction layers. */
#props{position:relative;z-index:200;pointer-events:auto}
#props *{pointer-events:auto}
#props input,#props select,#props button{position:relative;z-index:201}

/* FIX26: Clear / Eraser */
.clear-area-preview,.eraser-preview{position:absolute;z-index:100;pointer-events:none;box-sizing:border-box}
.clear-area-preview{border:2px dashed #2168ff;background:rgba(255,255,255,.22)}
.eraser-preview{width:28px;height:28px;border:2px solid #ef4444;border-radius:50%;background:rgba(239,68,68,.08);transform:translate(-50%,-50%)}
