:root{--bg:#f5f7f8;--surface:#fff;--surface-soft:#eef2f4;--text:#111827;--muted:#6b7280;--border:#d7dee4;--brand:#183850;--brand-2:#21465f;--accent:#fff;--danger:#b91c1c;--success:#15803d;--shadow:0 18px 45px rgba(15,23,42,.08)}html[data-theme=dark]{--bg:#0b1620;--surface:#122435;--surface-soft:#17324a;--text:#f8fafc;--muted:#a9b8c7;--border:hsla(0,0%,100%,.12);--brand:#183850;--brand-2:#244c68;--accent:#fff;--shadow:0 20px 60px rgba(0,0,0,.28)}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;padding:24px;background:linear-gradient(180deg,#183850,#0f2638);color:#fff;gap:28px}.brand-box,.sidebar{display:flex;flex-direction:column}.brand-box{gap:10px}.brand-box img{width:210px;height:auto}.brand-box span{color:hsla(0,0%,100%,.72);font-size:13px;letter-spacing:.08em;text-transform:uppercase}.nav-list{display:grid;grid-gap:8px;gap:8px}.ghost-button,.nav-list a{border:1px solid hsla(0,0%,100%,.12);border-radius:14px;color:#fff;background:hsla(0,0%,100%,.06);padding:12px 14px;transition:.2s ease;cursor:pointer}.ghost-button:hover,.nav-list a:hover{background:hsla(0,0%,100%,.12)}.full{width:100%}.sidebar-footer{margin-top:auto;display:grid;grid-gap:10px;gap:10px}.user-pill{display:grid;grid-gap:3px;gap:3px;color:#fff;font-size:13px;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.12);border-radius:14px;padding:12px}.user-pill small{color:hsla(0,0%,100%,.66);word-break:break-word}.content-area{padding:34px;max-width:1280px;width:100%}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:700;margin:0 0 8px}h1,h2,h3{margin:0;letter-spacing:-.03em}h1{font-size:clamp(28px,4vw,44px);line-height:1.04}h2{font-size:22px}p{color:var(--muted);line-height:1.6}.card,.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:24px;padding:24px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:22px;box-shadow:var(--shadow)}.stat-card span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.stat-card strong{font-size:34px}.actions-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.danger-button,.primary-button,.secondary-button{border:0;border-radius:14px;padding:12px 16px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary-button{background:var(--brand);color:#fff}.primary-button:hover{background:var(--brand-2)}.secondary-button{background:var(--surface-soft);color:var(--text);border:1px solid var(--border)}.danger-button{background:rgba(185,28,28,.12);color:var(--danger)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid,.form-section{display:grid;grid-gap:16px;gap:16px}.form-section{margin-bottom:22px}.form-section-title{display:flex;align-items:center;gap:10px;margin:14px 0 2px}.form-section-title span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--brand);color:#fff;font-size:12px;font-weight:800}.field{display:grid;grid-gap:7px;gap:7px}.field label,.label{font-size:13px;font-weight:700;color:var(--text)}.input,.select,.textarea{width:100%;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);color:var(--text);padding:12px 13px;outline:none}.textarea{min-height:112px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(33,70,95,.18)}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:22px;background:var(--surface);box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;min-width:780px}td,th{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:var(--surface-soft);border:1px solid var(--border);color:var(--text);font-size:12px;font-weight:800}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,rgba(24,56,80,.45),transparent 42%),var(--bg)}.login-card{width:min(440px,100%);display:grid;grid-gap:18px;gap:18px}.login-logo{background:#183850;border-radius:20px;padding:18px;display:flex;justify-content:center}.login-logo img{width:260px;height:auto}.alert{padding:12px 14px;border-radius:14px;font-size:14px;border:1px solid var(--border)}.alert.error{color:var(--danger);background:rgba(185,28,28,.08)}.alert.success{color:var(--success);background:rgba(21,128,61,.08)}.detail-grid{display:grid;grid-template-columns:1.3fr .7fr;grid-gap:16px;gap:16px}.info-list{display:grid;grid-gap:10px;gap:10px}.info-item{display:grid;grid-template-columns:170px 1fr;grid-gap:12px;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.info-item:last-child{border-bottom:0}.info-item span{color:var(--muted);font-size:13px}.info-item strong{font-size:14px}.checkbox-row{display:flex;gap:8px;align-items:center}@media (max-width:920px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.content-area{padding:22px}.card-grid,.detail-grid,.form-grid{grid-template-columns:1fr}.page-header{flex-direction:column}}.template-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);grid-gap:18px;gap:18px;align-items:start}.template-preview-panel{position:-webkit-sticky;position:sticky;top:18px;border:1px solid var(--border);border-radius:18px;overflow:hidden;background:var(--surface-soft);min-height:840px}.template-preview-header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border)}.template-preview-header span{color:var(--muted);font-size:12px}.template-preview-frame{width:100%;height:800px;border:0;background:#f3f4f6}@media (max-width:1100px){.template-editor-grid{grid-template-columns:1fr}.template-preview-panel{position:static}}.template-builder{border:1px solid var(--border);border-radius:18px;background:var(--surface-soft);overflow:hidden}.template-builder-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px;border-bottom:1px solid var(--border)}.template-builder-header h2{margin:0 0 6px}.code-editor-panel p,.template-builder-header p,.template-help-card p{color:var(--muted);margin:0}.template-mode-actions,.template-toolbar,.toolbar-variable-group,.toolbar-zoom-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.primary-button.small,.secondary-button.small{padding:8px 10px;min-height:auto;font-size:12px;white-space:nowrap}.template-toolbar{padding:12px 18px;border-bottom:1px solid var(--border);background:var(--surface)}.toolbar-variable-group{margin-left:auto}.toolbar-zoom-group{color:var(--muted);font-size:12px}.select.compact{width:auto;min-width:210px;height:36px;padding:6px 10px;font-size:12px}.a4-preview-shell{background:#252525;padding:14px}.a4-preview-ruler{color:#e5e7eb;font-size:12px;margin:0 0 10px;text-align:center}.a4-preview-viewport{width:100%;max-height:82vh;min-height:760px;overflow:auto;border-radius:10px;background:#1f1f1f;padding:24px}.a4-scale-wrap{margin:0 auto;transform-origin:top center}.a4-editable-paper{width:794px;min-height:2246px;padding:68px 57px;transform-origin:top left;background:repeating-linear-gradient(180deg,#fff 0,#fff 1114px,#ef4444 0,#ef4444 1118px,#f3f4f6 0,#f3f4f6 1123px);box-shadow:0 0 0 1px #d1d5db,0 16px 50px rgba(0,0,0,.28);color:#111;font-family:Times New Roman,Times,serif;font-size:14px;line-height:1.38;outline:none;cursor:text}.a4-editable-paper h1{margin:0 0 28px;text-align:center;font-size:20px;line-height:1.25;font-weight:700}.a4-editable-paper h2{margin:24px 0 10px;font-size:15px;line-height:1.25;font-weight:700}.a4-editable-paper p{margin:0 0 9px;text-align:justify}.a4-editable-paper .signature-date{margin-top:26px;margin-bottom:34px;text-align:left}.a4-editable-paper .signature-page,.a4-editable-paper .signature-stack{page-break-before:auto!important;break-before:auto!important;padding-top:22px!important;min-height:0!important}.a4-editable-paper .signature-grid{display:block!important}.a4-editable-paper .signature-box{width:58%;margin-top:34px}.a4-editable-paper .signature-line{border-top:1px solid #111;margin-bottom:9px;width:100%}.a4-editable-paper .signature-doc,.a4-editable-paper .signature-meta,.a4-editable-paper .signature-name,.a4-editable-paper .signature-title{text-align:left}.a4-editable-paper .signature-title{font-weight:700;font-size:16px;margin-bottom:0}.a4-editable-paper .signature-doc,.a4-editable-paper .signature-name{font-weight:700}.a4-editable-paper .signature-meta{display:none!important}.variable-chip{display:inline-block;padding:1px 5px;margin:0 1px;border-radius:4px;background:#dbeafe;color:#1e3a8a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em;border:1px solid #93c5fd}.manual-page-break{height:0;border-top:2px dashed #ef4444;margin:22px 0;page-break-after:always;break-after:page;position:relative}.manual-page-break span{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:#fff;color:#b91c1c;font-family:Arial,sans-serif;font-size:10px;padding:2px 8px}.code-editor-panel{padding:18px}.code-editor-panel textarea{margin-top:12px}.template-help-card{padding:18px;border-top:1px solid var(--border);background:var(--surface)}.template-help-card h2{margin:0 0 8px}.placeholder-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.placeholder-list span{padding:6px 10px;border-radius:999px;border:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}@media (max-width:900px){.template-builder-header{flex-direction:column}.toolbar-variable-group{margin-left:0}.a4-preview-viewport{min-height:620px;padding:14px}}