:root{
  --bg:#f4f6f8;--surface:#fff;--surface-2:#f8fafb;--text:#17212b;--muted:#73808c;--line:#e6eaee;
  --primary:#1d6ff2;--primary-dark:#145cc9;--positive:#16865b;--negative:#c43d4b;
  --sidebar:#151b23;--sidebar-muted:#9ba7b4;--radius:14px;--shadow:0 1px 2px rgba(18,28,45,.04),0 8px 30px rgba(18,28,45,.04);
}
*{box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}body{margin:0;background:var(--bg);font-size:14px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}
.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:var(--sidebar);color:#fff;padding:22px 16px 16px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:750;letter-spacing:-.02em;padding:0 8px 22px}.brand-mark{width:30px;height:30px;border-radius:9px;background:#fff;color:#101722;display:grid;place-items:center;font-weight:800}.nav{display:flex;flex-direction:column;gap:4px}.nav a{padding:10px 12px;border-radius:9px;color:var(--sidebar-muted);font-weight:600}.nav a:hover{background:rgba(255,255,255,.06);color:#fff}.nav a.active{background:rgba(255,255,255,.11);color:#fff}.sidebar-footer{margin-top:auto;padding:14px 6px 0;border-top:1px solid rgba(255,255,255,.08)}.user-card{display:flex;align-items:center;gap:9px;margin-bottom:10px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e9eef6;color:#344054;font-weight:750;flex:0 0 auto}.user-card strong,.user-card small{display:block;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card small{font-size:11px;color:var(--sidebar-muted);margin-top:1px}.link-button{background:none;border:0;color:var(--sidebar-muted);padding:5px 0}.link-button:hover{color:#fff}
.main{margin-left:230px;min-width:0;width:calc(100% - 230px)}.topbar{height:68px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.88);backdrop-filter:blur(10px);display:flex;align-items:center;padding:0 30px;position:sticky;top:0;z-index:20}.topbar-spacer{flex:1}.quick-actions{display:flex;gap:8px;align-items:center}.mobile-menu{display:none;border:0;background:none;font-size:22px}.content{padding:30px;max-width:1560px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-head h1{font-size:30px;line-height:1.12;letter-spacing:-.035em;margin:3px 0 7px}.page-head p{margin:0;color:var(--muted);max-width:720px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:800;color:#7f8a96}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 14px;border-radius:9px;border:1px solid transparent;font-weight:650;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:#fff;border-color:#dce2e8;color:#344054}.btn-secondary:hover{background:#f8fafc}.btn-ghost{background:transparent;border-color:transparent;color:#667380}.btn-danger{background:#fff1f2;border-color:#ffd8dc;color:#ad2f3d}.btn-wide{width:100%}
.quick-actions form{display:flex}.destructive-action{text-align:right}.table-delete{border:0;background:transparent;color:#a94752;font-size:11px;padding:5px}.table-delete:hover{color:var(--negative);text-decoration:underline}
.alert{border-radius:10px;padding:11px 14px;margin-bottom:18px;border:1px solid}.alert.success{background:#edf9f4;border-color:#c9eee0;color:#126b4b}.alert.danger{background:#fff2f3;border-color:#ffdadd;color:#a52d39}.alert ul{margin:5px 0 0;padding-left:18px}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 19px;box-shadow:var(--shadow);min-width:0}.metric-card.accent{border-color:#dce7fa;background:linear-gradient(180deg,#fff,#f8fbff)}.metric-card span,.metric-card small{display:block;color:var(--muted)}.metric-card span{font-weight:600;font-size:12px}.metric-card strong{display:block;font-size:25px;line-height:1.1;letter-spacing:-.03em;margin:9px 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-card small{font-size:11px}.compact-metrics .metric-card strong{font-size:22px}.positive{color:var(--positive)!important}.negative{color:var(--negative)!important}
.split-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.72fr);gap:18px;margin-bottom:18px}.project-grid{align-items:start}.stack{display:grid;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 14px}.panel-head h2{font-size:16px;margin:0 0 3px;letter-spacing:-.015em}.panel-head p{font-size:12px;color:var(--muted);margin:0}.panel-head>a{font-size:12px;color:var(--primary);font-weight:650;margin-top:2px}.side-panel{padding-bottom:18px}.attention-row{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:12px 20px;border-top:1px solid var(--line)}.attention-row span{color:#56616d}.attention-row strong{white-space:nowrap}.attention-row.total{background:var(--surface-2);font-size:15px}.side-panel>.btn{width:calc(100% - 40px);margin:16px 20px 0}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th{text-align:left;background:#fbfcfd;color:#7a8692;font-size:10px;text-transform:uppercase;letter-spacing:.065em;padding:10px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:13px 16px;border-bottom:1px solid #edf0f2;vertical-align:middle;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdfe}.table-title{display:block;font-weight:700;color:#26313c}.table-title:hover{color:var(--primary)}td small{display:block;color:var(--muted);font-size:11px;margin-top:2px;max-width:300px;overflow:hidden;text-overflow:ellipsis}.empty{text-align:center!important;color:var(--muted);padding:30px!important}.empty a{color:var(--primary)}.badge{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f0f3f6;color:#5e6b77;font-size:11px;font-weight:650}.badge.income{background:#edf9f4;color:var(--positive)}.badge.expense{background:#fff2f3;color:var(--negative)}.type-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px}.type-dot.income{background:var(--positive)}.type-dot.expense{background:var(--negative)}.row-actions a{color:var(--primary);font-size:12px}.pagination{padding:14px 18px;border-top:1px solid var(--line)}
.inline-filter,.filter-bar{display:flex;gap:8px;align-items:center}.filter-bar{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px;margin-bottom:14px;box-shadow:var(--shadow);flex-wrap:wrap}.filter-bar input[type=search]{min-width:280px;flex:1}.filter-bar select{min-width:170px}input,select,textarea{width:100%;border:1px solid #d8dee5;background:#fff;color:#25313d;border-radius:8px;padding:9px 10px;outline:none;transition:border .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:#8ab4f8;box-shadow:0 0 0 3px rgba(29,111,242,.09)}textarea{resize:vertical}.inline-filter input{width:auto}.form-panel{padding:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid.compact{gap:11px}.form-stack{display:grid;gap:14px}.form-stack.compact{gap:10px}.form-grid label,.form-stack label{display:grid;gap:6px;font-size:12px;font-weight:650;color:#4e5a66}.span-2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:4px}.check{display:flex!important;grid-auto-flow:column!important;justify-content:start;align-items:center;gap:8px!important}.check input{width:auto}.empty-box{padding:18px;border:1px dashed #d9e0e6;border-radius:10px;color:var(--muted);text-align:center;background:#fbfcfd}
.stage-list{padding:0 16px 8px}.stage-card{border:1px solid var(--line);border-radius:11px;margin-bottom:9px;background:#fff}.stage-card summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 15px;cursor:pointer}.stage-card summary::-webkit-details-marker{display:none}.stage-card summary>div:first-child strong,.stage-card summary>div:first-child span{display:block}.stage-card summary>div:first-child span{color:var(--muted);font-size:11px;margin-top:2px}.stage-money{text-align:right}.stage-money b,.stage-money small{display:block}.stage-money small{font-size:10px;margin-top:2px}.stage-body{padding:14px 15px;border-top:1px solid var(--line);background:#fbfcfd}.mini-stats{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:14px}.mini-stats span{font-size:11px;color:var(--muted)}.mini-stats b{display:block;color:var(--text);font-size:13px;margin-top:2px}.add-block{margin:8px 16px 16px;border:1px dashed #cfd7df;border-radius:10px}.add-block>summary{padding:11px 13px;cursor:pointer;color:var(--primary);font-weight:650;list-style:none}.add-block>form{padding:13px;border-top:1px solid var(--line);background:#fbfcfd}.payment-list{padding:0 16px}.payment-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.payment-row:first-child{border-top:0}.payment-row>div>*{display:block}.payment-row span,.payment-row small{font-size:10px;color:var(--muted);margin-top:2px}.payment-row>div:last-child{text-align:right}.muted-row{opacity:.5}
.employee-list{padding:0 16px 14px}.employee-card{border:1px solid var(--line);border-radius:11px;margin-bottom:9px}.employee-card summary{list-style:none;padding:13px 14px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.employee-card summary::-webkit-details-marker{display:none}.employee-main{display:flex;align-items:center;gap:10px}.employee-main strong,.employee-main span{display:block}.employee-main span{font-size:11px;color:var(--muted);margin-top:1px}.employee-money{text-align:right}.employee-money b,.employee-money small{display:block}.employee-money small{font-size:10px;color:var(--muted)}.employee-body{padding:14px;border-top:1px solid var(--line);background:#fbfcfd}.employee-body hr{border:0;border-top:1px solid var(--line);margin:16px 0}.allocation-list{margin-bottom:14px}.allocation-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.allocation-row>div:last-child{display:flex;align-items:center;gap:8px}.allocation-row strong,.allocation-row span{display:block}.allocation-row span{font-size:10px;color:var(--muted)}.icon-button{border:0;background:#f1f3f5;color:#75808b;width:25px;height:25px;border-radius:6px}.add-panel{padding:0 18px 18px}.add-panel>summary{padding:16px 0;cursor:pointer}.add-panel>form{border-top:1px solid var(--line);padding-top:15px}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-card{margin:0}.reference-list{padding:0 16px}.reference-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.reference-row:first-child{border-top:0}.reference-edit{display:grid;grid-template-columns:minmax(0,1fr) 78px 88px auto;gap:7px;align-items:center}.commission-reference-edit{grid-template-columns:minmax(0,1fr) 110px 100px 78px 88px auto}.reference-row input{padding:7px 8px}.position-field{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.position-field input{min-width:0}.switch-label{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.switch-label input{width:auto}.reference-delete{width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:#a94752;font-size:19px;line-height:1}.reference-delete:hover{background:#fff1f2;color:var(--negative)}.reference-add{display:grid;grid-template-columns:minmax(0,1fr) 78px auto;gap:8px;padding:14px 16px;border-top:1px solid var(--line);background:#fbfcfd}.commission-reference-add{grid-template-columns:minmax(0,1fr) 130px 110px 78px auto}
.login-page{min-height:100vh;display:grid;place-items:center;background:#f2f5f8;padding:20px}.login-card{width:min(410px,100%);background:#fff;border:1px solid var(--line);border-radius:17px;padding:30px;box-shadow:0 18px 60px rgba(28,38,50,.09)}.brand-login{padding:0 0 26px;color:var(--text)}.brand-login .brand-mark{background:var(--sidebar);color:#fff}.login-card h1{font-size:26px;letter-spacing:-.03em;margin:0 0 7px}.login-card>p{margin:0 0 22px}.login-card .alert{margin:0 0 14px}

/* v0.3 reports */
.btn-small{min-height:32px;padding:6px 10px;border-radius:8px;font-size:11px}.success-card{border-color:#cfeade;background:linear-gradient(180deg,#fff,#f6fcf9)}.danger-card,.attention-card{border-color:#f2d7d9;background:linear-gradient(180deg,#fff,#fff8f8)}.receivable-card{border-color:#dbe4ff;background:linear-gradient(145deg,#f8faff,#fff)}
.report-chart-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,.75fr);gap:18px}.chart-panel{min-width:0}.chart-panel-wide{min-width:0}.chart-wrap{position:relative;padding:4px 18px 20px}.chart-wrap-line{height:330px}.chart-wrap-donut{height:210px}.chart-legend{display:flex;align-items:center;gap:13px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.chart-legend span,.expense-legend span{display:flex;align-items:center;gap:6px}.chart-legend i,.expense-legend i{width:8px;height:8px;border-radius:50%;background:var(--legend);display:inline-block}.expense-legend{padding:0 20px 18px;display:grid;gap:8px}.expense-legend>div{display:flex;justify-content:space-between;gap:12px;font-size:11px}.expense-legend strong{font-size:11px}.empty-chart{height:260px;display:grid;place-items:center;color:var(--muted)}
.receivable-summary{display:flex;gap:24px;text-align:right}.receivable-summary span,.receivable-summary small,.receivable-summary b{display:block}.receivable-summary small{font-size:10px;color:var(--muted)}.receivable-summary b{font-size:14px;margin-top:2px}.receivables-table .overdue-row{background:#fffafa}.debt-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:700}.debt-status.overdue{background:#fff0f1;color:var(--negative)}.debt-status.today{background:#fff5dd;color:#966318}.debt-status.upcoming{background:#eef5ff;color:#356ab9}
.report-statements-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.statement-card{min-width:0}.statement-tag{padding:4px 7px;border-radius:6px;background:#eef3f8;color:#667380;font-size:9px;font-weight:800;letter-spacing:.08em}.report-lines{padding:0 20px 18px}.report-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line)}.report-line span{color:#5d6873}.report-line strong{white-space:nowrap}.report-line.subtotal{font-weight:650}.report-line.grand{margin-top:3px;padding-top:14px;font-size:15px;border-top:2px solid #dfe4ea}.margin-note{text-align:right;color:var(--muted);font-size:11px;margin-top:-7px}.margin-note b{color:var(--text)}

/* v0.3 finances */
.finance-debt-panel>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;cursor:pointer}.finance-debt-panel>summary::-webkit-details-marker{display:none}.finance-debt-panel>summary>div:first-child{display:flex;align-items:center;gap:11px}.finance-debt-panel>summary strong,.finance-debt-panel>summary small{display:block}.finance-debt-panel>summary small{color:var(--muted);font-size:10px;margin-top:2px}.debt-summary-icon{width:34px;height:34px;border-radius:10px;background:#eef3ff;color:#426dde;display:grid;place-items:center;font-weight:800}.debt-summary-money{text-align:right}.debt-summary-money>strong{font-size:18px}.debt-list{border-top:1px solid var(--line);padding:0 18px 16px}.debt-row{display:grid;grid-template-columns:42px minmax(180px,1fr) 130px auto;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.debt-row.is-overdue{background:linear-gradient(90deg,rgba(196,61,75,.04),transparent);margin:0 -18px;padding-left:18px;padding-right:18px}.debt-date{text-align:center}.debt-date b,.debt-date span{display:block}.debt-date b{font-size:17px;line-height:1}.debt-date span{text-transform:uppercase;font-size:9px;color:var(--muted);margin-top:3px}.debt-person strong,.debt-person small,.debt-amount strong,.debt-amount small{display:block}.debt-person small,.debt-amount small{color:var(--muted);font-size:10px;margin-top:2px}.debt-person small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.debt-amount{text-align:right}.debt-report-link{display:block;text-align:center;color:var(--primary);font-size:11px;font-weight:650;padding-top:14px}.advanced-fields{border:1px solid var(--line);border-radius:10px;background:#fafbfd}.advanced-fields>summary{list-style:none;cursor:pointer;padding:12px 14px}.advanced-fields>summary::-webkit-details-marker{display:none}.advanced-fields>summary span,.advanced-fields>summary small{display:block}.advanced-fields>summary span{font-weight:700;color:#4e5a66}.advanced-fields>summary small{font-size:10px;color:var(--muted);margin-top:2px}.advanced-fields[open]>summary{border-bottom:1px solid var(--line)}.advanced-fields>.form-grid{padding:14px}

/* v0.3 team */
.person-create-panel{padding-bottom:18px}.person-create-panel>form{padding:0 20px}.close-button{font-size:18px}.person-list{padding:0 16px 14px;display:grid;gap:9px}.person-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.person-card.is-archived{opacity:.62}.person-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,.7fr) auto;align-items:center;gap:18px;padding:13px 14px}.person-finance{display:flex;justify-content:flex-end;gap:28px;text-align:right}.person-finance span,.person-finance b,.person-finance small{display:block}.person-finance b{font-size:13px}.person-finance small{font-size:9px;color:var(--muted);margin-top:2px}.person-finance.single{display:block}.person-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px}.person-actions form{display:flex}.contractor-avatar{background:#f2edff;color:#7355bb}.person-editor{border-top:1px solid var(--line);background:#fafbfd;padding:16px}.person-editor-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.65fr);gap:28px}.person-editor h3{font-size:12px;margin:0 0 12px}.contractor-editor>form{max-width:780px}
.section-heading h3{margin-bottom:2px}.section-heading p{margin:0;color:var(--muted);font-size:10px}.salary-payment-box{border:1px solid #dfe5ec;background:#fff;border-radius:10px;padding:13px;margin-bottom:18px}.salary-payment-list{display:grid;gap:5px;margin:11px 0}.salary-payment-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 9px;border-radius:7px;background:#f6f8fa;font-size:11px}.salary-payment-list a:hover{background:#eef3f8}.salary-payment-list span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-payment{padding:9px;color:var(--muted);font-size:11px}.salary-payment-form{display:grid;grid-template-columns:150px 160px minmax(180px,1fr) auto;gap:8px;align-items:end;padding-top:10px;border-top:1px solid var(--line)}.salary-payment-form label{display:grid;gap:4px;color:#596572;font-size:10px;font-weight:650}.salary-payment-form input{padding:7px 8px}.salary-payment-form .btn{min-height:34px}

/* v0.4 period and settlement */
.period-filter{display:flex;align-items:flex-end;gap:8px}.period-filter label{display:grid;gap:3px}.period-filter label span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.period-filter input{width:155px}.settlement-notice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid #cfe6da;background:#f5fbf8;border-radius:10px;padding:12px 14px}.settlement-notice>span{padding:5px 8px;border-radius:999px;background:#dff3e9;color:#18704f;font-size:10px;font-weight:750}.settlement-notice div strong,.settlement-notice div small{display:block}.settlement-notice div small{color:var(--muted);font-size:10px;margin-top:2px}.settlement-notice>b{font-size:15px}

/* v0.4 calendar */
.calendar-page-head{align-items:center}.calendar-navigation{display:flex;align-items:center;gap:6px}.calendar-navigation form{width:158px}.calendar-nav-button{width:38px;height:38px;border:1px solid #dce2e8;background:#fff;border-radius:9px;display:grid;place-items:center;font-size:17px}.calendar-nav-button:hover{background:#f7f9fb}.calendar-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px}.calendar-summary>div{display:flex;align-items:center;gap:11px;padding:15px 17px;border-left:1px solid var(--line)}.calendar-summary>div:first-child{border-left:0}.calendar-summary p,.calendar-summary strong{display:block;margin:0}.calendar-summary p{font-size:10px;color:var(--muted)}.calendar-summary strong{font-size:17px;color:var(--text);margin-top:2px}.summary-mark{width:9px;height:34px;border-radius:5px;background:#a7b0ba}.summary-mark.income{background:#45a97b}.summary-mark.expense{background:#d96772}.summary-mark.planned-income{background:#87a8e8}.summary-mark.planned-expense{background:#e0aa67}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.calendar-legend{display:flex;align-items:center;gap:15px;flex-wrap:wrap;color:var(--muted);font-size:10px}.calendar-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-dot.actual-income{background:#39a773}.legend-dot.actual-expense{background:#d85f6b}.legend-dot.actual-payroll{background:#8768d4}.legend-dot.planned{background:#fff;border:2px solid #86a5d9}.calendar-form-panel{padding-bottom:18px}.calendar-form-panel>form{padding:0 20px}.calendar-panel{overflow:auto}.calendar-weekdays{min-width:980px;display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));background:#f8fafb;border-bottom:1px solid var(--line)}.calendar-weekdays div{padding:10px 12px;color:#89939e;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;border-left:1px solid var(--line)}.calendar-weekdays div:first-child{border-left:0}.calendar-grid{min-width:980px;display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));background:var(--line);gap:1px}.calendar-day{min-height:142px;background:#fff;padding:9px}.calendar-day.outside{background:#fafbfc;color:#aeb6bf}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--primary)}.calendar-date{height:23px;display:flex;align-items:center;justify-content:space-between}.calendar-date>span{width:23px;height:23px;display:grid;place-items:center;border-radius:7px;font-size:11px;font-weight:750}.calendar-day.today .calendar-date>span{background:var(--primary);color:#fff}.calendar-date small{font-size:8px;color:var(--primary);font-weight:750;text-transform:uppercase}.calendar-events{display:grid;gap:5px;margin-top:6px}.calendar-event{display:block;min-width:0;padding:7px 8px;border-radius:7px;background:#f5f8fb;border-left:3px solid #9ba7b4}.calendar-event:hover{filter:brightness(.98)}.calendar-event.actual-income{background:#eff9f4;border-color:#39a773}.calendar-event.actual-expense{background:#fff2f3;border-color:#d85f6b}.calendar-event.actual-payroll{background:#f4f0fc;border-color:#8768d4}.calendar-event.planned-income,.calendar-event.planned-expense{background:#f7f9fc;border:1px dashed #91a9ca;border-left-width:3px}.calendar-event.overdue{background:#fff0f1;border-color:#d85f6b}.calendar-event-meta{display:flex;justify-content:space-between;gap:5px;font-size:8px;text-transform:uppercase;letter-spacing:.03em}.calendar-event-meta b{color:#64717d}.calendar-event-meta strong{font-size:9px;white-space:nowrap}.calendar-event-title{display:block;font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.calendar-event small{display:block;font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.calendar-agenda{display:none;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:15px;margin-bottom:18px}.calendar-agenda-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.calendar-agenda-head h2{font-size:15px;margin:0}.calendar-agenda-head span{font-size:10px;color:var(--muted)}.agenda-day{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;padding:12px 0;border-top:1px solid var(--line)}.agenda-date{display:flex;gap:5px}.agenda-date>b{font-size:21px;line-height:1}.agenda-date>span,.agenda-date small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase}.agenda-date small{margin-top:2px}.agenda-events{display:grid;gap:6px}.agenda-event{display:flex;align-items:center;justify-content:space-between;gap:10px;border-left:3px solid #9ba7b4;background:#f7f9fb;border-radius:7px;padding:8px 9px}.agenda-event.actual-income{border-color:#39a773}.agenda-event.actual-expense{border-color:#d85f6b}.agenda-event.actual-payroll{border-color:#8768d4}.agenda-event.planned-income,.agenda-event.planned-expense{border-style:dashed;border-color:#91a9ca}.agenda-event.overdue{background:#fff1f2;border-color:#d85f6b}.agenda-event div span,.agenda-event div strong,.agenda-event div small{display:block}.agenda-event div span{font-size:8px;text-transform:uppercase;color:var(--muted)}.agenda-event div strong{font-size:11px;margin-top:2px}.agenda-event div small{font-size:9px;color:var(--muted)}.agenda-event>b{white-space:nowrap;font-size:11px}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.report-chart-grid{grid-template-columns:1fr}.report-statements-grid{grid-template-columns:1fr 1fr}.statement-card:last-child{grid-column:span 2}.person-row{grid-template-columns:minmax(200px,1fr) auto}.person-finance{display:none}.person-editor-grid{grid-template-columns:1fr}.salary-payment-form{grid-template-columns:1fr 1fr}.salary-payment-form .btn{align-self:end}.calendar-summary{grid-template-columns:1fr 1fr}.calendar-summary>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.calendar-summary>div:nth-child(4){border-top:1px solid var(--line)}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar-open .sidebar{transform:translateX(0);box-shadow:20px 0 50px rgba(0,0,0,.2)}.main{margin-left:0;width:100%}.mobile-menu{display:block}.topbar{height:60px;padding:0 16px}.content{padding:18px 14px}.page-head{align-items:flex-start;flex-direction:column;margin-bottom:18px}.page-head h1{font-size:25px}.page-head .quick-actions{width:100%;flex-wrap:wrap}.page-head .quick-actions .btn{flex:1}.metric-grid{grid-template-columns:1fr 1fr;gap:9px}.metric-card{padding:14px}.metric-card strong{font-size:20px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.filter-bar{align-items:stretch}.filter-bar>*{width:100%!important;min-width:0!important}.inline-filter{width:100%}.inline-filter input{flex:1}.settings-grid{gap:12px}.reference-edit{grid-template-columns:minmax(0,1fr) 70px}.reference-edit .switch-label,.reference-edit .btn{width:100%}.employee-card summary{align-items:flex-start}.employee-money b{font-size:12px}.stage-card summary{align-items:flex-start}.panel-head{padding:15px}.panel{border-radius:12px}.report-statements-grid{grid-template-columns:1fr}.statement-card:last-child{grid-column:auto}.chart-wrap-line{height:280px}.chart-legend{display:none}.receivable-summary{gap:12px}.debt-row{grid-template-columns:38px minmax(0,1fr) auto}.debt-row>.btn{grid-column:2/4}.person-row{grid-template-columns:1fr;gap:10px}.person-actions{justify-content:flex-start;flex-wrap:wrap}.person-actions .btn{flex:1}.person-editor{padding:13px}.person-editor-grid{gap:20px}.receivables-table{min-width:850px}.period-filter{width:100%;display:grid;grid-template-columns:1fr 1fr}.period-filter label,.period-filter input{width:100%}.period-filter .btn{grid-column:span 2}.settlement-notice{grid-template-columns:1fr}.settlement-notice>b{justify-self:start}.calendar-navigation{width:100%}.calendar-navigation form{flex:1}.calendar-navigation form input{width:100%}.calendar-navigation .btn{display:none}.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-toolbar .quick-actions{width:100%}.calendar-toolbar .quick-actions .btn{flex:1}.calendar-panel{display:none}.calendar-agenda{display:block}.salary-payment-form{grid-template-columns:1fr}.calendar-form-panel>form{padding:0 14px}}
@media(max-width:440px){.metric-grid{grid-template-columns:1fr}.topbar .btn-secondary{display:none}.login-card{padding:23px}.reference-row{align-items:start}.reference-edit{grid-template-columns:1fr 64px}.reference-add{grid-template-columns:1fr 64px}.reference-add .btn{grid-column:span 2}.form-actions{justify-content:stretch;flex-wrap:wrap}.form-actions .btn{flex:1}.quick-actions{width:100%}}
@media(max-width:1050px){.commission-reference-edit{grid-template-columns:minmax(0,1fr) 110px 100px 78px 88px auto}.commission-reference-add{grid-template-columns:minmax(0,1fr) 130px 110px 78px auto}}
@media(max-width:760px){.commission-reference-edit{grid-template-columns:1fr 1fr}.commission-reference-add{grid-template-columns:1fr 1fr}.commission-reference-add .btn{grid-column:span 2}}
/* Artist cabinet */
.character-list{display:grid;gap:10px;padding:0 18px 18px}.character-card{border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.character-card>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;cursor:pointer;list-style:none}.character-card>summary::-webkit-details-marker{display:none}
.character-card>summary div{display:grid;gap:3px}.character-card>summary strong{font-size:14px}.character-card>summary small{color:var(--muted);font-size:12px}.character-card>summary>span{color:var(--primary);font-size:12px;font-weight:650}
.character-card form{margin:0 16px 16px}.character-card>.form-grid{padding-top:16px;border-top:1px solid var(--line)}.character-add{margin:0 18px 18px}.project-notes{padding:15px 18px 18px;white-space:pre-wrap;color:var(--text-soft);font-size:13px;line-height:1.55}

/* Commission type settings */
.commission-settings-card{grid-column:1/-1}.commission-settings-card .panel-head{padding-bottom:14px}.commission-settings-card .reference-list{display:grid;gap:9px;padding:0 18px 18px}.commission-reference-row{grid-template-columns:minmax(0,1fr) 34px;gap:9px;align-items:end;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:#fbfcfd}.commission-reference-row:first-child{border-top:1px solid var(--line)}.commission-reference-edit{grid-template-columns:minmax(190px,1.5fr) minmax(135px,.8fr) minmax(110px,.65fr) 82px 96px auto;gap:10px;align-items:end}.reference-field{display:grid;gap:5px;min-width:0}.reference-field>span,.commission-reference-edit .position-field>span,.commission-reference-add .position-field>span{font-size:9px;line-height:1.2;font-weight:750;letter-spacing:.055em;text-transform:uppercase;color:#7b8793}.commission-reference-edit input,.commission-reference-add input{min-width:0;height:38px}.commission-reference-edit .position-field,.commission-reference-add .position-field{display:grid;gap:5px}.commission-reference-edit .switch-label{height:38px;padding:0 10px;justify-content:center;border:1px solid #d8dee5;border-radius:8px;background:#fff;color:#596572}.commission-reference-edit .btn{min-height:38px;white-space:nowrap}.commission-reference-row .reference-delete-form{display:flex;align-items:flex-end;height:38px}.commission-reference-row .reference-delete{width:34px;height:38px;border:1px solid transparent}.commission-reference-row .reference-delete:hover{border-color:#f3d4d8}.commission-reference-add{grid-template-columns:minmax(190px,1.5fr) minmax(135px,.8fr) minmax(110px,.65fr) 82px auto;gap:10px;align-items:end;padding:16px 18px;background:#f5f8fc}.commission-reference-add .btn{min-height:38px;white-space:nowrap}

/* Cash flow chart */
.cash-chart-head{align-items:flex-start}.cash-chart-summary{display:flex;align-items:stretch;justify-content:flex-end;gap:7px;flex-wrap:wrap}.cash-chart-total{display:flex;align-items:center;gap:8px;min-width:118px;padding:7px 10px;border:1px solid #e1e6eb;border-radius:9px;background:#fbfcfd}.cash-chart-total>i{width:8px;height:28px;border-radius:5px;background:var(--chart-color);flex:none}.cash-chart-total small,.cash-chart-total b{display:block}.cash-chart-total small{font-size:8px;line-height:1.1;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.cash-chart-total b{margin-top:3px;font-size:11px;white-space:nowrap;color:var(--text)}.cash-chart-total.net{min-width:130px;background:#f5f8ff;border-color:#dbe4fa}.cash-chart-total.net b.positive{color:var(--positive)}.cash-chart-total.net b.negative{color:var(--negative)}.cash-chart-total.net>i{background:#6d86c9}.cash-chart-wrap{height:300px;padding:12px 20px 18px}

@media(max-width:1250px){.commission-reference-edit{grid-template-columns:minmax(180px,1.25fr) minmax(135px,1fr) minmax(110px,.8fr)}.commission-reference-edit .position-field{grid-column:1;width:82px}.commission-reference-edit .switch-label{grid-column:2;width:108px}.commission-reference-edit .btn{grid-column:3;justify-self:end}.commission-reference-add{grid-template-columns:minmax(180px,1.25fr) minmax(135px,1fr) minmax(110px,.8fr)}.commission-reference-add .position-field{grid-column:1;width:82px}.commission-reference-add .btn{grid-column:2/4;justify-self:end}}
@media(max-width:760px){.commission-settings-card .reference-list{padding:0 12px 12px}.commission-reference-row{padding:12px}.commission-reference-edit,.commission-reference-add{grid-template-columns:1fr 1fr}.commission-reference-edit .reference-name-field,.commission-reference-add .reference-name-field{grid-column:1/-1}.commission-reference-edit .position-field{grid-column:1;width:100%}.commission-reference-edit .switch-label{grid-column:2;width:100%}.commission-reference-edit .btn{grid-column:1/-1;justify-self:stretch}.commission-reference-add .position-field{grid-column:1;width:100%}.commission-reference-add .btn{grid-column:2;justify-self:stretch}.commission-reference-add{padding:14px 12px}.cash-chart-head{display:grid;gap:12px}.cash-chart-summary{justify-content:flex-start;width:100%}.cash-chart-total{flex:1;min-width:105px}.cash-chart-wrap{height:260px;padding:8px 10px 14px}}

/* Unified visual system and account themes */
:root,[data-theme="light"]{
  color-scheme:light;
  --bg:#f3f5f8;--surface:#ffffff;--surface-2:#f7f9fb;--surface-3:#eef2f6;--hover:#f8fafc;
  --text:#17212b;--text-soft:#4f5c69;--muted:#74818e;--line:#e1e6eb;--line-soft:#edf0f3;
  --primary:#246bfd;--primary-dark:#1857d6;--primary-soft:#edf3ff;--primary-text:#ffffff;
  --positive:#16865b;--negative:#c43d4b;--warning:#a36b18;
  --sidebar:#151b23;--sidebar-muted:#9ba7b4;--topbar:rgba(255,255,255,.90);--field:#ffffff;
  --secondary:#ffffff;--secondary-hover:#f7f9fc;--secondary-text:#344054;
  --panel-radius:14px;--inner-radius:10px;--control-radius:9px;--control-height:40px;
  --shadow:0 1px 2px rgba(18,28,45,.04),0 10px 32px rgba(18,28,45,.045);
  --chart-grid:rgba(115,128,140,.15);--accent-surface:linear-gradient(180deg,#fff,#f7faff);
}
[data-theme="midnight"]{
  color-scheme:dark;
  --bg:#293445;--surface:#202b3d;--surface-2:#263348;--surface-3:#303e54;--hover:#2d3b51;
  --text:#edf5ff;--text-soft:#c4cfdd;--muted:#91a0b4;--line:#3a475d;--line-soft:#334055;
  --primary:#00aef0;--primary-dark:#008dcc;--primary-soft:#173d56;--primary-text:#ffffff;
  --positive:#34c58a;--negative:#ff7380;--warning:#e6b25c;
  --sidebar:#202838;--sidebar-muted:#91a0b4;--topbar:rgba(31,40,57,.94);--field:#1d2737;
  --secondary:#2c384c;--secondary-hover:#35445b;--secondary-text:#e7f0fa;
  --panel-radius:5px;--inner-radius:4px;--control-radius:4px;
  --shadow:0 12px 28px rgba(7,13,24,.28),inset 0 1px rgba(255,255,255,.025);--chart-grid:rgba(157,177,202,.15);
  --accent-surface:linear-gradient(145deg,#24364c,#1d293a);
}
[data-theme="graphite"]{
  color-scheme:dark;
  --bg:#292735;--surface:#3a3846;--surface-2:#413f4d;--surface-3:#494756;--hover:#454351;
  --text:#f4f2f7;--text-soft:#d0ccd8;--muted:#9b97aa;--line:#504d5d;--line-soft:#474553;
  --primary:#42a5f5;--primary-dark:#278bd9;--primary-soft:#31445b;--primary-text:#ffffff;
  --positive:#47c7a2;--negative:#ff745f;--warning:#efb767;
  --sidebar:#3b3949;--sidebar-muted:#9b97aa;--topbar:rgba(58,56,70,.95);--field:#302e3b;
  --secondary:#474553;--secondary-hover:#504e5d;--secondary-text:#f4f2f7;
  --panel-radius:7px;--inner-radius:6px;--control-radius:5px;
  --shadow:none;--chart-grid:rgba(195,188,209,.14);
  --accent-surface:#403e4c;
}
[data-theme="cosmos"]{
  color-scheme:dark;
  --bg:#090b15;--surface:rgba(24,27,45,.70);--surface-2:rgba(17,20,34,.68);--surface-3:rgba(36,40,63,.78);--hover:rgba(42,47,73,.68);
  --text:#f4f5ff;--text-soft:#c8cce2;--muted:#858da9;--line:rgba(125,137,190,.20);--line-soft:rgba(105,116,164,.14);
  --primary:#536dfe;--primary-dark:#3e56de;--primary-soft:#222b58;--primary-text:#ffffff;
  --positive:#32c99a;--negative:#ff6b72;--warning:#eab65b;
  --sidebar:rgba(8,10,18,.90);--sidebar-muted:#7e87a5;--topbar:rgba(12,14,25,.68);--field:rgba(13,16,28,.76);
  --secondary:rgba(36,40,63,.72);--secondary-hover:rgba(48,54,83,.82);--secondary-text:#edf0ff;
  --panel-radius:17px;--inner-radius:12px;--control-radius:8px;
  --shadow:0 18px 44px rgba(0,0,0,.34),0 0 34px rgba(83,109,254,.045),inset 0 1px rgba(255,255,255,.035);--chart-grid:rgba(132,145,187,.13);
  --accent-surface:linear-gradient(145deg,rgba(36,42,72,.82),rgba(20,23,40,.72));
}

html,body{background:var(--bg);color:var(--text)}
html{--radius:var(--panel-radius)}
.topbar{background:var(--topbar);border-color:var(--line)}
.sidebar{background:var(--sidebar)}.nav a,.link-button{color:var(--sidebar-muted)}
.brand-mark{border-radius:var(--control-radius)}
[data-theme="midnight"] .brand-mark,[data-theme="graphite"] .brand-mark,[data-theme="cosmos"] .brand-mark{background:var(--primary);color:var(--primary-text)}
[data-theme="midnight"] .nav a.active{background:var(--primary-soft);box-shadow:inset 3px 0 var(--primary);color:#fff}
[data-theme="graphite"] .nav a.active{background:#454352;box-shadow:inset 3px 0 var(--primary);color:#fff}
[data-theme="cosmos"] .nav a.active{background:var(--primary);box-shadow:0 7px 20px rgba(83,109,254,.22);color:#fff}
.mobile-menu{color:var(--text)}
.page-head h1,.panel-head h2,.metric-card strong,.table-title,.mini-stats b,.calendar-summary strong{color:var(--text)}
.page-head p,.panel-head p,.eyebrow,.muted,td small{color:var(--muted)}

.metric-grid{gap:16px;margin-bottom:18px}.metric-card{min-height:128px;padding:20px;border-color:var(--line);border-radius:var(--panel-radius);background:var(--surface);box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:center}.metric-card.accent{border-color:var(--line);background:var(--accent-surface)}
.panel{border-color:var(--line);border-radius:var(--panel-radius);background:var(--surface);box-shadow:var(--shadow)}
.panel-head{padding:20px 20px 15px}.form-panel{padding:0}.form-panel>form{padding:20px}.form-panel>.panel-head+form{padding-top:0}
.split-grid,.stack,.settings-grid,.report-chart-grid,.report-statements-grid{gap:18px}
.attention-row{border-color:var(--line)}.attention-row span,.report-line span{color:var(--text-soft)}.attention-row.total{background:var(--surface-2)}

.btn{min-height:var(--control-height);border-radius:var(--control-radius);padding:8px 15px}.btn-small{min-height:34px;border-radius:var(--control-radius)}
.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-primary:hover{background:var(--primary-dark)}
[data-theme="midnight"] .btn-primary{box-shadow:0 0 0 1px rgba(0,174,240,.25),0 6px 16px rgba(0,174,240,.12)}
[data-theme="cosmos"] .btn-primary{box-shadow:0 7px 18px rgba(83,109,254,.24)}
.btn-secondary{background:var(--secondary);border-color:var(--line);color:var(--secondary-text)}.btn-secondary:hover{background:var(--secondary-hover)}
.btn-ghost{color:var(--text-soft)}.btn-ghost:hover{background:var(--surface-2);border-color:var(--line)}
.btn-danger{background:color-mix(in srgb,var(--negative) 10%,var(--surface));border-color:color-mix(in srgb,var(--negative) 30%,var(--line));color:var(--negative)}

input,select,textarea{border-color:var(--line);background:var(--field);color:var(--text);border-radius:var(--control-radius)}
input:not([type="checkbox"]):not([type="radio"]),select{min-height:var(--control-height)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.78}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}
.form-grid label,.form-stack label,.salary-payment-form label{color:var(--text-soft)}
.filter-bar{background:var(--surface);border-color:var(--line);border-radius:var(--panel-radius);box-shadow:var(--shadow);padding:10px}

th{background:var(--surface-2);color:var(--muted);border-color:var(--line)}td{border-color:var(--line-soft)}tbody tr:hover{background:var(--hover)}
.badge{background:var(--surface-3);color:var(--text-soft)}.badge.income{background:color-mix(in srgb,var(--positive) 14%,var(--surface));color:var(--positive)}.badge.expense{background:color-mix(in srgb,var(--negative) 13%,var(--surface));color:var(--negative)}
.empty-box{background:var(--surface-2);border-color:var(--line);border-radius:var(--inner-radius)}
.pagination{border-color:var(--line)}

.stage-card,.employee-card,.person-card,.character-card,.salary-payment-box{background:var(--surface);border-color:var(--line);border-radius:var(--inner-radius)}
.stage-body,.employee-body,.person-editor,.advanced-fields,.add-block>form{background:var(--surface-2);border-color:var(--line)}
.stage-list,.employee-list,.person-list{padding-left:20px;padding-right:20px}.stage-card,.employee-card,.person-card{margin-bottom:10px}
.add-block{border-color:var(--line);border-radius:var(--inner-radius)}.payment-row,.allocation-row,.employee-body hr,.add-panel>form,.report-line,.advanced-fields[open]>summary{border-color:var(--line)}
.icon-button{background:var(--surface-3);color:var(--muted);border-radius:var(--control-radius)}
.salary-payment-list a{background:var(--surface-2);border-radius:var(--control-radius)}.salary-payment-list a:hover{background:var(--hover)}
.advanced-fields>summary span,.section-heading h3{color:var(--text)}
.person-editor h3,.employee-main strong,.person-finance b,.payment-row strong,.allocation-row strong{color:var(--text)}
.position-field,.switch-label,.salary-payment-form label{color:var(--muted)}

.reference-row,.reference-add{border-color:var(--line)}.reference-add,.commission-reference-row{background:var(--surface-2)}
.commission-reference-row{grid-template-columns:minmax(0,1fr) var(--control-height);border-color:var(--line);border-radius:var(--inner-radius)}
.reference-edit .switch-label{height:var(--control-height);padding:0 10px;justify-content:center;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--field);color:var(--text-soft)}
.commission-reference-edit input,.commission-reference-add input{height:var(--control-height)}
.reference-delete,.commission-reference-row .reference-delete{width:var(--control-height);height:var(--control-height);border-radius:var(--control-radius)}.commission-reference-row .reference-delete-form{height:var(--control-height)}
.reference-field>span,.commission-reference-edit .position-field>span,.commission-reference-add .position-field>span{color:var(--muted)}
.reference-delete:hover{background:color-mix(in srgb,var(--negative) 11%,var(--surface));color:var(--negative)}

.success-card,.danger-card,.attention-card,.receivable-card{border-color:var(--line);background:var(--accent-surface)}
.cash-chart-total{background:var(--surface-2);border-color:var(--line);border-radius:var(--inner-radius)}.cash-chart-total.net{background:var(--primary-soft);border-color:var(--line)}.cash-chart-total.net>i{background:var(--primary)}
.statement-tag{background:var(--surface-3);color:var(--muted);border-radius:var(--control-radius)}.report-line.grand{border-color:var(--line)}
.receivables-table .overdue-row{background:color-mix(in srgb,var(--negative) 5%,var(--surface))}
.debt-status.overdue{background:color-mix(in srgb,var(--negative) 13%,var(--surface));color:var(--negative)}.debt-status.today{background:color-mix(in srgb,var(--warning) 14%,var(--surface));color:var(--warning)}.debt-status.upcoming{background:var(--primary-soft);color:var(--primary)}
.finance-debt-panel>summary,.debt-list{border-color:var(--line)}.debt-summary-icon{background:var(--primary-soft);color:var(--primary);border-radius:var(--inner-radius)}.debt-row{border-color:var(--line)}
.settlement-notice{background:color-mix(in srgb,var(--positive) 8%,var(--surface));border-color:color-mix(in srgb,var(--positive) 28%,var(--line));border-radius:var(--inner-radius)}.settlement-notice>span{background:color-mix(in srgb,var(--positive) 16%,var(--surface));color:var(--positive)}

.calendar-nav-button{width:var(--control-height);height:var(--control-height);background:var(--secondary);border-color:var(--line);border-radius:var(--control-radius);color:var(--text)}.calendar-nav-button:hover{background:var(--secondary-hover)}
.calendar-summary,.calendar-agenda{background:var(--surface);border-color:var(--line);border-radius:var(--panel-radius);box-shadow:var(--shadow)}.calendar-summary>div,.agenda-day{border-color:var(--line)}
.calendar-weekdays{background:var(--surface-2);border-color:var(--line)}.calendar-weekdays div{border-color:var(--line);color:var(--muted)}.calendar-grid{background:var(--line)}.calendar-day{background:var(--surface)}.calendar-day.outside{background:var(--surface-2);color:var(--muted)}
.calendar-event,.agenda-event{background:var(--surface-2);border-radius:var(--control-radius)}.calendar-event.actual-income,.agenda-event.actual-income{background:color-mix(in srgb,var(--positive) 10%,var(--surface))}.calendar-event.actual-expense,.agenda-event.actual-expense,.calendar-event.overdue,.agenda-event.overdue{background:color-mix(in srgb,var(--negative) 10%,var(--surface))}.calendar-event.actual-payroll{background:color-mix(in srgb,#8768d4 12%,var(--surface))}.calendar-event.planned-income,.calendar-event.planned-expense{background:var(--surface-2)}.calendar-event-meta b{color:var(--text-soft)}

.alert{border-radius:var(--inner-radius)}.alert.success{background:color-mix(in srgb,var(--positive) 11%,var(--surface));border-color:color-mix(in srgb,var(--positive) 28%,var(--line));color:var(--positive)}.alert.danger{background:color-mix(in srgb,var(--negative) 10%,var(--surface));border-color:color-mix(in srgb,var(--negative) 28%,var(--line));color:var(--negative)}
.login-page{background:var(--bg)}.login-card{background:var(--surface);border-color:var(--line);border-radius:var(--panel-radius);box-shadow:var(--shadow)}

/* Theme character: the layout stays identical, surfaces and effects change */
[data-theme="light"] body{background-image:linear-gradient(180deg,#f7f9fb 0,#f3f5f8 240px)}
[data-theme="light"] .panel,[data-theme="light"] .metric-card{border-top-color:#edf1f5}
[data-theme="light"] .btn-primary{box-shadow:0 5px 14px rgba(36,107,253,.14)}

[data-theme="midnight"] body{background-image:radial-gradient(circle at 78% -15%,rgba(0,174,240,.10),transparent 34%),linear-gradient(180deg,#313e51 0,#293445 390px)}
[data-theme="midnight"] .panel,[data-theme="midnight"] .metric-card,[data-theme="midnight"] .filter-bar,[data-theme="midnight"] .calendar-summary{border-color:rgba(99,132,166,.32);box-shadow:var(--shadow)}
[data-theme="midnight"] .metric-card{position:relative;overflow:hidden;background:linear-gradient(155deg,#263449,#1e293a)}
[data-theme="midnight"] .metric-card::after{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:.72;box-shadow:0 0 12px var(--primary)}
[data-theme="midnight"] .panel-head{border-bottom:1px solid rgba(105,138,172,.10)}
[data-theme="midnight"] input:focus,[data-theme="midnight"] select:focus,[data-theme="midnight"] textarea:focus{box-shadow:0 0 0 2px rgba(0,174,240,.14),0 0 18px rgba(0,174,240,.08)}

[data-theme="graphite"] body{background:#292735}
[data-theme="graphite"] .panel,[data-theme="graphite"] .metric-card,[data-theme="graphite"] .filter-bar,[data-theme="graphite"] .calendar-summary{box-shadow:none;border-color:#4d4a59;background:#3a3846}
[data-theme="graphite"] .metric-card{position:relative;overflow:hidden}
[data-theme="graphite"] .metric-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--primary)}
[data-theme="graphite"] .metric-card:nth-child(3n)::before{background:var(--negative)}
[data-theme="graphite"] .metric-card:nth-child(4n)::before{background:var(--positive)}
[data-theme="graphite"] .btn-primary{box-shadow:none;border-bottom:2px solid rgba(0,0,0,.22)}
[data-theme="graphite"] .panel-head{background:rgba(255,255,255,.018);border-bottom:1px solid #454250}
[data-theme="graphite"] th{background:#34323f}

[data-theme="cosmos"] body{background-color:#090b15;background-image:radial-gradient(circle at 12% 16%,rgba(83,109,254,.18),transparent 28%),radial-gradient(circle at 90% 8%,rgba(26,188,212,.10),transparent 25%),radial-gradient(circle at 72% 84%,rgba(126,73,232,.12),transparent 30%);background-attachment:fixed}
[data-theme="cosmos"] .sidebar,[data-theme="cosmos"] .topbar{backdrop-filter:blur(22px) saturate(135%);-webkit-backdrop-filter:blur(22px) saturate(135%)}
[data-theme="cosmos"] .panel,[data-theme="cosmos"] .metric-card,[data-theme="cosmos"] .filter-bar,[data-theme="cosmos"] .calendar-summary,[data-theme="cosmos"] .calendar-agenda,[data-theme="cosmos"] .login-card{backdrop-filter:blur(18px) saturate(130%);-webkit-backdrop-filter:blur(18px) saturate(130%);border-color:rgba(130,143,204,.20);box-shadow:var(--shadow)}
[data-theme="cosmos"] .metric-card{position:relative;overflow:hidden;background:linear-gradient(145deg,rgba(35,40,68,.78),rgba(18,21,37,.66))}
[data-theme="cosmos"] .metric-card::before{content:"";position:absolute;width:92px;height:92px;right:-42px;top:-48px;border-radius:50%;background:var(--primary);filter:blur(26px);opacity:.17}
[data-theme="cosmos"] .metric-card:nth-child(2)::before{background:#17bfd4}[data-theme="cosmos"] .metric-card:nth-child(3)::before{background:var(--negative)}[data-theme="cosmos"] .metric-card:nth-child(4)::before{background:var(--positive)}
[data-theme="cosmos"] .btn-primary{background:linear-gradient(135deg,#536dfe,#7557e8);box-shadow:0 8px 24px rgba(83,109,254,.32),0 0 20px rgba(83,109,254,.12)}
[data-theme="cosmos"] .btn-primary:hover{background:linear-gradient(135deg,#6279ff,#8063ed)}
[data-theme="cosmos"] input:focus,[data-theme="cosmos"] select:focus,[data-theme="cosmos"] textarea:focus{box-shadow:0 0 0 2px rgba(83,109,254,.20),0 0 22px rgba(83,109,254,.12)}
[data-theme="cosmos"] .cash-chart-total,[data-theme="cosmos"] .stage-card,[data-theme="cosmos"] .person-card,[data-theme="cosmos"] .character-card{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}

/* Theme selector */
.settings-grid{align-items:start}.settings-card{align-self:start}.settings-general-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(100px,140px) auto;gap:10px;align-items:end}.settings-general-form label{display:grid;gap:6px;color:var(--text-soft);font-size:12px;font-weight:650}.settings-general-form .btn{align-self:end}.theme-settings-panel .panel-head{padding-bottom:12px}.theme-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 20px 20px}.theme-option-form{min-width:0;margin:0}
.theme-option{position:relative;display:grid;width:100%;min-width:0;min-height:76px;grid-template-columns:88px minmax(0,1fr) 20px;align-items:center;gap:9px;padding:8px;border:1px solid var(--line);border-radius:var(--inner-radius);background:var(--surface-2);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s,background .15s}.theme-option:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 45%,var(--line));background:var(--hover)}.theme-option.is-active{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 14%,transparent)}
.theme-preview{position:relative;display:grid;grid-template-columns:25% 1fr;width:88px;height:56px;overflow:hidden;border-radius:var(--preview-radius);background:var(--preview-bg);border:1px solid var(--preview-line);isolation:isolate}.theme-preview-light{--preview-bg:#f1f4f7;--preview-side:#171d26;--preview-panel:#fff;--preview-line:#dce2e8;--preview-accent:#246bfd;--preview-radius:6px;box-shadow:0 5px 12px rgba(25,42,70,.10)}.theme-preview-midnight{--preview-bg:#2b3546;--preview-side:#202838;--preview-panel:#222c3d;--preview-line:#3a475d;--preview-accent:#00aef0;--preview-radius:2px;box-shadow:inset 0 1px rgba(255,255,255,.05),0 0 11px rgba(0,174,240,.10)}.theme-preview-graphite{--preview-bg:#292735;--preview-side:#3b3949;--preview-panel:#413f4d;--preview-line:#504d5d;--preview-accent:#42a5f5;--preview-radius:4px}.theme-preview-cosmos{--preview-bg:#0d0f1a;--preview-side:rgba(9,11,19,.88);--preview-panel:rgba(31,35,57,.72);--preview-line:rgba(117,130,184,.28);--preview-accent:#536dfe;--preview-radius:9px;box-shadow:0 6px 18px rgba(21,23,52,.45),0 0 14px rgba(83,109,254,.18)}
.theme-preview-graphite::after{content:"";position:absolute;right:8px;bottom:7px;width:18px;height:2px;border-radius:2px;background:#ff745f;z-index:2}.theme-preview-cosmos::after{content:"";position:absolute;right:-6px;top:-7px;width:35px;height:35px;border-radius:50%;background:#7557e8;filter:blur(10px);opacity:.55;z-index:-1}
.theme-preview i,.theme-preview b,.theme-preview em,.theme-preview span,.theme-preview small{display:block;font-style:normal}.theme-preview-sidebar{padding:8px 5px;background:var(--preview-side)}.theme-preview-sidebar b{width:10px;height:10px;margin-bottom:9px;border-radius:3px;background:var(--preview-accent)}.theme-preview-sidebar em{height:3px;margin:5px 0;border-radius:2px;background:var(--preview-line)}.theme-preview-sidebar em:nth-child(3){background:var(--preview-accent)}
.theme-preview-main{padding:8px}.theme-preview-main>b{width:32%;height:4px;margin-bottom:8px;border-radius:var(--preview-radius);background:var(--preview-line)}.theme-preview-main>span{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.theme-preview-main>span em{height:22px;border:1px solid var(--preview-line);border-radius:var(--preview-radius);background:var(--preview-panel)}.theme-preview-main>span em:first-child{border-top:3px solid var(--preview-accent)}.theme-preview-main>small{height:13px;margin-top:5px;border:1px solid var(--preview-line);border-radius:var(--preview-radius);background:var(--preview-panel)}
.theme-option-copy{min-width:0;padding:0 2px}.theme-option-copy strong,.theme-option-copy small{display:block}.theme-option-copy strong{font-size:12px;color:var(--text)}.theme-option-copy small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.3;white-space:normal}.theme-check{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:var(--surface-3);color:transparent;font-size:11px}.theme-option.is-active .theme-check{background:var(--primary);color:var(--primary-text)}

@media(max-width:1180px){.theme-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.metric-card{min-height:112px}.form-panel>form{padding:15px}.form-panel>.panel-head+form{padding-top:0}.stage-list,.employee-list,.person-list{padding-left:15px;padding-right:15px}.settings-general-form{grid-template-columns:minmax(0,1fr) 100px}.settings-general-form .btn{grid-column:1/-1}.theme-picker{grid-template-columns:1fr 1fr;padding:0 15px 15px}}
@media(max-width:520px){.theme-picker{grid-template-columns:1fr}.theme-option{grid-template-columns:88px minmax(0,1fr) 20px}}


/* Finance: flexible period ranges */
.finance-period-presets{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:17px 0 10px}
.finance-period-preset{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text-soft);font-size:11px;font-weight:650;text-decoration:none;transition:border-color .15s,background .15s}
.finance-period-preset:hover{border-color:var(--primary);color:var(--primary)}
.finance-period-preset.is-active{border-color:var(--primary);background:var(--primary);color:#fff}
.finance-filter-bar .period-filter{flex:0 1 auto;min-width:315px}
.finance-filter-bar .period-filter label{min-width:0}
.finance-filter-bar .period-filter input{box-sizing:border-box;min-width:0}
@media(max-width:760px){.finance-period-presets{gap:6px}.finance-period-preset{flex:1;min-width:calc(50% - 6px)}.finance-filter-bar .period-filter{min-width:0;width:100%}.finance-filter-bar .period-filter label,.finance-filter-bar .period-filter input{width:100%}}


/*
 * SipCRM theme palettes v2
 * Intentionally visual-only: typography, spacing, block dimensions, grids,
 * existing component geometry and responsive breakpoints are unchanged.
 */
:root,[data-theme="light"]{
  --metric-number:#244464;--metric-highlight:#246bfd;--number-secondary:#526c84;
  --secondary-accent:#7398dd;--chart-direct:#477df0;--chart-admin:#efa753;
  --chart-payroll:#8b75d2;--chart-other:#a1b1c3;
  --avatar-bg:#e9eef8;--avatar-text:#344b6d;--active-surface:rgba(255,255,255,.11);
}
[data-theme="linen"]{
  color-scheme:light;
  --bg:#f6f3eb;--surface:#fffcf6;--surface-2:#f4efe4;--surface-3:#ebe5d7;--hover:#f3ecdf;
  --text:#29362d;--text-soft:#526052;--muted:#798475;--line:#dedbce;--line-soft:#eae6db;
  --primary:#567862;--primary-dark:#3e6350;--primary-soft:#e5eee3;--primary-text:#fffef9;
  --positive:#468065;--negative:#ae5843;--warning:#ae8143;
  --sidebar:#2b3932;--sidebar-muted:#b4c2ae;--topbar:rgba(255,252,246,.91);--field:#fffdf8;
  --secondary:#f8f4e9;--secondary-hover:#f1e9dc;--secondary-text:#52614b;
  --panel-radius:14px;--inner-radius:10px;--control-radius:9px;--control-height:40px;
  --shadow:0 1px 2px rgba(59,63,46,.035),0 12px 28px rgba(69,66,42,.072);
  --chart-grid:rgba(99,112,89,.15);--accent-surface:linear-gradient(143deg,#fffcf6,#f0efe1);
  --metric-number:#486b55;--metric-highlight:#bf7c4d;--number-secondary:#96734d;
  --secondary-accent:#bc8157;--chart-direct:#719479;--chart-admin:#ca9460;
  --chart-payroll:#a3a079;--chart-other:#b7b29c;
  --avatar-bg:#e5ecde;--avatar-text:#405c48;--active-surface:#e8eee2;
}
[data-theme="midnight"]{
  --metric-number:#9bdfff;--metric-highlight:#4be6de;--number-secondary:#adc4dd;
  --primary-text:#082633;
  --secondary-accent:#58d9cb;--chart-direct:#54b4f6;--chart-admin:#edb965;
  --chart-payroll:#9e97f6;--chart-other:#7499b2;
  --avatar-bg:#203c53;--avatar-text:#a0dffc;--active-surface:#173d56;
}
[data-theme="graphite"]{
  --primary:#ff947b;--primary-dark:#ea785f;--primary-soft:#553d44;--primary-text:#282532;
  --positive:#7ed8b0;--negative:#ff9786;--warning:#ffd18b;
  --metric-number:#ffb49a;--metric-highlight:#88c7f4;--number-secondary:#b5b7d1;
  --secondary-accent:#84c4fa;--chart-direct:#8cbced;--chart-admin:#ffa078;
  --chart-payroll:#be9ce8;--chart-other:#918d9f;
  --avatar-bg:#514653;--avatar-text:#ffd0bd;--active-surface:#553d44;
  --chart-grid:rgba(192,185,198,.18);
}
[data-theme="cosmos"]{
  --primary:#a28bff;--primary-dark:#8b6ff1;--primary-soft:rgba(119,100,239,.20);--primary-text:#171526;
  --positive:#50e5c0;--negative:#ff81b2;--warning:#ffcb87;
  --metric-number:#ccbaff;--metric-highlight:#59e6e6;--number-secondary:#a3b8fa;
  --secondary-accent:#3adddd;--chart-direct:#9a91ff;--chart-admin:#f6ac7d;
  --chart-payroll:#5de1d4;--chart-other:#8999ba;
  --avatar-bg:rgba(137,119,236,.24);--avatar-text:#e6dfff;--active-surface:rgba(127,105,241,.27);
  --chart-grid:rgba(170,163,241,.18);
}

/* Shared semantic palette: numbers, money, chart keys, sidebar, notices */
.metric-card strong:not(.positive):not(.negative),
.mini-stats b,
.calendar-summary strong,
.debt-summary-money>strong,
.debt-amount strong,
.receivable-summary strong,
.report-hero b:not(.positive):not(.negative){color:var(--metric-number)}
.metric-card.accent strong:not(.positive):not(.negative),
.cash-chart-total.net b:not(.positive):not(.negative),
.statement-card .report-line.grand strong:not(.positive):not(.negative){color:var(--metric-highlight)}
.metric-card span,.metric-card small,.calendar-summary p{color:var(--muted)}
.cash-chart-total b,.report-line strong:not(.positive):not(.negative),
.person-finance b,.salary-payment-list b{color:var(--metric-number)}
.cash-chart-total.net b.positive{color:var(--positive)}
.cash-chart-total.net b.negative{color:var(--negative)}
.cash-chart-total.net>i{background:var(--metric-highlight)}
.summary-mark.income,.legend-dot.actual-income{background:var(--positive)}
.summary-mark.expense,.legend-dot.actual-expense{background:var(--negative)}
.summary-mark.planned-income{background:var(--chart-direct)}
.summary-mark.planned-expense{background:var(--chart-admin)}
.legend-dot.actual-payroll{background:var(--chart-payroll)}
.legend-dot.planned{border-color:var(--chart-direct);background:var(--surface)}
.calendar-event.actual-payroll{background:color-mix(in srgb,var(--chart-payroll) 13%,var(--surface));border-color:var(--chart-payroll)}
.agenda-event.actual-payroll{border-color:var(--chart-payroll)}
.calendar-event.planned-income,.agenda-event.planned-income{border-color:var(--chart-direct)}
.calendar-event.planned-expense,.agenda-event.planned-expense{border-color:var(--chart-admin)}
.calendar-event.actual-income,.agenda-event.actual-income{border-color:var(--positive)}
.calendar-event.actual-expense,.agenda-event.actual-expense{border-color:var(--negative)}
.calendar-event-meta b,.agenda-date span,.agenda-date small{color:var(--text-soft)}
.debt-date b{color:var(--metric-highlight)}
.avatar{background:var(--avatar-bg);color:var(--avatar-text)}
.nav a.active{background:var(--active-surface);color:#fff}
.brand-mark{background:var(--primary);color:var(--primary-text)}
[data-theme="light"] .brand-mark{color:#fff}
[data-theme="graphite"] .brand-mark,[data-theme="cosmos"] .brand-mark{color:var(--primary-text)}
.finance-period-preset.is-active{color:var(--primary-text)}
/* Existing alert colors and numerical positive/negative states remain semantic. */

/* Clean blue: cool white depth, deliberate blue highlights */
[data-theme="light"] .metric-card.accent{
  background:linear-gradient(145deg,#ffffff,#edf4ff);border-color:#d5e3fb
}
[data-theme="light"] .metric-card.accent strong:not(.positive):not(.negative){color:#246bfd}
[data-theme="light"] .summary-mark.planned-income{background:#91b6f8}

/* Light warm variant: parchment, sage and terracotta, no cold-blue defaults */
[data-theme="linen"] body{
  background-color:var(--bg);
  background-image:radial-gradient(circle at 90% 4%,rgba(211,169,107,.10),transparent 34%),
                   linear-gradient(180deg,#f9f6ef 0%,#f6f3eb 410px);
}
[data-theme="linen"] .panel,[data-theme="linen"] .metric-card,
[data-theme="linen"] .filter-bar,[data-theme="linen"] .calendar-summary{
  border-color:#dcd8ca;box-shadow:var(--shadow);
}
[data-theme="linen"] .metric-card.accent{
  background:linear-gradient(140deg,#f8f6e8,#e8eee2);border-color:#c7d7c3
}
[data-theme="linen"] .metric-card.accent strong:not(.positive):not(.negative){color:#ae7448}
[data-theme="linen"] .btn-primary{background:linear-gradient(135deg,#5f856e,#4c7259);box-shadow:0 5px 16px rgba(65,96,73,.14)}
[data-theme="linen"] .btn-primary:hover{background:linear-gradient(135deg,#6b9179,#42664d)}
[data-theme="linen"] .topbar{backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
[data-theme="linen"] .nav a.active{background:rgba(177,204,171,.16);box-shadow:inset 3px 0 #b6d3ac}
[data-theme="linen"] .cash-chart-total.net{background:#e7eee1;border-color:#cddac7}

/* Midnight: cold luminous typography and controlled cyan highlights */
[data-theme="midnight"] .metric-card strong:not(.positive):not(.negative){
  text-shadow:0 0 22px rgba(37,181,236,.17)
}
[data-theme="midnight"] .metric-card.accent{
  background:linear-gradient(140deg,#263e53,#203344);border-color:rgba(62,195,234,.34)
}
[data-theme="midnight"] .metric-card.accent strong:not(.positive):not(.negative){color:#69efdf}
[data-theme="midnight"] .panel-head h2{color:#d5edff}
[data-theme="midnight"] .nav a.active{
  background:rgba(0,174,240,.13);box-shadow:inset 3px 0 #41d5ff,0 0 14px rgba(0,174,240,.07)
}
[data-theme="midnight"] .cash-chart-total.net{
  background:rgba(38,92,117,.26);border-color:rgba(89,184,225,.25)
}
[data-theme="midnight"] .finance-period-preset.is-active{
  box-shadow:0 0 15px rgba(0,174,240,.15)
}

/* Matte graphite: apricot numerals, coral actions, blue secondary keys, no glow */
[data-theme="graphite"] body{background:#292735}
[data-theme="graphite"] .panel,[data-theme="graphite"] .metric-card,
[data-theme="graphite"] .filter-bar,[data-theme="graphite"] .calendar-summary{
  background:#393744;border-color:#55505e;box-shadow:none
}
[data-theme="graphite"] .metric-card.accent{
  background:#433b45;border-color:#73606a
}
[data-theme="graphite"] .metric-card::before{background:var(--primary)}
[data-theme="graphite"] .metric-card:nth-child(2n)::before{background:var(--secondary-accent)}
[data-theme="graphite"] .metric-card:nth-child(3n)::before{background:var(--positive)}
[data-theme="graphite"] .metric-card.accent strong:not(.positive):not(.negative){color:#99cef5}
[data-theme="graphite"] .btn-primary{
  background:#ff947b;color:#25212b;box-shadow:none
}
[data-theme="graphite"] .btn-primary:hover{background:#ffad93}
[data-theme="graphite"] .nav a.active{
  background:#51414a;box-shadow:inset 3px 0 #ff947b;color:#ffe5dd
}
[data-theme="graphite"] .panel-head{background:rgba(255,255,255,.012)}
[data-theme="graphite"] .cash-chart-total.net{background:#51414a;border-color:#735966}

/* Cosmos: real translucent layers, aurora rim, glassy highlights */
[data-theme="cosmos"] body{
  background-color:#090b15;
  background-image:radial-gradient(ellipse at 13% 13%,rgba(133,102,245,.27),transparent 34%),
    radial-gradient(ellipse at 88% 17%,rgba(37,209,208,.17),transparent 30%),
    radial-gradient(ellipse at 64% 91%,rgba(219,85,175,.10),transparent 36%);
  background-attachment:fixed
}
[data-theme="cosmos"] .sidebar,[data-theme="cosmos"] .topbar{
  background-color:rgba(15,16,33,.67);
  backdrop-filter:blur(23px) saturate(148%);-webkit-backdrop-filter:blur(23px) saturate(148%);
  border-color:rgba(165,143,241,.22)
}
[data-theme="cosmos"] .panel,[data-theme="cosmos"] .metric-card,
[data-theme="cosmos"] .filter-bar,[data-theme="cosmos"] .calendar-summary,
[data-theme="cosmos"] .calendar-agenda,[data-theme="cosmos"] .login-card{
  background:linear-gradient(134deg,rgba(58,53,93,.47),rgba(20,28,50,.58));
  border-color:rgba(175,160,252,.29);
  box-shadow:0 16px 36px rgba(1,3,15,.34),inset 0 1px rgba(246,238,255,.10),0 0 23px rgba(109,85,227,.075);
  backdrop-filter:blur(24px) saturate(148%);-webkit-backdrop-filter:blur(24px) saturate(148%);
}
[data-theme="cosmos"] .metric-card{
  background:linear-gradient(135deg,rgba(64,57,111,.57),rgba(25,35,64,.60));
}
[data-theme="cosmos"] .metric-card.accent{
  background:linear-gradient(135deg,rgba(93,66,135,.58),rgba(33,64,94,.65));
  border-color:rgba(159,151,255,.45)
}
[data-theme="cosmos"] .metric-card.accent strong:not(.positive):not(.negative){color:#86f5ef}
[data-theme="cosmos"] .metric-card::before{background:#ba7aff}
[data-theme="cosmos"] .metric-card:nth-child(2)::before{background:#47ebe5}
[data-theme="cosmos"] .metric-card:nth-child(3)::before{background:#fa83ba}
[data-theme="cosmos"] .metric-card:nth-child(4)::before{background:#55e2c5}
[data-theme="cosmos"] .btn-primary{
  background:linear-gradient(135deg,#987df9,#b48bf5);
  color:#171426;box-shadow:0 7px 24px rgba(148,110,255,.33),0 0 19px rgba(80,224,225,.11)
}
[data-theme="cosmos"] .btn-primary:hover{background:linear-gradient(135deg,#aa92ff,#c099f9)}
[data-theme="cosmos"] .nav a.active{
  background:linear-gradient(90deg,rgba(136,112,251,.31),rgba(57,190,212,.14));
  box-shadow:inset 3px 0 #b7a3ff,0 0 20px rgba(136,112,251,.13)
}
[data-theme="cosmos"] .cash-chart-total.net{
  background:rgba(91,78,157,.24);border-color:rgba(163,145,246,.31)
}
[data-theme="cosmos"] .finance-period-preset.is-active{
  background:linear-gradient(135deg,#a28bff,#6fdcd9);border-color:rgba(182,171,249,.6)
}

/* Five preview palettes: selector chrome follows chosen account theme */
.theme-preview-linen{
  --preview-bg:#f6f3eb;--preview-side:#2b3932;--preview-panel:#fffaf0;
  --preview-line:#dcdacb;--preview-accent:#66876e;--preview-radius:6px;
  box-shadow:0 4px 11px rgba(72,82,58,.11)
}
.theme-preview-linen::after{
  content:"";position:absolute;right:9px;bottom:7px;width:15px;height:3px;
  background:#bd8055;border-radius:2px
}
.theme-preview-graphite{--preview-accent:#ff947b}
.theme-preview-graphite::after{background:#88c7f4}
.theme-preview-cosmos{
  --preview-panel:rgba(68,62,106,.62);--preview-accent:#a28bff;
  box-shadow:0 5px 15px rgba(44,31,86,.42),0 0 15px rgba(143,108,249,.25)
}
.theme-preview-cosmos .theme-preview-main>span em{
  box-shadow:inset 0 1px rgba(255,255,255,.16),0 0 5px rgba(160,131,255,.18)
}
/* Five tiles: keep each tile's dimensions, let them wrap neatly. */
.theme-picker{grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr))}


/* Financial semantics: invariant in all five account themes.
   Colors encode transaction meaning, never the decorative theme accent.
   Keep sizes, spacing, typography and the existing layout unchanged. */
:root,[data-theme]{
  --chart-direct:var(--negative);
  --chart-admin:color-mix(in srgb,var(--negative) 82%,var(--surface));
  --chart-payroll:color-mix(in srgb,var(--negative) 65%,var(--surface));
  --chart-other:color-mix(in srgb,var(--negative) 48%,var(--surface));
  --planned-income:color-mix(in srgb,var(--positive) 68%,var(--surface));
  --planned-expense:color-mix(in srgb,var(--negative) 68%,var(--surface));
}
/* Financial totals: semantic color takes precedence over theme-specific numerals. */
.metric-card strong.positive,.metric-card strong.negative,
.metric-card.accent strong.positive,.metric-card.accent strong.negative,
.cash-chart-total b.positive,.cash-chart-total b.negative,
.report-line strong.positive,.report-line strong.negative{
  text-shadow:none;
}
.cash-chart-total.income b{color:var(--positive)}
.cash-chart-total.expense b{color:var(--negative)}
.cash-chart-total.net.is-positive>i{background:var(--positive)}
.cash-chart-total.net.is-negative>i{background:var(--negative)}
.receivable-card>strong,.receivable-summary>span:first-child b,
.receivables-table td:nth-child(4)>strong{color:var(--positive)}
.summary-mark.income,.legend-dot.actual-income{background:var(--positive)}
.summary-mark.expense,.legend-dot.actual-expense{background:var(--negative)}
.summary-mark.planned-income{background:var(--planned-income)}
.summary-mark.planned-expense{background:var(--planned-expense)}
.legend-dot.actual-payroll{background:var(--negative)}
.legend-dot.planned{border-color:var(--planned-income)}
.calendar-summary>div:nth-child(3) strong{color:var(--positive)}
.calendar-summary>div:nth-child(4) strong{color:var(--negative)}
.calendar-event.actual-income,.agenda-event.actual-income{border-color:var(--positive)}
.calendar-event.actual-expense,.agenda-event.actual-expense,
.calendar-event.actual-payroll,.agenda-event.actual-payroll{border-color:var(--negative)}
.calendar-event.actual-payroll{background:color-mix(in srgb,var(--negative) 9%,var(--surface))}
.calendar-event.planned-income,.agenda-event.planned-income{border-color:var(--planned-income)}
.calendar-event.planned-expense,.agenda-event.planned-expense{border-color:var(--planned-expense)}
/* A highlighted result must never look green when its value is negative. */
.metric-card.accent:has(>strong.positive){border-color:color-mix(in srgb,var(--positive) 32%,var(--line));}
.metric-card.accent:has(>strong.negative){border-color:color-mix(in srgb,var(--negative) 32%,var(--line));}
.metric-card.accent:has(>strong.negative){background:color-mix(in srgb,var(--negative) 7%,var(--surface));}
.metric-card.accent:has(>strong.positive){background:color-mix(in srgb,var(--positive) 7%,var(--surface));}
.metric-card.accent:has(>strong.positive)::before,
.metric-card.accent:has(>strong.positive)::after{background:var(--positive);}
.metric-card.accent:has(>strong.negative)::before,
.metric-card.accent:has(>strong.negative)::after{background:var(--negative);}
[data-theme="cosmos"] .metric-card.accent:has(>strong.positive),
[data-theme="cosmos"] .metric-card.accent:has(>strong.negative){
  background:var(--surface);
}
/* The receivables balance is an asset; overdue remains a warning. */
.debt-summary-money>strong,.debt-amount>strong{color:var(--positive)}
.debt-row.is-overdue .debt-amount>strong{color:var(--negative)}


/* Theme switcher: five names, one horizontal row at every width.
   Only the switcher scrolls on narrow screens; the application layout is untouched. */
.theme-settings-panel .theme-picker{
  display:grid;
  grid-template-columns:repeat(5,minmax(140px,1fr));
  gap:10px;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:thin;
  align-items:stretch;
}
.theme-settings-panel .theme-option{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  position:relative;
  gap:7px;
  width:100%;
}
.theme-settings-panel .theme-option-copy{padding:0;min-width:0}
.theme-settings-panel .theme-option-copy strong{white-space:nowrap}
.theme-settings-panel .theme-check{position:absolute;right:8px;top:8px}
@media(max-width:1180px){.theme-settings-panel .theme-picker{grid-template-columns:repeat(5,minmax(140px,1fr))}}
@media(max-width:760px){.theme-settings-panel .theme-picker{grid-template-columns:repeat(5,minmax(140px,1fr))}}
@media(max-width:520px){.theme-settings-panel .theme-picker{grid-template-columns:repeat(5,minmax(140px,1fr))}}

/* Keep the navigation rail visibly separate from the content toolbar.
   Separation belongs to the shell only: no changes to its size or typography. */
[data-theme="midnight"] .sidebar{
  background:linear-gradient(180deg,#111c2b,#152334);
  border-right:1px solid rgba(81,172,217,.45);
  box-shadow:inset -1px 0 rgba(12,26,44,.8),8px 0 24px rgba(4,13,24,.17);
}
[data-theme="midnight"] .topbar{
  background:rgba(34,52,73,.98);
  border-bottom:1px solid rgba(96,158,198,.27);
}
[data-theme="graphite"] .sidebar{
  background:linear-gradient(180deg,#22202b,#2b2631);
  border-right:1px solid rgba(248,151,127,.43);
  box-shadow:8px 0 20px rgba(15,12,21,.19);
}
[data-theme="graphite"] .topbar{
  background:#393541;
  border-bottom:1px solid #64525b;
}
[data-theme="cosmos"] .sidebar{
  background:linear-gradient(180deg,rgba(7,8,22,.985),rgba(14,12,31,.965));
  border-right:1px solid rgba(169,137,255,.56);
  box-shadow:inset -1px 0 rgba(125,92,223,.19),6px 0 32px rgba(87,65,167,.21);
  backdrop-filter:blur(24px) saturate(140%);
  -webkit-backdrop-filter:blur(24px) saturate(140%);
}
[data-theme="cosmos"] .topbar{
  background:linear-gradient(90deg,rgba(33,29,62,.95),rgba(28,36,60,.92));
  border-bottom:1px solid rgba(137,120,209,.38);
  backdrop-filter:blur(20px) saturate(135%);
  -webkit-backdrop-filter:blur(20px) saturate(135%);
}
[data-theme="cosmos"] .brand{
  border-bottom-color:rgba(167,140,249,.28);
}

/* Action colors are meaningful, unlike the neutral primary theme accent. */
:root,[data-theme="light"]{--positive-ink:#fff;--negative-ink:#fff}
[data-theme="linen"]{--positive-ink:#fff;--negative-ink:#fff}
[data-theme="midnight"]{--positive-ink:#092619;--negative-ink:#311317}
[data-theme="graphite"]{--positive-ink:#17291e;--negative-ink:#311b19}
[data-theme="cosmos"]{--positive-ink:#09251f;--negative-ink:#311323}
.btn.btn-income{
  background:var(--positive);
  border-color:var(--positive);
  color:var(--positive-ink);
  box-shadow:none;
}
.btn.btn-income:hover{
  background:color-mix(in srgb,var(--positive) 88%,var(--surface));
  border-color:var(--positive);
  color:var(--positive-ink);
}
.btn.btn-expense{
  background:var(--negative);
  border-color:var(--negative);
  color:var(--negative-ink);
  box-shadow:none;
}
.btn.btn-expense:hover{
  background:color-mix(in srgb,var(--negative) 88%,var(--surface));
  border-color:var(--negative);
  color:var(--negative-ink);
}


/* One shared KPI design: overview, finances, reporting, objects and work
   reuse the exact calendar strip structure. No explanatory text in KPI rows. */
.financial-summary .summary-mark.neutral{background:var(--muted);opacity:.56}
.financial-summary .summary-mark.positive,
.financial-summary .summary-mark.income{background:var(--positive)}
.financial-summary .summary-mark.negative,
.financial-summary .summary-mark.expense{background:var(--negative)}
.calendar-summary.financial-summary>div strong:not(.positive):not(.negative){color:var(--text)!important}


/* v3: one CRM visual language for calculated results and repeated page chrome.
   Receipts stay green, expenses stay red; calculated totals and net cash
   stay blue even when negative (the sign remains in the number). */
:root,[data-theme="light"]{
  --result:#356bbb;
  --result-soft:color-mix(in srgb,#356bbb 9%,var(--surface));
}
[data-theme="linen"]{--result:#426fa5;--result-soft:color-mix(in srgb,#426fa5 10%,var(--surface))}
[data-theme="midnight"]{--result:#8ec9ff;--result-soft:color-mix(in srgb,#8ec9ff 12%,var(--surface))}
[data-theme="graphite"]{--result:#9bc9ff;--result-soft:color-mix(in srgb,#9bc9ff 11%,var(--surface))}
[data-theme="cosmos"]{--result:#a9c5ff;--result-soft:color-mix(in srgb,#a9c5ff 13%,var(--surface))}
.result-value,
.financial-summary .result-value,
.report-line strong.result-value,
td.result-value,
.cash-chart-total.net b.result-value{color:var(--result)!important}
.summary-mark.result,.financial-summary .summary-mark.result{background:var(--result)}
.cash-chart-total.net,
[data-theme="linen"] .cash-chart-total.net,
[data-theme="midnight"] .cash-chart-total.net,
[data-theme="graphite"] .cash-chart-total.net,
[data-theme="cosmos"] .cash-chart-total.net{
  background:var(--result-soft);
  border-color:color-mix(in srgb,var(--result) 27%,var(--line));
}
.cash-chart-total.net>i,
.cash-chart-total.net.is-positive>i,
.cash-chart-total.net.is-negative>i{background:var(--result)}
.report-line.grand:has(.result-value){background:var(--result-soft)}
/* Alignment only: keep every page's heading, explanation, filters,
   calendar legend and action group visible in their original sections. */
.page-head>.quick-actions,
.page-head>.period-filter,
.page-head>.calendar-navigation,
.page-head>a.btn{
  margin-left:auto;
  flex-shrink:0;
}
.page-head>.quick-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}
.page-head>.quick-actions>.btn,
.page-head>.quick-actions>form>.btn{min-height:var(--control-height)}
.page-head>.period-filter{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:8px;
}
.calendar-page-head>.calendar-navigation{
  justify-content:flex-end;
}
.calendar-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.calendar-toolbar>.quick-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.panel-head>.quick-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}

/* Same three full-value tiles, in one row BELOW the report chart title.
   No hidden figures and no truncation: overflow scrolls on small screens. */
.cash-chart-head{
  display:flex;
  align-items:stretch;
  flex-direction:column;
  gap:12px;
}
.cash-chart-head>.cash-chart-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  width:100%;
  max-width:100%;
  justify-content:stretch;
  flex-wrap:nowrap;
}
.cash-chart-head .cash-chart-total{
  box-sizing:border-box;
  min-width:0;
  width:100%;
  padding:8px 10px;
  overflow:visible;
}
.cash-chart-head .cash-chart-total>span{min-width:0}
.cash-chart-head .cash-chart-total b{
  font-size:11px;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  text-overflow:clip;
}
@media(max-width:1050px){
  .cash-chart-head>.cash-chart-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .page-head>.quick-actions,
  .page-head>.period-filter,
  .page-head>.calendar-navigation,
  .page-head>a.btn{
    margin-left:0;
    width:100%;
    justify-content:flex-start;
    flex-shrink:1;
  }
  .calendar-toolbar{align-items:flex-start;flex-direction:column}
  .calendar-toolbar>.quick-actions{width:100%;justify-content:flex-start}
  .calendar-toolbar>.quick-actions>.btn{flex:1}
  .cash-chart-head>.cash-chart-summary{
    display:grid;
    grid-template-columns:repeat(3,minmax(125px,1fr));
    overflow-x:auto;
    padding-bottom:2px;
    scrollbar-width:thin;
  }
  .cash-chart-head .cash-chart-total{min-width:125px}
}
