@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap");:root{--navy:#f0e9d8;--navy-2:#f0e9d8;--navy-3:#fbfaf6;--panel:#fbfaf6;--surface-2:#f3ecda;--hover:rgba(26,22,19,.045);--th-bg:#f3ecda;--line:#c8bfa5;--line-2:#dcd3ba;--ink:#1a1613;--ink-dim:#7d7666;--cyan:#1e7a5e;--cyan-soft:rgba(30,122,94,.12);--gold:#9a7b2e;--gold-soft:rgba(154,123,46,.14);--danger:#8b2e1e;--ok:#1e7a5e;--btn-ink:#fff;--shadow:0 1px 2px rgba(26,22,19,.04),0 4px 16px rgba(26,22,19,.05);--side-bg:#0d1114;--side-text:#cfc6b0;--side-head:#f0e9d8;--side-muted:#8a93a0;--side-active:#9a7b2e;--side-line:hsla(0,0%,100%,.08);--side-accent:#d9c99e}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:Outfit,Calibri,-apple-system,sans-serif;background:var(--navy);color:var(--ink);font-weight:400;-webkit-font-smoothing:antialiased}.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--navy)}.login-card{width:100%;max-width:380px;padding:36px 32px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.brand{font-family:Playfair Display,Georgia,Cambria,serif;font-weight:600;font-style:italic;font-size:40px;color:var(--ink);letter-spacing:-.01em;line-height:1;margin-bottom:8px}.brand-sub{font-family:Outfit,sans-serif;font-size:11px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;font-weight:600;margin-bottom:40px}.form-group{margin-bottom:20px}.form-label{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px;font-weight:600}.form-input{width:100%;padding:14px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-family:inherit;font-size:15px;transition:border .15s,background .15s}.form-input:focus{outline:none;border-color:var(--gold);background:var(--panel)}.btn{width:100%;padding:14px;background:var(--cyan);color:var(--btn-ink);border:none;border-radius:10px;font-family:inherit;font-weight:600;font-size:15px;letter-spacing:.02em;cursor:pointer}.btn:hover{filter:brightness(1.06)}.btn:disabled{opacity:.5;cursor:not-allowed}.msg{padding:12px 14px;border-radius:8px;font-size:13px;margin-top:16px;text-align:center}.msg.err{background:rgba(139,46,30,.08);color:var(--danger);border:1px solid rgba(139,46,30,.2)}.msg.ok{background:rgba(30,122,94,.1);color:var(--ok);border:1px solid rgba(30,122,94,.22)}.app{height:100vh;overflow:hidden;display:grid;grid-template-columns:260px 1fr}.sidebar{background:var(--side-bg);border-right:1px solid var(--side-line);color:var(--side-text);padding:26px 18px;display:flex;flex-direction:column;height:100vh;overflow-y:auto}.sidebar .brand{color:#fff}.sidebar .brand-sub,.sidebar .brand-system{color:var(--side-accent)}.sidebar .brand{font-size:32px;margin-bottom:4px}.sidebar .brand-sub{font-size:10px;margin-bottom:40px}.nav-sec,.nav-subhead{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--side-muted);font-weight:700;padding:4px 14px;margin:14px 0 4px}.nav-subhead{display:flex;align-items:center;width:100%;background:none;border:none;cursor:pointer;text-align:left}.nav-subhead:hover{color:var(--side-accent)}.nav-subhead .nav-caret{font-size:10px}.nav-domain-head{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;color:var(--side-head);font-weight:600;font-size:14px;padding:10px 14px;margin-top:10px;cursor:pointer;text-align:left}.nav-domain-head:hover{color:#fff}.nav-domain-head .ico{width:18px;text-align:center;opacity:.8}.nav-caret{margin-left:auto;font-size:11px;color:var(--side-muted)}.nav-leaf{padding-left:28px}.nav-soon{opacity:.4;cursor:default}.nav-soon-tag{margin-left:auto;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--side-muted);border:1px solid var(--side-line);padding:1px 6px;border-radius:8px}.nav-item{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:8px;color:var(--side-text);cursor:pointer;font-size:13px;font-weight:400;margin-bottom:1px;transition:all .12s;border:1px solid transparent;text-decoration:none}.nav-item:hover{background:hsla(0,0%,100%,.06);color:#fff}.nav-item.active{background:var(--side-active);color:#fff;border-color:transparent;font-weight:600}.nav-item .ico{width:18px;text-align:center;opacity:.8}.nav-count{margin-left:auto;font-size:10px;background:hsla(0,0%,100%,.14);padding:1px 7px;border-radius:10px;color:#fff;font-weight:600}.nav-item.active .nav-count{background:hsla(0,0%,100%,.22);color:#fff}.user-box{margin-top:auto;padding-top:20px;border-top:1px solid var(--side-line);font-size:13px}.user-email{color:var(--side-head);font-weight:500;word-break:break-all}.user-role{color:var(--side-accent);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-top:2px}.btn-logout{margin-top:12px;padding:8px 12px;background:transparent;border:1px solid var(--side-line);border-radius:8px;color:var(--side-muted);font-family:inherit;font-size:12px;cursor:pointer;width:100%}.btn-logout:hover{color:#fff;border-color:hsla(0,0%,100%,.28)}.main{padding:30px 34px 60px;overflow-y:auto;height:100vh;background:var(--navy)}.page-title{font-family:Playfair Display,Georgia,Cambria,serif;font-size:26px;font-weight:600;margin-bottom:2px;color:var(--ink);letter-spacing:-.005em}.page-sub{color:var(--ink-dim);font-size:12.5px}.kpis,.page-sub{margin-bottom:22px}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:14px;gap:14px}.kpi{padding:18px 20px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.kpi-lbl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px;font-weight:600}.kpi-val{font-family:Playfair Display,Georgia,Cambria,serif;font-size:27px;font-weight:600;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:20px}.panel-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.panel-title{font-family:Playfair Display,Georgia,Cambria,serif;font-size:18px;font-weight:500;color:var(--ink)}.panel-hint{font-size:12px;color:var(--ink-dim)}table{width:100%;border-collapse:collapse;font-size:13px}td,th{text-align:left}thead th{padding:11px 14px;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-weight:600;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap}tbody td{padding:10px 14px;border-bottom:1px solid var(--line-2);vertical-align:top}tbody tr:hover{background:var(--surface-2)}tr.tot>td{font-weight:700;color:var(--ink);border-top:2px solid var(--line)}tr.tot:hover>td,tr.tot>td{background:var(--th-bg)}td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}.chip{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;background:var(--cyan-soft);color:var(--cyan)}.chip.gold{background:var(--gold-soft);color:var(--gold)}.empty{padding:40px;text-align:center;color:var(--ink-dim);font-size:14px}.loading:after{content:"···";animation:dots 1.5s infinite}@keyframes dots{0%,20%{content:"·  "}40%{content:"·· "}60%,to{content:"···"}}.footer{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);color:var(--ink-dim);font-size:12px;text-align:center}.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px}.btn-sm{padding:10px 16px;background:var(--cyan);color:var(--btn-ink);border:none;border-radius:8px;font-family:inherit;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap}.btn-sm:hover{filter:brightness(1.06)}.btn-ghost{padding:8px 12px;background:transparent;border:1px solid var(--line);border-radius:8px;color:var(--ink-dim);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer}.btn-ghost:hover{color:var(--ink);border-color:var(--gold)}.btn-danger{color:var(--danger)}.btn-danger:hover{color:#fff;background:rgba(139,46,30,.18);border-color:rgba(139,46,30,.35)}.row-actions{display:flex;gap:8px;justify-content:flex-end}.modal-backdrop{position:fixed;inset:0;background:rgba(13,17,20,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:24px}.modal{width:100%;max-width:560px;max-height:90vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px rgba(13,17,20,.35)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}.modal-title{font-family:Playfair Display,Georgia,Cambria,serif;font-size:20px;font-weight:500;color:var(--ink)}.modal-x{background:transparent;border:none;color:var(--ink-dim);font-size:22px;cursor:pointer;line-height:1;padding:4px 8px;border-radius:6px}.modal-x:hover{color:var(--ink);background:var(--hover)}.modal-body{padding:24px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:18px 24px;border-top:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.form-grid .full{grid-column:1/-1}.field-label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:6px;font-weight:600}.field-input,.field-select,.field-textarea{width:100%;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-family:inherit;font-size:13.5px}.field-input:focus,.field-select:focus,.field-textarea:focus{outline:none;border-color:var(--gold);background:var(--panel)}.field-textarea{resize:vertical;min-height:70px}.field-check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink)}.field-check input{width:16px;height:16px;accent-color:var(--cyan)}.form-err{color:var(--danger);font-size:13px;margin-top:4px}.field-select option{background-color:var(--panel);color:var(--ink)}.field-select option:checked,.field-select option:hover{background-color:var(--surface-2);color:var(--ink)}.modal-wide{max-width:860px}.env-sel{display:flex;gap:4px;background:hsla(0,0%,100%,.05);border-radius:10px;padding:4px;margin:0 4px 16px}.env-sel button{flex:1 1;border:0;border-radius:7px;padding:8px 6px;font-size:11.5px;font-weight:600;letter-spacing:.02em;cursor:pointer;background:transparent;color:var(--side-text);font-family:inherit;opacity:.75}.env-sel button:hover{opacity:1}.env-sel button.on{background:var(--side-active);color:#fff;opacity:1}.ved-sig{display:flex;align-items:baseline;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid var(--side-line)}.ved-sig-pre{font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--side-muted)}.ved-mark{font-family:Playfair Display,Georgia,serif;font-style:italic;font-size:15px;letter-spacing:.01em;color:var(--side-head);opacity:.92;font-weight:600}.ved-sig.login{justify-content:center;margin-top:20px;padding-top:16px;border-top:1px solid var(--line-2)}.ved-sig.login .ved-sig-pre{color:var(--ink-dim)}.ved-sig.login .ved-mark{color:var(--ink)}.brand-top{display:flex;align-items:baseline;justify-content:center;gap:6px;margin-bottom:36px}.brand-top .brand{font-size:34px;margin-bottom:0;color:#fff}.brand-system{font-family:Outfit,sans-serif;font-weight:300;font-size:22px;letter-spacing:.02em;color:var(--side-accent)}.brand-footer{font-size:26px;text-align:center;margin:14px 0 4px;color:#fff}.ss-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;max-height:280px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(13,17,20,.18)}.ss-opt{padding:10px 14px;font-size:14px;color:var(--ink);cursor:pointer;border-bottom:1px solid var(--line)}.ss-opt:hover{background:var(--cyan-soft)}.ss-opt.sel,.ss-opt:hover{color:var(--cyan)}.ss-empty{padding:12px 14px;color:var(--ink-dim);font-size:13px}.tbl-fat{width:100%;table-layout:auto}.tbl-fat td,.tbl-fat th{padding:6px 4px;font-size:11px;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}.tbl-fat .field-input,.tbl-fat .field-select{min-width:0}.vv-theme{--cyan:#1e7a5e;--cyan-soft:rgba(30,122,94,.12);--gold:#9a7b2e;--gold-soft:rgba(154,123,46,.14);--th-bg:#f3ecda;--line:#c8bfa5}.vv-theme .page-title{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--ink);font-family:Playfair Display,Georgia,serif}.vv-theme .page-sub{color:var(--ink-dim);font-size:12.5px}.vv-theme .toolbar{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:18px}.vv-theme .panel{border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);background:var(--panel)}.vv-theme .panel-head{border-bottom:1px solid var(--line);padding:12px 16px}.vv-theme .panel-title{font-size:13px;font-weight:700;letter-spacing:-.01em}.vv-theme .kpi-lbl,.vv-theme .panel-hint{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim);font-weight:600}.vv-theme table{font-size:12.5px}.vv-theme thead th{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-dim);font-weight:700;background:transparent}.vv-theme tbody td{border-color:var(--line)}.vv-theme tr.tot td{border-top:1.5px solid var(--ink)}.vv-theme .chip{background:var(--surface-2);color:var(--ink-dim);font-weight:600;border-radius:5px}.vv-theme .chip.gold{background:var(--gold-soft);color:var(--gold)}.vv-theme .btn-sm{background:var(--cyan);border-radius:6px}.vv-theme .field-input,.vv-theme .field-select{border-radius:6px}.vv-theme .kpis .panel{position:relative;overflow:hidden}.vv-theme .kpis .panel:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}.vv-theme .vv-filterbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.vv-theme .vv-seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:3px;gap:2px}.vv-theme .vv-seg button{border:none;background:transparent;padding:6px 15px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--ink-dim);cursor:pointer;font-family:inherit;letter-spacing:.005em;transition:none}.vv-theme .vv-seg button:hover{color:var(--ink)}.vv-theme .vv-seg button.on{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px rgba(26,22,19,.12)}.vv-theme .vv-subtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:18px;flex-wrap:wrap}.vv-theme .vv-subtabs button{background:transparent;padding:9px 13px;font-size:12.5px;font-weight:600;color:var(--ink-dim);cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit}.vv-theme .vv-subtabs button:hover{color:var(--ink)}.vv-theme .vv-subtabs button.on{color:var(--ink);border-bottom-color:var(--gold)}.sidebar{scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.18) transparent}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.14);border-radius:8px}.sidebar::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.26)}.main{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.main::-webkit-scrollbar{width:10px}.main::-webkit-scrollbar-track{background:transparent}.main::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}.main::-webkit-scrollbar-thumb:hover{background:var(--ink-dim)}