:root{--navy:#2c324a;--navy-2:#363d58;--navy-3:#202538;--gold:#d4b77c;--gold-deep:#94743a;--bg:#f1f3f6;--surface:#fff;--soft:#f6f7f9;--line:#dfe3ea;--text:#1b2133;--muted:#5a6276;--ok:#237350;--warn:#a2650f;--bad:#ad3d35;--violet:#67499f;--radius:12px;--shadow:0 7px 24px rgba(24,30,48,.07)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 Outfit,system-ui,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;background:var(--surface);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold-deep);box-shadow:0 0 0 3px #d4b77c38}textarea{resize:vertical}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(360px,.85fr)}.login-brand{background:linear-gradient(145deg,#23283b,#303a5a);color:#fff;padding:clamp(36px,9vw,132px);display:flex;flex-direction:column}.brand-word{font:600 clamp(45px,6vw,78px)/.85 "Cormorant Garamond",serif;letter-spacing:.16em}.brand-sub{color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;margin:16px 0 0 6px}.login-copy{max-width:500px;margin:auto 0}.login-copy span,.eyebrow{color:var(--gold-deep);font-size:11px;font-weight:700;letter-spacing:.12em}.login-brand .login-copy span{color:var(--gold)}.login-copy h1{font-size:clamp(30px,4vw,50px);line-height:1.1;margin:12px 0}.login-copy p{color:#c9cfdf;font-size:16px}.login-panel{display:grid;place-items:center;padding:30px}.login-card{width:min(100%,420px);background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:34px}.login-card h2{font-size:27px;line-height:1.1;margin:8px 0}.muted{color:var(--muted)}.field{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px;font-weight:700;margin-top:15px}.field input,.field select,.field textarea{color:var(--text);font-size:14px;font-weight:400}.field small{font-size:10px;color:var(--muted);font-weight:500}.button{border:1px solid var(--line);border-radius:8px;padding:8px 13px;background:var(--surface);font-weight:700;white-space:nowrap}.button:hover{border-color:#9da5b5}.button.gold{background:var(--gold);border-color:var(--gold);color:#241d0e}.button.success{border-color:#95c9ad;color:var(--ok)}.button.danger{border-color:#e2b5b1;color:var(--bad)}.button.plain{border-color:transparent;background:transparent;color:var(--muted)}.login-card .button.gold{width:100%;margin-top:22px;padding:11px}.login-note{color:var(--muted);font-size:12px;margin:18px 0 0}.form-error{padding:10px 12px;border-radius:8px;background:#f8e3e1;color:var(--bad);font-size:13px;margin:14px 0 0}.success-message{padding:10px 12px;border-radius:8px;background:#e2f0e8;color:var(--ok);font-weight:600}.shell{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}.sidebar{background:var(--navy);color:#dfe2ea;display:flex;flex-direction:column;padding:24px 14px}.brand{padding:4px 12px 20px;border-bottom:1px solid rgba(255,255,255,.08);text-align:center}.brand b{display:block;font:600 30px/1 Cormorant Garamond,serif;letter-spacing:.16em}.brand small{display:block;margin-top:8px;color:var(--gold);font-size:9px;letter-spacing:.23em;text-transform:uppercase}.sidebar nav{display:flex;flex-direction:column;gap:17px;margin-top:22px}.nav-group{display:flex;flex-direction:column;gap:3px}.nav-group>p{color:#aab2c7;font-size:11px;font-weight:500;margin:0 0 4px;padding:0 7px}.nav-item{border:0;border-left:3px solid transparent;border-radius:8px;background:transparent;color:#dfe2ea;padding:9px 12px;text-align:left;font-weight:600}.nav-item:hover{background:#ffffff0f}.nav-item.active{background:var(--navy-2);border-left-color:var(--gold);color:#fff}.sidebar-bottom{margin-top:auto;border-radius:9px;background:var(--navy-3);padding:12px}.sidebar-bottom b,.sidebar-bottom small{display:block}.sidebar-bottom small{color:#aab2c7;font-size:11px;margin-top:2px}.signout{border:0;background:transparent;color:var(--gold);font-weight:700;padding:8px 0 0}.workspace{min-width:0}.app-bar{height:48px;background:#ffffffd9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;color:var(--muted);font-size:12px}.content{max-width:1480px;padding:28px;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:22px}.page-head h1{font-size:30px;line-height:1.1;margin:4px 0 7px}.page-head .muted{margin:0}.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px #191e3208;padding:18px}.kpi span{display:block;color:var(--muted);font-weight:700;font-size:12px}.kpi b{display:block;font-size:27px;letter-spacing:-.04em;margin:5px 0}.kpi small{color:var(--muted);font-size:12px}.kpi.feature{background:var(--navy);border-color:var(--navy);color:#fff}.kpi.feature span,.kpi.feature small{color:#b2bad0}.kpi.feature b{color:var(--gold)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px #191e3208;margin-bottom:16px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:15px 18px;border-bottom:1px solid #edf0f4}.panel-head h2{font-size:15px;margin:0}.panel-head p{color:var(--muted);font-size:12px;margin:3px 0 0}.empty{padding:34px;text-align:center;color:var(--muted)}.empty.compact{padding:20px}.toolbar{display:flex;gap:8px;margin-bottom:16px;max-width:600px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding-bottom:18px}.form-grid .panel-head,.form-grid .form-actions{grid-column:1/-1}.form-grid .field{padding:0 18px}.form-grid .field.wide{grid-column:1/-1}.form-actions{padding:18px 18px 0;display:flex;justify-content:flex-end}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;background:var(--soft);padding:11px 14px;white-space:nowrap}td{padding:12px 14px;border-top:1px solid #edf0f4;vertical-align:middle}td b,td small{display:block}td small{color:var(--muted);margin-top:2px}.right{text-align:right}.mono{font-family:Geist Mono,ui-monospace,monospace;font-size:12px}.status{display:inline-flex;border-radius:99px;padding:3px 8px;font-size:11px;font-weight:700;white-space:nowrap}.status-open{background:#e2eaf5;color:#355f96}.status-due_today{background:#f7ecd9;color:var(--warn)}.status-overdue{background:#f8e3e1;color:var(--bad)}.status-partial{background:#f5efe2;color:var(--gold-deep)}.status-pending{background:#ebe5f6;color:var(--violet)}.status-paid,.status-approved{background:#e2f0e8;color:var(--ok)}.status-reversed,.status-cancelled,.status-rejected{background:#e8ebf0;color:#55607a}.actions{display:flex;gap:6px}.actions .button{padding:5px 8px;font-size:12px}.loading{min-height:100vh;display:grid;place-items:center;color:var(--muted)}code{font:12px Geist Mono,monospace}.dashboard-page{max-width:1160px}.export-button{padding:10px 17px}.dashboard-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;background:var(--surface);border:1px solid var(--line);box-shadow:0 1px 2px #191e3208;border-radius:12px;padding:17px;margin-bottom:18px}.dashboard-filter{display:flex;flex-direction:column;gap:5px;min-width:150px;flex:1 1 150px}.dashboard-filter span{font-size:11px;color:var(--muted);font-weight:700}.dashboard-filter select,.dashboard-filter input{padding:8px 10px}.clear-filters{margin:0 0 1px auto}.dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-label.received:before,.kpi-label.pending:before,.kpi-label.overdue:before{content:"";display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:7px;background:var(--ok)}.kpi-label.pending:before{background:var(--violet)}.kpi-label.overdue:before{background:var(--bad)}.dashboard-message{padding:18px}.dashboard-message h2{font-size:17px;margin:0 0 4px}.dashboard-message p{margin:0;color:var(--muted)}.alert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 18px}.alert-item{display:flex;flex-direction:column;gap:3px;padding:13px;border:1px solid var(--line);border-radius:9px;background:var(--soft)}.alert-item b{font-size:13px}.alert-item span{font-size:12px;color:var(--muted)}.alert-item.danger{border-color:#e8c2bf;background:#fff9f8}.alert-item.danger b{color:var(--bad)}.alert-item.pending{border-color:#d9cfeb;background:#fdfcff}.alert-item.pending b{color:var(--violet)}.alert-item.ok b{color:var(--ok)}.admin-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin:-6px 0 16px}.admin-tab{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:10px 14px;font-weight:700}.admin-tab.active{border-bottom-color:var(--gold-deep);color:var(--text)}.admin-tab span{margin-left:5px;border-radius:99px;background:#eceff4;padding:2px 7px;font-size:11px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.profile-card{padding:18px}.profile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.profile-head h2{font-size:18px;margin:5px 0}.profile-card>p{min-height:52px;font-size:12px;line-height:1.6}.profile-card .actions{justify-content:flex-end}.modal-backdrop{position:fixed;z-index:30;inset:0;background:#151a2894;display:grid;place-items:center;padding:20px;overflow:auto}.admin-modal{width:min(100%,760px);max-height:min(90vh,900px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 25px 80px #1116264d;padding:0 20px 20px}.client-modal{width:min(100%,920px)}.modal-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 -20px 12px;padding:16px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.modal-head h2{margin:3px 0 0;font-size:20px}.modal-form .field{margin-top:14px}.modal-form>.muted{padding:0 18px}.checkbox-field{display:flex;flex-direction:row;align-items:center;gap:10px}.checkbox-field input{width:17px;height:17px;accent-color:var(--gold-deep)}.permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.permission-group{border:1px solid var(--line);border-radius:10px;padding:8px 12px 12px;min-width:0}.permission-group legend{padding:0 6px;color:var(--gold-deep);font-weight:800;text-transform:capitalize}.permission-row{display:grid;grid-template-columns:minmax(0,1fr) 165px;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #edf0f4}.permission-row:last-child{border-bottom:0}.permission-row b,.permission-row small{display:block}.permission-row b{font-size:12px}.permission-row small{color:var(--muted);font-size:10px;word-break:break-word}.permission-row select{padding:7px;font-size:11px}.permission-row input[type=checkbox]{width:18px;height:18px;justify-self:center;accent-color:var(--gold-deep)}.modal-form .wide{grid-column:1/-1}.modal-form small{font-weight:400;font-size:11px;color:var(--muted)}.tag-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tag-card{display:flex;align-items:center;gap:10px;padding:14px}.tag-card b,.tag-card small{display:block}.tag-card small{color:var(--muted);font-size:11px}.tag-dot{display:inline-block;width:10px;height:10px;border-radius:99px;flex:0 0 auto}.tag-selector{display:flex;flex-wrap:wrap;gap:9px;border:1px solid var(--line);border-radius:10px;margin:16px 18px 0;padding:12px}.tag-selector legend,.initial-charge legend{color:var(--muted);font-size:12px;font-weight:700}.tag-selector label{display:flex;align-items:center;gap:6px;border-radius:99px;background:var(--soft);padding:6px 9px;font-size:12px}.tag-selector input{width:15px;height:15px;accent-color:var(--gold-deep)}.initial-charge{margin:18px;border:1px solid var(--line);border-radius:10px;padding:0 0 15px}.initial-charge .form-grid{padding-bottom:0}.clickable-row{cursor:pointer}.clickable-row:hover{background:#fbfcff}.row-link{border:0;background:transparent;padding:0;text-align:left;font:inherit;color:var(--text)}.client-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:16px 18px}.client-info div{display:flex;flex-direction:column;gap:3px}.client-info b{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.client-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.client-kpis .kpi{padding:14px}.client-kpis .kpi b{font-size:20px}.document-actions{display:flex;flex-wrap:wrap;gap:3px}.document-actions .button{padding:3px 6px;font-size:10px}.history-list{padding:0 18px}.history-row{display:flex;flex-wrap:wrap;gap:7px 10px;padding:12px 0;border-bottom:1px solid #edf0f4}.history-row:last-child{border-bottom:0}.history-row b{font-size:12px;text-transform:capitalize}.history-row span,.history-row small{color:var(--muted);font-size:12px}.engagement-form{padding-bottom:18px}.engagement-form .form-grid{padding-top:4px}.component-area{margin:18px;border-top:1px solid var(--line);padding-top:16px}.component-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.component-head h3{margin:3px 0 0;font-size:16px}.component-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.component-card{border:1px solid var(--line);border-radius:10px;background:var(--soft);padding:12px;margin-top:10px}.component-title{display:flex;justify-content:space-between;align-items:center}.component-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.component-fields.three{grid-template-columns:repeat(4,minmax(0,1fr))}.component-note{padding:14px 0 0;margin:0}.confirm-panel{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;background:#fffaf0;border-color:#e6ce9d}.confirm-panel h2{font-size:15px;margin:0}.confirm-panel p{color:var(--muted);margin:4px 0 0;font-size:12px}.balance-note{margin:2px 18px 0;padding:10px 12px;border-left:3px solid var(--gold-deep);background:#fffaf0;font-size:13px}.payment-hint{margin:3px 18px 0;padding:8px 12px;background:var(--soft);border-radius:8px;font-size:12px}.audit-detail{min-width:260px;max-width:440px;margin-top:8px}.audit-detail pre{max-height:180px;overflow:auto;white-space:pre-wrap;word-break:break-word;padding:8px;background:var(--soft);border-radius:6px;font-size:11px}@media(max-width:1050px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.client-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.client-info{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:relative;padding:14px}.sidebar .brand{display:none}.sidebar nav{flex-direction:row;overflow:auto;margin:0;gap:10px}.nav-group{min-width:max-content}.nav-group>p{padding:0 4px}.sidebar-bottom{display:none}.app-bar{padding:0 16px}.app-bar span:last-child{display:none}.content{padding:20px 16px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.login-layout{grid-template-columns:1fr}.login-brand{padding:42px 28px;min-height:330px}.login-copy{margin:auto 0 0}.login-panel{padding:25px 18px}.login-card{box-shadow:none;border:0;padding:12px}.page-head{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.toolbar{max-width:none}.actions{flex-wrap:wrap}.tag-grid,.component-fields.three{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.kpis,.dashboard-kpis,.client-kpis,.tag-grid,.component-fields,.component-fields.three,.alert-grid,.client-info{grid-template-columns:1fr}.content{padding:16px}.page-head h1{font-size:27px}.toolbar{flex-direction:column}.app-bar{height:42px}.table-wrap{font-size:12px}.dashboard-filters{display:grid;grid-template-columns:1fr;padding:14px}.clear-filters{margin:0;width:100%}.component-head,.confirm-panel{flex-direction:column}.component-actions{justify-content:flex-start}.component-area{margin:14px}.tag-selector{margin-left:14px;margin-right:14px}.initial-charge{margin:14px}.profile-grid,.permission-groups{grid-template-columns:1fr}.admin-modal{max-height:94vh;padding:0 14px 14px}.modal-head{margin:0 -14px 10px;padding:14px}.permission-row{grid-template-columns:minmax(0,1fr) minmax(132px,150px)}.actions{min-width:190px}}.dashboard-lower{display:grid;grid-template-columns:1.25fr .95fr;gap:14px}.portfolio-breakdown,.operation-alerts{height:fit-content}.breakdown-list{padding:4px 18px 12px}.breakdown-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(80px,2fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f4}.breakdown-row:last-child{border-bottom:0}.breakdown-row span{font-weight:700;font-size:12px}.breakdown-row small{display:block;color:var(--muted);font-weight:400;font-size:10px}.breakdown-row i{height:8px;background:#edf0f4;border-radius:8px;overflow:hidden}.breakdown-row i b{display:block;height:100%;background:var(--gold);border-radius:8px}.breakdown-row strong{font:600 12px Geist Mono,monospace}.alert-stack{display:flex;flex-direction:column;gap:9px;padding:14px 18px}@media(max-width:1050px){.dashboard-lower{grid-template-columns:1fr}}@media(max-width:600px){.breakdown-row{grid-template-columns:1fr}.breakdown-row i{width:100%}}:root{color-scheme:light}body{font-family:Inter,system-ui,sans-serif;transition:background-color .16s ease,color .16s ease}.theme-toggle{display:inline-grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border:0;border-radius:50%;padding:0;background:transparent;color:var(--gold);cursor:pointer}.theme-toggle:hover{background:#ffffff14}.theme-toggle svg{width:16px;height:16px}.theme-toggle:focus-visible{outline:3px solid color-mix(in srgb,var(--gold) 65%,transparent);outline-offset:2px}.sidebar-bottom{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}.sidebar-user{min-width:0;flex:1}.sidebar-user b,.sidebar-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-actions{display:flex;flex:0 0 auto;align-items:center;gap:5px}.theme-error{color:var(--bad);font-size:10px;max-width:110px}html[data-theme=dark]{color-scheme:dark;--navy: #171d2b;--navy-2: #2b3449;--navy-3: #101521;--bg: #131722;--surface: #1d2432;--soft: #232b3a;--line: #384357;--text: #edf1f7;--muted: #aab5c8;--ok: #73caa0;--warn: #eac16d;--bad: #f08e86;--violet: #c1abef;--gold-deep: #d8bd80;--shadow: 0 7px 24px rgba(0, 0, 0, .28)}html[data-theme=dark] body{background:var(--bg);color:var(--text)}html[data-theme=dark] .app-bar{background:var(--surface)}html[data-theme=dark] .panel-head,html[data-theme=dark] td,html[data-theme=dark] .permission-row,html[data-theme=dark] .history-row,html[data-theme=dark] .breakdown-row{border-color:var(--line)}html[data-theme=dark] .alert-item.danger{border-color:#66413f;background:#302225}html[data-theme=dark] .alert-item.pending{border-color:#4e4266;background:#2a2535}html[data-theme=dark] .status-open{background:#253448;color:#bbd5f5}html[data-theme=dark] .status-due_today,html[data-theme=dark] .status-partial{background:#44371f;color:#f3cf8f}html[data-theme=dark] .status-overdue{background:#43272b;color:#ffb3aa}html[data-theme=dark] .status-pending{background:#302741;color:#d3c3f2}html[data-theme=dark] .status-paid,html[data-theme=dark] .status-approved{background:#20362e;color:#a4e0b6}html[data-theme=dark] .status-reversed,html[data-theme=dark] .status-cancelled,html[data-theme=dark] .status-rejected{background:#2a3241;color:#b9c3d5}html[data-theme=dark] .form-error{background:#43272b;color:#ffb3aa}html[data-theme=dark] .success-message{background:#20362e;color:#a4e0b6}html[data-theme=dark] .button.success{border-color:#35634d}html[data-theme=dark] .button.danger{border-color:#70403e}html[data-theme=dark] .admin-tab span{background:#30394b;color:#d4dbea}html[data-theme=dark] .clickable-row:hover{background:#252d3d}html[data-theme=dark] .confirm-panel,html[data-theme=dark] .balance-note{background:#302b20;border-color:#5b4c2d}html[data-theme=dark] .breakdown-row i{background:var(--line)}@media(max-width:900px){.sidebar-bottom{display:flex;justify-content:space-between;margin-top:10px;padding:9px 10px}.sidebar-actions{gap:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
