
:root{--bg:#f1f5f9;--panel:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--primary:#2563eb;--primary2:#1d4ed8;--danger:#dc2626;--ok:#16a34a;--warn:#d97706;--shadow:0 8px 30px rgba(15,23,42,.08);--radius:16px}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}button{cursor:pointer}
.app{display:flex;min-height:100vh}.side{width:250px;background:#0f172a;color:#fff;padding:18px 12px;position:fixed;inset:0 auto 0 0;z-index:10;overflow:auto}
.brand{padding:8px 10px 18px;border-bottom:1px solid #334155;margin-bottom:12px}.brand b{font-size:17px}.brand small{display:block;color:#94a3b8;margin-top:4px}
.nav button{width:100%;border:0;background:transparent;color:#cbd5e1;text-align:left;padding:11px 12px;border-radius:10px;margin:2px 0}.nav button:hover,.nav button.active{background:#1e293b;color:#fff}.nav .section{font-size:11px;color:#64748b;padding:15px 12px 5px;text-transform:uppercase;letter-spacing:.08em}
.main{margin-left:250px;width:calc(100% - 250px);padding:20px;max-width:1600px}.top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.top h1{font-size:23px;margin:0}.top p{margin:4px 0 0;color:var(--muted)}
.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#fff;color:var(--text);padding:9px 13px;border-radius:10px}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.danger{color:#fff;background:var(--danger);border-color:var(--danger)}.btn.ok{color:#fff;background:var(--ok);border-color:var(--ok)}.btn.sm{padding:6px 9px;font-size:12px}
.page{display:none}.page.active{display:block}
.grid{display:grid;gap:14px}.stats{grid-template-columns:repeat(6,minmax(0,1fr))}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.stat .label{font-size:12px;color:var(--muted)}.stat .value{font-size:23px;font-weight:800;margin-top:5px}.stat .hint{font-size:11px;color:var(--muted);margin-top:4px}
.tablewrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:680px}.table th,.table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}.table th{font-size:11px;color:var(--muted);text-transform:uppercase}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#e2e8f0}.badge.ok{background:#dcfce7;color:#166534}.badge.warn{background:#fef3c7;color:#92400e}.badge.danger{background:#fee2e2;color:#991b1b}.badge.blue{background:#dbeafe;color:#1e40af}
.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:var(--muted);font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;color:var(--text);outline:none}.field textarea{min-height:85px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary)}
.toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.search{border:1px solid var(--line);padding:9px 11px;border-radius:10px;min-width:220px}
.clockbox{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.clock{width:190px;height:190px;border:8px solid transparent;border-radius:50%;position:relative;background:#fff;box-shadow:inset 0 0 0 2px #cbd5e1,0 8px 25px rgba(15,23,42,.15)}.clock{background-size:cover;background-position:center;background-clip:padding-box;box-shadow:0 0 0 5px rgba(37,99,235,.18),0 0 0 9px rgba(220,38,38,.14),inset 0 0 0 2px #cbd5e1,0 8px 25px rgba(15,23,42,.15)}
.clock::before{content:"";position:absolute;inset:-9px;border-radius:50%;background:conic-gradient(#2563eb,#7c3aed,#db2777,#dc2626,#f59e0b,#16a34a,#06b6d4,#2563eb);z-index:-1;animation:clockRing 6s linear infinite}
@keyframes clockRing{to{transform:rotate(360deg)}}.clock .n{position:absolute;font-weight:800;font-size:12px;text-shadow:0 1px 2px #fff}.n12{top:8px;left:50%;transform:translateX(-50%)}.n3{right:9px;top:50%;transform:translateY(-50%)}.n6{bottom:8px;left:50%;transform:translateX(-50%)}.n9{left:9px;top:50%;transform:translateY(-50%)}.hand{position:absolute;left:50%;bottom:50%;transform-origin:bottom center;border-radius:5px;background:#0f172a}.hour{width:6px;height:47px}.min{width:4px;height:67px}.sec{width:2px;height:75px;background:#dc2626}.center{position:absolute;width:11px;height:11px;background:#0f172a;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}
.bigtime{font-size:38px;font-weight:800;letter-spacing:.04em}.date{color:var(--muted)}
.minute-marks{position:absolute;inset:7px;border-radius:50%;pointer-events:none}.minute-mark{position:absolute;left:50%;top:50%;width:2px;height:7px;background:#64748b;border-radius:2px;transform-origin:50% 88px;margin-left:-1px;margin-top:-88px}.minute-mark.major{width:3px;height:11px;background:#0f172a}.clock-numbers{position:absolute;inset:0}.clock-numbers .clock-num{position:absolute;left:50%;top:50%;font-size:13px;font-weight:900;line-height:1}.rainbow-bg{background:linear-gradient(120deg,#ff004c,#ff8a00,#ffe600,#19d86f,#00c8ff,#6b5cff,#e900ff,#ff004c)!important;background-size:600% 600%!important;animation:rainbowFlow 14s ease infinite!important;background-attachment:fixed!important}@keyframes rainbowFlow{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.doc-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:12px}.doc-table th,.doc-table td{border:1px solid #cbd5e1;padding:8px 9px;text-align:left}.doc-table th{background:#f1f5f9;font-weight:800}.doc-total{font-weight:900;background:#f8fafc}.doc-bank{margin-top:14px;padding:10px;border:1px solid #cbd5e1;border-radius:9px;background:#f8fafc}.doc-sign{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:24px;text-align:center}.doc-sign img{max-height:70px;max-width:150px;object-fit:contain;margin:5px auto}.doc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.invoice-template-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin-top:10px}.invoice-template-card{border:2px solid #e2e8f0;border-radius:12px;padding:7px;background:#fff;cursor:pointer;transition:.18s}.invoice-template-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,23,42,.10)}.invoice-template-card.selected{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}.invoice-template-thumb{height:105px;border-radius:8px;padding:9px;display:flex;flex-direction:column;gap:5px;overflow:hidden;position:relative}.invoice-template-thumb .t-head{height:16px;border-radius:4px}.invoice-template-thumb .t-line{height:5px;border-radius:3px;background:#cbd5e1}.invoice-template-thumb .t-line.w{width:72%}.invoice-template-thumb .t-table{height:35px;border-radius:5px;border:1px solid rgba(100,116,139,.35);margin-top:2px}.invoice-template-thumb .t-total{height:11px;width:45%;margin-left:auto;border-radius:4px}.invoice-template-name{font-size:11px;font-weight:800;text-align:center;margin-top:6px}.invoice-template-desc{font-size:9px;color:#64748b;text-align:center;min-height:22px}.invoice-template-actions{display:flex;gap:5px}.invoice-template-actions button{flex:1;font-size:10px;padding:6px}.invoice-design-preview{background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:12px;min-height:300px}.inv-theme-modern .inv-banner{background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff}.inv-theme-minimal .inv-banner{background:#f8fafc;color:#0f172a;border-bottom:2px solid #0f172a}.inv-theme-corporate .inv-banner{background:#0f3d5e;color:#fff}.inv-theme-elegant .inv-banner{background:#faf5e9;color:#7c5b2e;border-bottom:3px solid #caa76a}.inv-theme-premium .inv-banner{background:linear-gradient(135deg,#111827,#374151);color:#f8fafc}.inv-theme-colorful .inv-banner{background:linear-gradient(90deg,#2563eb,#7c3aed,#ec4899);color:#fff}.inv-theme-simple .inv-banner{background:#eff6ff;color:#1d4ed8;border-left:5px solid #2563eb}.inv-theme-professional .inv-banner{background:#e0f2fe;color:#075985;border-bottom:4px solid #0284c7}.inv-theme-dark .inv-banner{background:#111827;color:#fff}.inv-theme-classic .inv-banner{background:#f5f0e6;color:#5b4636;border-bottom:2px solid #a78b5b}.invoice-template-modal-note{font-size:11px;color:#64748b;margin-top:6px}@media(max-width:900px){.invoice-template-grid{grid-template-columns:repeat(3,minmax(110px,1fr))}}@media(max-width:600px){.invoice-template-grid{grid-template-columns:repeat(2,minmax(110px,1fr))}}
.doc-head{display:flex;justify-content:space-between;gap:15px;border-bottom:2px solid #0f172a;padding-bottom:10px}.doc-brand{font-size:17px;font-weight:900}.doc-terms{margin-top:15px;padding-top:10px;border-top:1px solid #cbd5e1}.doc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.flow{display:flex;gap:8px;align-items:center;overflow:auto;padding:10px 0}.node{min-width:120px;text-align:center;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;font-weight:700;font-size:12px}.arrow{color:var(--primary);font-size:20px}
.progress{height:9px;background:#e2e8f0;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:var(--primary);border-radius:99px}
.empty{text-align:center;padding:35px;color:var(--muted)}.muted{color:var(--muted)}.right{text-align:right}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;padding:15px;z-index:30}.modal.show{display:flex}.modalbox{background:#fff;width:min(760px,100%);max-height:90vh;overflow:auto;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.25);padding:18px}.startup-alert{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(2,6,23,.62);backdrop-filter:blur(4px);z-index:80}.startup-alert.show{display:flex}.startup-alert-box{position:relative;width:min(620px,100%);max-height:88vh;overflow:auto;border-radius:24px;padding:0;box-shadow:0 25px 80px rgba(0,0,0,.35);background:var(--panel);color:var(--popup-text,#fff);border:2px solid rgba(255,255,255,.28);isolation:isolate}.startup-alert-box .startup-alert-title,.startup-alert-box .startup-alert-sub,.startup-alert-box .startup-alert-item,.startup-alert-box .startup-alert-actions,.startup-alert-box .btn{color:var(--popup-text,#fff)}.startup-alert-bg{position:absolute;inset:0;background-position:center;background-size:cover;z-index:-2}.startup-alert-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(2,6,23,.82),rgba(15,23,42,.62));z-index:-1}.startup-alert-head{padding:22px 22px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.startup-alert-title{font-size:21px;font-weight:900}.startup-alert-sub{font-size:12px;opacity:.82;margin-top:4px}.startup-alert-list{padding:8px 22px 18px;display:grid;gap:10px}.startup-alert-item{padding:13px 14px;border-radius:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px)}.startup-alert-item.danger{border-left:5px solid #ef4444}.startup-alert-item.warn{border-left:5px solid #f59e0b}.startup-alert-item.info{border-left:5px solid #38bdf8}.startup-alert-actions{padding:0 22px 22px;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.startup-alert-badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;margin-right:7px;background:rgba(255,255,255,.18)}.modalhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modalhead h2{margin:0;font-size:18px}
.toast{position:fixed;right:18px;bottom:18px;background:#0f172a;color:#fff;padding:11px 14px;border-radius:10px;z-index:50;display:none}.toast.show{display:block}
footer{color:var(--muted);font-size:11px;text-align:center;padding:25px}
@media(max-width:1050px){.stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.side{width:70px;padding:12px 8px}.brand b,.brand small,.nav button span,.nav .section{display:none}.brand{text-align:center;border:0}.nav button{text-align:center;font-size:19px;padding:11px 4px}.main{margin-left:70px;width:calc(100% - 70px);padding:13px}.stats{grid-template-columns:repeat(2,1fr)}.two,.three,.formgrid{grid-template-columns:1fr}.top{align-items:flex-start}.top h1{font-size:19px}.clock{width:160px;height:160px}.bigtime{font-size:28px}}
@media(max-width:420px){.stats{grid-template-columns:1fr 1fr}.stat .value{font-size:19px}}

body.rainbow-bg{background:linear-gradient(120deg,#ff004c,#ff8a00,#ffe600,#19d45a,#00cfff,#4f46e5,#c026d3,#ff004c)!important;background-size:500% 500%!important;animation:rainbowMove 14s ease infinite!important;background-attachment:fixed!important}
@keyframes rainbowMove{0%{background-position:0% 50%}25%{background-position:100% 50%}50%{background-position:100% 0%}75%{background-position:0% 100%}100%{background-position:0% 50%}}
.rainbow-overlay{position:fixed;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(120deg,rgba(255,255,255,.10),rgba(255,255,255,.02),rgba(255,255,255,.10));background-size:300% 300%;animation:rainbowMove 10s ease infinite}
 .a4-preview{width:210mm;min-height:297mm;box-sizing:border-box;background:#fff;color:#111;padding:20mm;margin:auto;box-shadow:0 4px 20px rgba(0,0,0,.12)}.letter-head{text-align:center;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:24px}@media(max-width:800px){.a4-preview{width:100%;min-height:auto;padding:18px;box-shadow:none}}

/* LOGIN */
.login-gate{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:18px;background:linear-gradient(135deg,rgba(15,23,42,.96),rgba(37,99,235,.92));backdrop-filter:blur(12px)}
.login-gate.hidden{display:none}.legal-warning{width:min(760px,100%);max-height:92vh;overflow:hidden;background:rgba(255,255,255,.98);border:2px solid #dc2626;border-radius:24px;box-shadow:0 24px 90px rgba(0,0,0,.45)}.legal-warning-head{padding:22px 24px 14px;background:linear-gradient(135deg,#7f1d1d,#dc2626);color:#fff}.legal-warning-head h2{margin:0;font-size:19px;line-height:1.35}.legal-warning-head p{margin:7px 0 0;font-size:12px;opacity:.9}.legal-warning-body{padding:20px 24px;max-height:58vh;overflow:auto;color:#1f2937;line-height:1.65;font-size:13px}.legal-warning-body h3{font-size:14px;margin:16px 0 6px;color:#991b1b}.legal-warning-body p{margin:8px 0}.legal-warning-body ul{margin:6px 0 12px;padding-left:22px}.legal-warning-body li{margin:6px 0}.legal-warning-actions{display:flex;gap:10px;padding:16px 24px;border-top:1px solid #e5e7eb;background:#f8fafc}.legal-warning-actions button{flex:1}.login-card.locked{display:none}.logout-btn{margin-left:8px}.login-status{font-size:11px;color:#64748b;margin-left:8px}.login-card{width:min(430px,100%);background:rgba(255,255,255,.98);border-radius:24px;padding:26px;box-shadow:0 24px 80px rgba(0,0,0,.3)}.login-brand{text-align:center;margin-bottom:20px}.login-brand h2{margin:0 0 6px}.login-brand p{margin:0;color:#64748b;font-size:13px}.login-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:16px}.login-tabs button{border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:9px 5px;font-size:11px;cursor:pointer}.login-tabs button.active{background:#2563eb;color:#fff;border-color:#2563eb}.login-panel{display:none}.login-panel.active{display:block}.login-field{margin:10px 0}.login-field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.login-field input{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd5e1;border-radius:11px;font-size:14px}.login-error{min-height:20px;color:#dc2626;font-size:12px;margin:8px 0}.login-camera{width:100%;aspect-ratio:4/3;background:#0f172a;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center}.login-camera video{width:100%;height:100%;object-fit:cover}.login-note{font-size:11px;color:#64748b;line-height:1.5;margin-top:9px}.login-pin{letter-spacing:5px;text-align:center}.login-footer{text-align:center;color:#94a3b8;font-size:10px;margin-top:15px}.register-box{margin-top:12px;padding:14px;border:1px solid #dbeafe;border-radius:14px;background:#eff6ff}.register-title{font-weight:800;margin-bottom:8px}.register-face{width:100%;aspect-ratio:4/3;background:#0f172a;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.register-face video{width:100%;height:100%;object-fit:cover}.face-captured{font-size:11px;color:#15803d;font-weight:700;margin-top:7px}.face-methods{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.face-progress{height:7px;background:#e2e8f0;border-radius:99px;overflow:hidden;margin-top:8px}.face-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#2563eb,#7c3aed,#db2777);transition:width .2s}.face-preview{width:100%;max-height:190px;object-fit:cover;border-radius:12px;margin-top:8px;display:none}


/* FULL WEB LOGIN & REGISTRATION */
.login-gate{overflow:auto;align-items:flex-start;padding:clamp(12px,3vw,32px)}
.login-card{width:min(1080px,100%);max-height:94vh;overflow:auto;padding:clamp(18px,3vw,32px);box-sizing:border-box}
.login-brand{padding-bottom:8px;border-bottom:1px solid #e2e8f0}
.login-tabs{grid-template-columns:repeat(6,minmax(0,1fr));position:sticky;top:0;z-index:5;background:rgba(255,255,255,.96);padding:6px 0;backdrop-filter:blur(8px)}
.login-tabs button{min-height:42px;font-weight:700}
.login-panel{width:100%}
.login-field input,.login-field select,.login-field textarea{min-height:44px}
#loginRegisterPanel.active{display:block}
#loginRegisterPanel .register-box{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(360px,1.1fr);gap:18px;align-items:start;margin-top:4px;padding:20px;background:linear-gradient(135deg,#eff6ff,#f8fafc)}
#loginRegisterPanel .register-title{grid-column:1/-1;font-size:20px;padding-bottom:10px;border-bottom:1px solid #bfdbfe}
#loginRegisterPanel .login-field{margin:0}
#loginRegisterPanel .login-field:nth-of-type(1),#loginRegisterPanel .login-field:nth-of-type(2),#loginRegisterPanel .login-field:nth-of-type(3){grid-column:1}
#loginRegisterPanel .login-field:nth-of-type(4){grid-column:2;grid-row:2 / span 4}
#loginRegisterPanel .register-face{min-height:300px;max-height:52vh}
#loginRegisterPanel .register-box>.btn.primary{grid-column:1/-1}
#loginRegisterPanel .login-note{grid-column:1/-1}
#loginRegisterPanel .face-methods{grid-template-columns:1fr 1fr}
#loginRegisterPanel .actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.login-camera{min-height:280px}
@media(max-width:800px){
 .login-card{max-height:none}
 .login-tabs{grid-template-columns:repeat(3,1fr);position:static}
 #loginRegisterPanel .register-box{grid-template-columns:1fr}
 #loginRegisterPanel .register-title,#loginRegisterPanel .login-field,#loginRegisterPanel .login-field:nth-of-type(4),#loginRegisterPanel .register-box>.btn.primary,#loginRegisterPanel .login-note{grid-column:1;grid-row:auto}
 #loginRegisterPanel .register-face{min-height:240px;max-height:none}
}
@media(max-width:480px){
 .login-gate{padding:8px}
 .login-card{border-radius:16px;padding:15px}
 .login-tabs{grid-template-columns:repeat(2,1fr)}
 .face-methods,#loginRegisterPanel .actions{grid-template-columns:1fr!important}
 .register-box{padding:12px!important}
}
.legal-asset-title{font-weight:900;letter-spacing:1.2px;text-transform:uppercase;font-size:clamp(15px,2.5vw,22px);margin-bottom:10px;padding:10px 14px;border-radius:12px;background:rgba(127,29,29,.12);border:1px solid rgba(127,29,29,.28);text-align:center;}

.offer-template-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}.offer-template-card{border:1px solid var(--line);border-radius:12px;padding:8px;background:#fff;cursor:pointer;transition:.18s;box-shadow:0 3px 12px rgba(15,23,42,.05)}.offer-template-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,23,42,.10)}.offer-template-card.selected{border:2px solid #2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.offer-template-thumb{height:120px;border-radius:8px;overflow:hidden;border:1px solid #dbe3ef;background:#f8fafc;padding:8px;position:relative}.offer-template-thumb .ot-head{height:20px;border-radius:4px;margin-bottom:7px}.offer-template-thumb .ot-line{height:5px;border-radius:3px;background:rgba(100,116,139,.35);width:70%;margin:5px 0}.offer-template-thumb .ot-line.short{width:42%}.offer-template-thumb .ot-table{height:34px;border-radius:4px;border:1px solid rgba(100,116,139,.25);margin-top:8px;background:repeating-linear-gradient(to bottom,rgba(100,116,139,.16) 0 5px,transparent 5px 10px)}.offer-template-thumb .ot-total{height:12px;width:45%;margin:9px 0 0 auto;border-radius:4px}.offer-template-name{font-weight:800;font-size:12px;margin-top:7px}.offer-template-desc{font-size:10px;color:var(--muted);margin-top:2px}.offer-template-actions{display:flex;gap:5px;margin-top:7px}.offer-template-actions .btn{flex:1;padding:6px 7px;font-size:10px}.offer-design-preview{background:#fff;border:1px solid #dbe3ef;border-radius:12px;padding:18px;max-width:900px;margin:auto;box-shadow:0 10px 30px rgba(15,23,42,.08)}.offer-theme-modern .ot-banner,.offer-theme-modern .ot-total{background:#2563eb;color:#fff}.offer-theme-minimal .ot-banner,.offer-theme-minimal .ot-total{background:#475569;color:#fff}.offer-theme-corporate .ot-banner,.offer-theme-corporate .ot-total{background:#0f766e;color:#fff}.offer-theme-elegant .ot-banner,.offer-theme-elegant .ot-total{background:#b7791f;color:#fff}.offer-theme-premium .ot-banner,.offer-theme-premium .ot-total{background:#111827;color:#fff}.offer-theme-colorful .ot-banner{background:linear-gradient(90deg,#2563eb,#db2777,#f59e0b);color:#fff}.offer-theme-colorful .ot-total{background:#db2777;color:#fff}.offer-theme-simple .ot-banner,.offer-theme-simple .ot-total{background:#0284c7;color:#fff}.offer-theme-professional .ot-banner,.offer-theme-professional .ot-total{background:#1d4ed8;color:#fff}.offer-theme-dark .ot-banner,.offer-theme-dark .ot-total{background:#111827;color:#fff}.offer-theme-dark{background:#111827;color:#f8fafc}.offer-theme-dark .doc-table{color:#f8fafc}.offer-theme-dark .doc-table th,.offer-theme-dark .doc-table td{border-color:#334155}.offer-theme-classic .ot-banner,.offer-theme-classic .ot-total{background:#92400e;color:#fff}@media(max-width:1000px){.offer-template-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.offer-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.payment-upload-row{display:flex;gap:8px;align-items:center;margin:7px 0;padding:8px;border:1px dashed var(--border,#dbe3ef);border-radius:9px;background:#f8fafc}.payment-upload-row input{flex:1}.payment-upload-list{margin-top:9px;display:grid;gap:6px}.payment-upload-item{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--border,#dbe3ef);border-radius:9px;background:#f8fafc}.payment-upload-actions{display:flex;gap:5px}

/* Warna teks setiap jenis kolom dapat disesuaikan dari Pengaturan */
.page .card h1,.page .card h2,.page .card h3,.page .card h4{color:var(--column-heading)!important}
.page .field label{color:var(--column-label)!important}
.page .field input:not([type="color"]),.page .field select,.page .field textarea{color:var(--column-input)!important}
.page .table td{color:var(--column-table-text)}
.page .table th{color:var(--column-table-head)!important}
.page{color:var(--column-text)}

/* Tampilan diagram 3D dan kartu dengan kedalaman */
.dashboard-3d-wrap{margin-top:16px;perspective:1200px;overflow:hidden}
.diagram-3d{position:relative;padding:26px 20px 32px;border-radius:20px;overflow:hidden;background:radial-gradient(circle at 15% 10%,rgba(59,130,246,.18),transparent 35%),radial-gradient(circle at 85% 90%,rgba(168,85,247,.18),transparent 38%),linear-gradient(135deg,rgba(15,23,42,.97),rgba(30,41,59,.96));border:1px solid rgba(148,163,184,.35);box-shadow:0 18px 35px rgba(15,23,42,.22),inset 0 1px rgba(255,255,255,.12);color:#f8fafc}
.diagram-3d:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(to bottom,black,transparent);pointer-events:none}
.diagram-3d-heading{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.diagram-3d-heading h3{margin:0;color:#fff}
.diagram-3d-heading p{margin:5px 0 0;color:#cbd5e1;font-size:13px}
.diagram-3d-flow{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px;align-items:center;padding:8px 4px 18px}
.diagram-3d-node{--node:#38bdf8;position:relative;min-height:104px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:16px 12px;border:1px solid color-mix(in srgb,var(--node) 75%,white);border-radius:15px;background:linear-gradient(145deg,color-mix(in srgb,var(--node) 25%,#172033),#0f172a 78%);box-shadow:0 9px 0 color-mix(in srgb,var(--node) 35%,#020617),0 17px 22px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.28);transform:translateY(-5px) rotateX(7deg);transition:transform .22s ease,box-shadow .22s ease;cursor:pointer;color:#f8fafc;outline:none}
.diagram-3d-node:hover,.diagram-3d-node:focus-visible{transform:translateY(-11px) rotateX(0) scale(1.025);box-shadow:0 13px 0 color-mix(in srgb,var(--node) 35%,#020617),0 24px 28px rgba(0,0,0,.38),0 0 22px color-mix(in srgb,var(--node) 32%,transparent)}
.diagram-3d-node .node-icon{font-size:27px;line-height:1.2;margin-bottom:8px;filter:drop-shadow(0 3px 3px rgba(0,0,0,.35))}
.diagram-3d-node strong{font-size:14px;letter-spacing:.2px}.diagram-3d-node small{margin-top:5px;color:#cbd5e1;font-size:11px}
.diagram-3d-node:not(:nth-child(3n)):after{content:"➜";position:absolute;left:calc(100% + 3px);top:50%;transform:translateY(-50%);font-size:24px;color:#93c5fd;text-shadow:0 0 12px rgba(96,165,250,.6);pointer-events:none}
.diagram-3d-node:nth-child(4):before,.diagram-3d-node:nth-child(5):before,.diagram-3d-node:nth-child(6):before{content:"↙";position:absolute;right:calc(100% + 7px);top:-27px;color:#a5b4fc;font-size:22px}

.status-3d-node:after,.status-3d-node:before{display:none!important}.status-3d-track{height:6px;width:100%;margin-top:10px;background:rgba(255,255,255,.15);border-radius:99px;overflow:hidden}.status-3d-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--node),#fff);box-shadow:0 0 10px color-mix(in srgb,var(--node) 55%,transparent)}#featureProgress3D .diagram-3d-node{min-height:125px}
.diagram-3d-note{position:relative;z-index:1;color:#cbd5e1;font-size:12px;margin:0}
.card,.stat{transform-style:preserve-3d;transition:transform .2s ease,box-shadow .2s ease}
#dashboard .grid.stats>.card{box-shadow:0 7px 0 rgba(100,116,139,.18),0 12px 22px rgba(15,23,42,.09)}
#dashboard .grid.stats>.card:hover{transform:translateY(-4px) rotateX(2deg);box-shadow:0 10px 0 rgba(100,116,139,.18),0 18px 28px rgba(15,23,42,.14)}
@media(max-width:760px){.diagram-3d{padding:18px 12px 22px}.diagram-3d-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}.diagram-3d-node:not(:nth-child(3n)):after{content:"↓";left:50%;top:calc(100% + 3px);transform:translateX(-50%)}.diagram-3d-node:nth-child(4):before,.diagram-3d-node:nth-child(5):before,.diagram-3d-node:nth-child(6):before{display:none}.diagram-3d-node{min-height:96px}}
@media(max-width:420px){.diagram-3d-flow{grid-template-columns:1fr;gap:24px}.diagram-3d-node:not(:last-child):after{content:"↓";left:50%;top:calc(100% + 3px);transform:translateX(-50%)}.diagram-3d-node:last-child:after{display:none}.diagram-3d-node{min-height:82px}}
@media(prefers-reduced-motion:reduce){.diagram-3d-node,.card,.stat{transition:none}}


/* Perbaikan tampilan Status Operasional 3D di PC, laptop, tablet, dan HP */
#dashboard .dashboard-3d-wrap{display:block!important;visibility:visible!important;opacity:1!important;width:100%;max-width:100%;min-width:0;clear:both;position:relative;margin:18px 0 0!important;overflow:visible!important}
#dashboard .dashboard-3d-wrap .diagram-3d{display:block!important;visibility:visible!important;width:100%;max-width:100%;box-sizing:border-box;min-width:0}
#dashboard #featureProgress3D{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px 20px!important;width:100%;min-width:0;align-items:stretch}
#dashboard #featureProgress3D>.status-3d-node{display:flex!important;visibility:visible!important;opacity:1!important;min-width:0;box-sizing:border-box;overflow-wrap:anywhere}
@media(max-width:900px){#dashboard #featureProgress3D{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px 14px!important}}
@media(max-width:520px){#dashboard #featureProgress3D{grid-template-columns:1fr!important;gap:18px!important}}


/* Status Operasional 3D: dipisahkan dan ditempatkan tepat di atas Diagram Alur Bisnis 3D */
#dashboard .status-operasional-section{display:block!important;visibility:visible!important;opacity:1!important;width:100%;min-width:0;clear:both;perspective:1200px}
.status-operasional-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:0 2px}
.status-operasional-heading h3{font-size:clamp(17px,1.7vw,23px);font-weight:850;color:var(--text,#0f172a)}
.status-operasional-heading p{font-size:13px;color:var(--muted,#64748b)}
.status-live-badge{font-size:11px;font-weight:800;color:#047857;background:#d1fae5;border:1px solid #6ee7b7;padding:6px 10px;border-radius:99px}
#dashboard .status-operasional-grid{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:14px!important;width:100%;align-items:stretch}
#dashboard .status-operasional-grid>.status-3d-node{display:flex!important;min-width:0;min-height:210px;box-sizing:border-box;overflow-wrap:anywhere;align-items:flex-start;text-align:left;padding:17px 14px;border-radius:18px;background:linear-gradient(150deg,color-mix(in srgb,var(--node) 90%,white),color-mix(in srgb,var(--node) 76%,#111827));border:1px solid color-mix(in srgb,var(--node) 65%,white);box-shadow:0 7px 0 color-mix(in srgb,var(--node) 55%,#111827),0 15px 20px rgba(15,23,42,.20),inset 0 1px 0 rgba(255,255,255,.55);transform:translateY(-3px) rotateX(5deg);color:#fff}
#dashboard .status-operasional-grid>.status-3d-node:hover{transform:translateY(-7px) rotateX(0);box-shadow:0 10px 0 color-mix(in srgb,var(--node) 50%,#111827),0 20px 24px rgba(15,23,42,.24)}
#dashboard .status-operasional-grid .node-icon{align-self:flex-start;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:rgba(255,255,255,.22);font-size:24px;margin-bottom:14px;filter:drop-shadow(0 3px 3px rgba(0,0,0,.18))}
#dashboard .status-operasional-grid .status-3d-node strong{font-size:clamp(11px,1vw,14px);line-height:1.3;color:#fff}
#dashboard .status-operasional-grid .status-3d-node small{font-size:11px;line-height:1.5;color:rgba(255,255,255,.94);margin-top:8px}
#dashboard .status-operasional-grid .status-3d-track{height:9px;margin-top:auto;padding-top:0;background:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.2)}
#dashboard .status-operasional-grid .status-3d-track i{background:linear-gradient(90deg,rgba(255,255,255,.5),#fff);box-shadow:0 0 12px rgba(255,255,255,.35)}
@media(max-width:1150px){#dashboard .status-operasional-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:760px){#dashboard .status-operasional-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:13px!important}#dashboard .status-operasional-grid>.status-3d-node{min-height:175px}}
@media(max-width:420px){#dashboard .status-operasional-grid{grid-template-columns:1fr!important}#dashboard .status-operasional-grid>.status-3d-node{min-height:150px}}

/* SURYA TECHNO — polished 3D interface layer (visual only; existing app logic preserved) */
:root{
 --bg:#eaf0f8;--panel:#f8fbff;--text:#14233d;--muted:#66758e;--line:#d7e1ef;
 --primary:#2563eb;--primary2:#1746b8;--danger:#d83b55;--ok:#138a69;--warn:#bd7811;
 --radius:17px;--shadow:0 12px 28px rgba(24,48,88,.10),0 3px 7px rgba(24,48,88,.06);
 --surface-hi:rgba(255,255,255,.92);--surface-low:#e4ebf5;
}
html{scroll-behavior:smooth}
body{background:radial-gradient(ellipse at 80% 0%,rgba(96,165,250,.18),transparent 38%),linear-gradient(145deg,#eef3fa 0%,#e6edf7 55%,#f3f6fb 100%);background-attachment:fixed;color:var(--text)}
.app{isolation:isolate}
.side{background:linear-gradient(155deg,#101d36 0%,#172b4d 52%,#0c1830 100%);border-right:1px solid rgba(255,255,255,.1);box-shadow:8px 0 28px rgba(12,28,55,.18);padding:20px 13px}
.brand{border-bottom-color:rgba(203,220,255,.18);padding:10px 11px 20px}
.brand b{letter-spacing:.055em;text-shadow:0 2px 10px rgba(96,165,250,.24)}
.brand small{color:#9eb4d7}
.nav .section{color:#7f98bf;letter-spacing:.14em;font-weight:800}
.nav button{color:#bdcce2;border:1px solid transparent;border-radius:12px;padding:11px 12px;margin:3px 0;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.nav button:hover{background:rgba(151,190,255,.11);transform:translateX(2px);color:#fff}
.nav button.active{background:linear-gradient(135deg,#2d68d8,#1744a4);color:white;border-color:rgba(255,255,255,.16);box-shadow:inset 0 1px rgba(255,255,255,.22),0 5px 14px rgba(3,13,38,.3)}
.main{padding:24px;max-width:1720px}
.top{padding:17px 20px;border:1px solid rgba(255,255,255,.88);border-radius:20px;background:linear-gradient(135deg,rgba(255,255,255,.93),rgba(238,245,255,.84));box-shadow:0 10px 25px rgba(30,58,100,.08),inset 0 1px 0 #fff;margin-bottom:20px}
.top h1{letter-spacing:-.035em;font-weight:850}
.card{position:relative;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(244,248,254,.96));border:1px solid rgba(207,220,239,.92);border-radius:var(--radius);box-shadow:0 2px 4px rgba(20,44,80,.025),0 9px 22px rgba(24,48,88,.07),inset 0 1px 0 rgba(255,255,255,.95);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.card:hover{border-color:#c1d3ee;box-shadow:0 5px 10px rgba(24,48,88,.04),0 15px 28px rgba(24,48,88,.09),inset 0 1px 0 #fff}
.stats .card,.stat{background:linear-gradient(150deg,#fff 0%,#f1f6ff 100%);box-shadow:0 7px 0 #dce6f4,0 12px 22px rgba(24,48,88,.09),inset 0 1px 0 #fff;transform:translateY(0);transition:transform .18s ease,box-shadow .18s ease}
.stats .card:hover,.stat:hover{transform:translateY(-3px);box-shadow:0 9px 0 #d4e0f1,0 18px 28px rgba(24,48,88,.12),inset 0 1px 0 #fff}
.stat .label{font-weight:750;letter-spacing:.025em}.stat .value{letter-spacing:-.035em;color:#172d50}
.btn{border:1px solid #d2deef;border-radius:11px;background:linear-gradient(180deg,#fff 0%,#edf3fb 100%);box-shadow:0 3px 0 #d8e2f0,0 5px 10px rgba(26,52,92,.06),inset 0 1px 0 #fff;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}
.btn:hover{filter:brightness(1.015);transform:translateY(-1px);box-shadow:0 4px 0 #d3deef,0 8px 14px rgba(26,52,92,.10),inset 0 1px 0 #fff}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 #d3deef,inset 0 2px 4px rgba(26,52,92,.08)}
.btn.primary{background:linear-gradient(145deg,#3982ff 0%,#225bd1 60%,#1949ae 100%);border-color:#2c64c9;box-shadow:0 3px 0 #153f96,0 7px 13px rgba(37,99,235,.2),inset 0 1px 0 rgba(255,255,255,.32);color:#fff}
.btn.primary:hover{box-shadow:0 4px 0 #153f96,0 10px 18px rgba(37,99,235,.25),inset 0 1px 0 rgba(255,255,255,.32)}
.btn.ok{background:linear-gradient(145deg,#1db88b,#0d8665);border-color:#0d8665;box-shadow:0 3px 0 #08664f,0 6px 12px rgba(19,138,105,.18);color:white}
.btn.danger{background:linear-gradient(145deg,#f05b70,#c72e48);border-color:#c72e48;box-shadow:0 3px 0 #9f2138,0 6px 12px rgba(216,59,85,.17);color:white}
.field input,.field select,.field textarea,.search,input,select,textarea{border-color:#d2deed;border-radius:11px;background:linear-gradient(180deg,#fff,#f7faff);box-shadow:inset 0 2px 4px rgba(23,49,86,.035),0 1px 0 #fff;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}
.field input:focus,.field select:focus,.field textarea:focus,.search:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:#6b9df3;box-shadow:0 0 0 3px rgba(59,130,246,.13),inset 0 1px 2px rgba(23,49,86,.025)}
.tablewrap{border-radius:12px} .table th{background:linear-gradient(180deg,#eef4fc,#e5edf8);color:#536784;letter-spacing:.075em}
.table td{background:rgba(255,255,255,.48)}.table tbody tr:hover td{background:#eef5ff}
.table th,.table td{border-bottom-color:#e0e8f3}
.badge{box-shadow:inset 0 1px rgba(255,255,255,.65);border:1px solid rgba(120,145,180,.12)}
.progress{background:#dce6f4;box-shadow:inset 0 2px 3px rgba(20,44,80,.08)}.progress i{background:linear-gradient(90deg,#3479ef,#28b7d5);box-shadow:inset 0 1px rgba(255,255,255,.35),0 0 8px rgba(52,121,239,.18)}
.node{background:linear-gradient(145deg,#fff,#edf4fd);box-shadow:0 4px 0 #dce6f4,0 8px 16px rgba(24,48,88,.06),inset 0 1px #fff;border-color:#d4e0f0}
.modalbox{background:linear-gradient(145deg,#fff,#f3f7fd);border:1px solid rgba(255,255,255,.95);box-shadow:0 28px 80px rgba(7,20,44,.32),inset 0 1px #fff}
.invoice-template-card{box-shadow:0 4px 0 #e2e8f0,0 7px 13px rgba(15,23,42,.04);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.invoice-template-card:hover{transform:translateY(-3px);box-shadow:0 6px 0 #dbe4f1,0 12px 20px rgba(15,23,42,.09)}
.invoice-template-card.selected{border-color:#4b83e7;box-shadow:0 0 0 3px rgba(37,99,235,.13),0 5px 0 #d5e2f8}
.clock{box-shadow:0 0 0 5px rgba(37,99,235,.12),0 0 0 9px rgba(14,165,233,.08),inset 0 0 0 2px #cbd8ea,0 16px 30px rgba(15,35,70,.18)}
.clock::before{filter:saturate(.82);opacity:.9}
hr{border:0;border-top:1px solid var(--line)}
:focus-visible{outline:3px solid rgba(59,130,246,.55);outline-offset:2px}
@media(max-width:1100px){.main{padding:17px}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.main{padding:12px}.top{padding:14px;border-radius:15px;align-items:flex-start;flex-direction:column}.card{padding:13px;border-radius:14px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.two,.three{grid-template-columns:1fr}.side{box-shadow:5px 0 20px rgba(12,28,55,.22)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

