@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&family=Space+Mono:wght@400;700&display=swap');
:root{--bg:#08080D;--surface:#111118;--surface-2:#1A1A25;--surface-3:#222233;--border:#2A2A3E;--border-light:#363650;--accent:#FF3B3B;--accent-glow:rgba(255,59,59,.25);--accent-soft:rgba(255,59,59,.08);--green:#00D26A;--green-soft:rgba(0,210,106,.1);--yellow:#FFB800;--yellow-soft:rgba(255,184,0,.1);--blue:#3B82F6;--blue-soft:rgba(59,130,246,.08);--text:#EEEEF5;--text-dim:#8888AA;--text-muted:#555570;--white:#fff;--radius:10px;--radius-lg:16px}
*{margin:0;padding:0;box-sizing:border-box}body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh}a{color:inherit;text-decoration:none}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:var(--radius);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:all .2s}
.btn-primary{background:var(--accent);color:var(--white);box-shadow:0 2px 12px var(--accent-glow)}.btn-primary:hover{transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--text-dim);border:1px solid var(--border)}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}
.btn-green{background:var(--green);color:var(--bg)}.btn-green:hover{transform:translateY(-1px)}
.btn-danger{background:transparent;color:var(--accent);border:1px solid rgba(255,59,59,.3)}.btn-danger:hover{background:var(--accent-soft)}
.btn-sm{padding:.4rem .8rem;font-size:.8rem}.btn-block{width:100%;justify-content:center}
.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;border-radius:99px;font-size:.7rem;font-weight:600}
.badge-yellow{background:var(--yellow-soft);color:var(--yellow)}.badge-red{background:var(--accent-soft);color:var(--accent)}.badge-green{background:var(--green-soft);color:var(--green)}
.form-input{width:100%;padding:.7rem 1rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:.9rem;transition:border-color .2s}.form-input:focus{outline:none;border-color:var(--accent)}
.form-label{display:block;font-size:.8rem;color:var(--text-dim);margin-bottom:.4rem;font-weight:500}.form-group{margin-bottom:1rem}.form-error{color:var(--accent);font-size:.8rem;margin-top:.3rem}
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(80px);background:var(--surface-2);border:1px solid var(--border);padding:.65rem 1.25rem;border-radius:var(--radius);font-size:.85rem;z-index:9999;transition:transform .3s cubic-bezier(.34,1.56,.64,1);white-space:nowrap}.toast.show{transform:translateX(-50%) translateY(0)}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);z-index:1000;align-items:center;justify-content:center;padding:1rem}.modal-overlay.active{display:flex}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;max-width:520px;width:100%}.modal h2{font-size:1.25rem;margin-bottom:.3rem}.modal .sub{color:var(--text-dim);font-size:.9rem;margin-bottom:1.5rem}
.layout{display:flex;min-height:100vh}
.sidebar{width:260px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh;position:fixed;left:0;top:0;z-index:100}
.sidebar-header{padding:1.25rem;border-bottom:1px solid var(--border)}
.sidebar-logo{font-family:'Space Mono',monospace;font-size:1.4rem;font-weight:700;background:linear-gradient(135deg,var(--white),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar-logo span{font-size:.65rem;color:var(--text-muted);-webkit-text-fill-color:var(--text-muted);display:block;font-family:'DM Sans';font-weight:400;letter-spacing:2px;text-transform:uppercase;margin-top:2px}
.sidebar-body{flex:1;overflow-y:auto;padding:1rem}.sidebar-footer{padding:.75rem 1rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.sidebar-footer .user-info{font-size:.78rem;color:var(--text-dim)}
.upload-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.8rem;background:var(--accent);color:var(--white);border:none;border-radius:var(--radius);font-family:inherit;font-size:.88rem;font-weight:600;cursor:pointer;box-shadow:0 4px 16px var(--accent-glow);margin-bottom:1.1rem}.upload-btn:hover{transform:translateY(-1px)}
.doc-list-title{font-size:.63rem;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);margin-bottom:.7rem;padding-left:.25rem}
.doc-item{display:flex;align-items:center;gap:.7rem;padding:.65rem;border-radius:var(--radius);cursor:pointer;transition:background .15s;margin-bottom:.15rem}.doc-item:hover{background:var(--surface-2)}.doc-item.active{background:var(--surface-3);border:1px solid var(--border-light)}
.doc-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0}.doc-icon.draft{background:var(--yellow-soft)}.doc-icon.pending{background:var(--accent-soft)}.doc-icon.signed{background:var(--green-soft)}
.doc-meta{flex:1;min-width:0}.doc-meta .name{font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-meta .date{font-size:.66rem;color:var(--text-muted);margin-top:1px}
.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.draft{background:var(--yellow)}.status-dot.pending{background:var(--accent);animation:blink 2s infinite}.status-dot.signed{background:var(--green)}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.main-content{flex:1;margin-left:260px;min-height:100vh;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:50;min-height:54px;gap:.75rem;flex-wrap:wrap}.topbar-title{font-weight:600;font-size:.92rem}.topbar-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.content-area{flex:1;display:flex;flex-direction:column;align-items:center;padding:1.5rem;gap:1.25rem}
.pdf-container{position:relative;background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);display:flex;justify-content:center;min-height:400px;width:100%;max-width:950px;cursor:crosshair}
.pdf-page-wrapper{position:relative;display:inline-block}.pdf-page-wrapper canvas{display:block}
.toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.7rem;padding:.65rem 1rem;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);width:100%;max-width:950px}.toolbar-group{display:flex;align-items:center;gap:.5rem}.page-info{font-family:'Space Mono',monospace;font-size:.76rem;color:var(--text-dim);min-width:70px;text-align:center}
/* Admin markers */
.sig-marker{position:absolute;border:2.5px solid var(--accent);border-radius:6px;background:rgba(255,59,59,.07);cursor:move;display:flex;align-items:center;justify-content:center;z-index:10;user-select:none;touch-action:none}.sig-marker:hover{box-shadow:0 0 16px var(--accent-glow)}
.sig-marker .x-mark{position:relative;width:20px;height:20px}.sig-marker .x-mark::before,.sig-marker .x-mark::after{content:'';position:absolute;top:50%;left:50%;width:18px;height:2.5px;background:var(--accent);border-radius:2px}.sig-marker .x-mark::before{transform:translate(-50%,-50%) rotate(45deg)}.sig-marker .x-mark::after{transform:translate(-50%,-50%) rotate(-45deg)}
.sig-marker .delete-btn{position:absolute;top:-8px;right:-8px;width:18px;height:18px;border-radius:50%;background:var(--accent);color:var(--white);font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;border:none}.sig-marker:hover .delete-btn{opacity:1}
.sig-marker .marker-label{position:absolute;bottom:-17px;left:50%;transform:translateX(-50%);font-size:8px;font-family:'Space Mono',monospace;color:var(--accent);font-weight:700;white-space:nowrap}
.sig-marker.type-text{border-color:var(--blue);background:rgba(59,130,246,.07)}.sig-marker.type-text:hover{box-shadow:0 0 16px rgba(59,130,246,.25)}.sig-marker.type-text .marker-label{color:var(--blue)}.sig-marker.type-text .delete-btn{background:var(--blue)}
/* Client zones */
.sign-zone{position:absolute;border:2.5px dashed var(--accent);border-radius:8px;background:rgba(255,59,59,.06);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:10;overflow:hidden;-webkit-tap-highlight-color:transparent}
.sign-zone.signed,.sign-zone.filled{border-color:var(--green);border-style:solid;background:rgba(255,255,255,.92)}
.sign-zone .zone-text{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent)}.sign-zone.signed .zone-text,.sign-zone.filled .zone-text{color:var(--green);font-size:7px}
.sign-zone .sig-img{max-width:94%;max-height:90%;object-fit:contain}
.sign-zone.type-text{border-color:var(--blue);background:rgba(59,130,246,.06)}.sign-zone.type-text.filled{border-color:var(--green);border-style:solid;background:rgba(255,255,255,.92)}
.sign-zone.type-text .zone-text{color:var(--blue)}
.sign-zone .filled-text{font-weight:900;color:#000;padding:2px 4px;max-width:98%;text-align:center;line-height:1.1;font-family:'DM Sans',sans-serif;word-break:break-word;overflow:hidden}
/* Signed overlay admin */
.signed-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:10;overflow:hidden}
.signed-overlay.type-sig{border:1px solid rgba(0,210,106,.3);border-radius:6px;background:rgba(255,255,255,.9)}.signed-overlay.type-sig img{max-width:96%;max-height:92%;object-fit:contain}
.signed-overlay.type-text{background:rgba(255,255,255,.85);border-radius:4px}.signed-overlay.type-text span{font-weight:900;color:#000;font-family:'DM Sans',sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center;padding:0 4px}
/* Sigpad */
.sigpad-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.85);backdrop-filter:blur(10px);z-index:2000;flex-direction:column;align-items:center;justify-content:center;padding:1rem}.sigpad-overlay.active{display:flex}
.sigpad-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;width:100%;max-width:460px}.sigpad-modal h3{font-size:1.1rem;margin-bottom:.25rem;text-align:center}.sigpad-modal .sub{color:var(--text-dim);font-size:.8rem;text-align:center;margin-bottom:.75rem}
.sigpad-canvas-wrap{border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#FFF;touch-action:none;margin-bottom:.75rem}.sigpad-canvas-wrap canvas{display:block;width:100%;height:180px;touch-action:none}
.sigpad-actions{display:flex;gap:.5rem}.sigpad-actions .btn{flex:1;justify-content:center}
@media(max-width:768px){.sidebar{width:100%;height:auto;position:relative;border-right:none;border-bottom:1px solid var(--border)}.main-content{margin-left:0}.content-area{padding:1rem}.topbar{padding:.7rem 1rem}}
