:root{--bg:#f6f6f8;--surface:#fff;--surface-2:#eaf2f9;--border:#cfcfd3;--text:#212126;--muted:#66666d;--accent:#1a6dad;--accent-dark:#0e4675;--accent-2:#dc452f;--danger:#c42b2b;--warning:#b26b00;--ok:#2e9e6a;--shadow:0 1px 2px #1018280f}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);letter-spacing:0;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{grid-template-columns:264px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);color:#f9fafb;background:#051f35;height:100vh;padding:18px 14px;position:sticky;top:0;overflow-y:auto}.brand{border-bottom:1px solid #ffffff24;align-items:center;gap:10px;padding:8px 10px 18px;display:flex}.brand-mark{min-width:72px;height:38px;color:var(--accent);background:#fff;border-radius:8px;place-items:center;font-size:19px;font-weight:850;display:grid;transform:skew(-7deg)}.brand-mark span{display:block;transform:skew(7deg)}.brand-mark:after{content:"";background:var(--accent-2);border-radius:999px;width:44px;height:4px;position:absolute;bottom:5px;right:8px}.brand-title{font-size:15px;font-weight:750}.brand-subtitle{color:#c5dcee;margin-top:2px;font-size:12px}.nav{gap:10px;padding:16px 0;display:grid}.nav-group-title{color:#8fbcdd;text-transform:uppercase;padding:4px 10px 3px;font-size:11px;font-weight:800}.nav-section{gap:3px;display:grid}.nav a,.nav button{color:#e6e6e8;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;width:100%;min-height:38px;padding:0 10px;display:flex}.nav a:hover,.nav button:hover{color:#fff;background:#eaf2f91f}.main{min-width:0}.auth-main{min-height:100vh;padding:48px 18px}.topbar{z-index:2;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f6f6f8f0;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex;position:sticky;top:0}.topbar-title{color:var(--accent-dark);text-transform:uppercase;font-size:13px;font-weight:800}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.search{border:1px solid var(--border);background:var(--surface);width:min(580px,100%);color:var(--muted);border-radius:6px;align-items:center;gap:10px;padding:8px 10px;display:flex}.search input{border:0;outline:0;width:100%}.content{gap:18px;padding:22px 24px 40px;display:grid}.page-header{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.eyebrow{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:650}h1,h2,h3{margin:0}h1{font-size:28px;line-height:1.18}h2{font-size:18px}h3{font-size:15px}.muted{color:var(--muted)}.grid{gap:14px;display:grid}.grid>*,.panel,.action-card{min-width:0}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.panel-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.panel-header>*{min-width:0}.panel-body{padding:16px}.manual-cashflow>summary{cursor:pointer;border-bottom:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;list-style:none;display:flex}.manual-cashflow[open]>summary{border-bottom:1px solid var(--border)}.manual-cashflow>summary::-webkit-details-marker{display:none}.manual-summary-title{font-size:18px;font-weight:750}.manual-form-block{align-content:start;gap:14px;display:grid}.stat{gap:7px;min-height:104px;padding:16px;display:grid}.stat-value{font-size:28px;font-weight:780}.stat-label{color:var(--muted);font-size:13px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 12px}th{color:#4a4a50;white-space:nowrap;background:#f6f6f8;font-size:12px;font-weight:700}td{overflow-wrap:anywhere;max-width:320px}td .badge,td .button{white-space:nowrap}.table-sort{min-height:26px;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.table-sort:hover{color:var(--accent-dark)}.table-link{color:inherit;text-underline-offset:3px;font-weight:650;text-decoration:none}.table-link:hover{background:#eaf2f9;text-decoration:underline}.stat-link{color:inherit;display:block}.stat-link:hover .panel{border-color:var(--accent)}tr:last-child td{border-bottom:0}.badge{background:var(--surface-2);min-height:24px;color:var(--accent-dark);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:0 8px;font-size:12px;font-weight:650;display:inline-flex}.badge.ok{color:var(--ok);background:#e8f6ef}.badge.warn{color:var(--warning);background:#fff4d6}.badge.danger{color:var(--danger);background:#f9dddd}.badge.info{color:var(--accent-dark);background:#eaf2f9}.badge.neutral{color:#4a4a50;background:#e6e6e8}tr.row-danger td{background:#fcf0ef}tr.row-warn td{background:#fffaf0}tr.row-ok td{background:#f1fbf6}tr.row-info td{background:#f2f7fb}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid.dense{grid-template-columns:repeat(5,minmax(0,1fr))}.field{gap:6px;display:grid}.field.full{grid-column:1/-1}label{color:#344054;font-size:12px;font-weight:700}input,select,textarea{border:1px solid var(--border);width:100%;min-height:38px;color:var(--text);background:#fff;border-radius:6px;padding:8px 10px}.search-select{gap:6px;display:grid;position:relative}.search-select-control{border:1px solid var(--border);min-height:38px;color:var(--muted);background:#fff;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:0 8px;display:grid}.search-select-control:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #1a6dad24}.search-select-control input{border:0;outline:0;min-height:36px;padding:0 8px}.search-select-icon{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:inline-grid}.search-select-icon:hover{background:var(--surface-2);color:var(--text)}.search-select-menu{z-index:12;border:1px solid var(--border);background:#fff;border-radius:8px;max-height:260px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 16px 32px #0f172a29}.search-select-option{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;text-align:left;background:#fff;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.search-select-option:hover,.search-select-option[aria-selected=true]{background:#eaf2f9}.search-select-option span{min-width:0;display:grid}.search-select-option strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.search-select-option small,.search-select-selected,.search-select-empty{color:var(--muted);font-size:12px}.search-select-empty{padding:12px}.search-select-selected{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}textarea{resize:vertical;min-height:78px}.checks{flex-wrap:wrap;gap:10px;display:flex}.check{color:var(--text);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.check input{width:auto;min-height:auto}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.check-row{border:1px solid var(--border);min-height:36px;color:var(--text);background:#fff;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.check-row input{width:auto;min-height:auto}.role-list{gap:8px;display:grid}.role-row{border:1px solid var(--border);background:#f9fafb;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;display:flex}.role-row div{gap:3px;min-width:0;display:grid}.role-row span:not(.badge){color:var(--muted);font-size:12px;line-height:1.35}.access-mode{border:1px solid var(--border);background:#f9fafb;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.access-mode .check-row{background:0 0;border:0;min-height:auto;padding:0}.permission-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.permission-groups.disabled{opacity:.72}.permission-group{border:1px solid var(--border);background:#f9fafb;border-radius:8px;gap:8px;min-width:0;padding:10px;display:grid}.permission-group-title{color:var(--accent-dark);text-transform:uppercase;font-size:12px;font-weight:800}.permission-checks{gap:6px;display:grid}.permission-check{background:#fff;min-height:34px}.button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 12px;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.button.secondary{border-color:var(--border);color:var(--text);background:#fff}.button.disabled{opacity:.52;cursor:not-allowed;pointer-events:none}.button.danger{border-color:var(--danger);background:var(--danger);color:#fff}.button.compact{min-height:32px;padding:0 10px;font-size:12px}.decision-form{gap:8px;min-width:260px;display:grid}.decision-form textarea{min-height:52px}.icon-button{border:1px solid var(--border);width:34px;height:34px;color:var(--text);cursor:pointer;background:#fff;border-radius:6px;place-items:center;display:inline-grid}.icon-button:hover{border-color:var(--accent)}.empty{border:1px dashed var(--border);min-height:150px;color:var(--muted);text-align:center;border-radius:8px;place-items:center;display:grid}.notice{color:#713b12;background:#fffaeb;border:1px solid #fedf89;border-radius:8px;padding:14px 16px}.notice.success{color:#1f7550;background:#eefaf4;border-color:#b9e8d0}.notice strong{color:#522504}.flow{flex-wrap:wrap;gap:8px;display:flex}.flow .badge{border-radius:6px}.period-control{gap:6px;display:grid}.period-caption{color:var(--muted);margin:0;font-size:12px;line-height:1.35}.import-upload{border:1px solid var(--border);background:#f9fafb;border-radius:8px;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:12px;margin:14px 0;padding:12px;display:grid}.detail-block{gap:14px;margin-top:16px;display:grid}.panel-subheader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.modal-backdrop{z-index:20;background:#1118277a;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:min(960px,100%);max-height:calc(100vh - 36px);display:grid;overflow:hidden;box-shadow:0 20px 50px #0f172a47}.modal.compact{width:min(620px,100%)}.modal-header,.modal-actions{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.modal-actions{border-top:1px solid var(--border);border-bottom:0;justify-content:flex-end}.modal-body{gap:14px;padding:16px;display:grid;overflow:auto}.modal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.mini-stat{border:1px solid var(--border);background:#f9fafb;border-radius:8px;gap:4px;padding:10px;display:grid}.mini-stat span{color:var(--muted);font-size:12px;font-weight:700}.mini-stat strong{text-overflow:ellipsis;font-size:20px;overflow:hidden}.mini-stat.ok{background:#eefaf4;border-color:#b9e8d0}.mini-stat.warn{background:#fffaf0;border-color:#f2d58a}.mini-stat.info{background:#f2f7fb;border-color:#c5dcee}.mini-stat.danger{background:#fcf0ef;border-color:#efc2c2}.preview-table{border:1px solid var(--border);border-radius:8px}.source-fields-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.source-field{border:1px solid var(--border);background:#f9fafb;border-radius:8px;gap:4px;min-width:0;padding:10px;display:grid}.source-field span{color:var(--muted);font-size:12px;font-weight:750}.source-field strong{overflow-wrap:anywhere;font-size:13px;font-weight:650}.source-fields-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.source-fields-grid.compact .source-field{padding:8px}.stage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.stage-card{border:1px solid var(--border);background:#f9fafb;border-radius:8px;gap:8px;min-height:94px;padding:12px;display:grid}.stage-card.ok{background:#eefaf4;border-color:#b9e8d0}.stage-card.warn{background:#fffaf0;border-color:#f2d58a}.stage-card.danger{background:#fcf0ef;border-color:#efc2c2}.stage-card.info{background:#f2f7fb;border-color:#c5dcee}.stage-card strong{color:#344054;font-size:13px;font-weight:650;line-height:1.35}.action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.action-card{border:1px solid var(--border);min-height:132px;box-shadow:var(--shadow);background:#fff;border-radius:8px;gap:10px;padding:14px;display:grid}.action-card:hover{border-color:var(--accent)}.action-card.active{border-color:var(--ok);background:#f1fbf6}.action-card-title{align-items:center;gap:8px;font-weight:800;display:flex}.action-card-text{color:var(--muted);font-size:13px;line-height:1.4}.report-grid .action-card{min-height:118px}.report-columns{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.filter-strip{gap:12px;display:grid}.filter-actions{flex-wrap:wrap;align-items:end;gap:8px;display:flex}@media (max-width:1180px){.grid.cols-4,.grid.cols-3,.action-grid,.form-grid.dense,.report-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:980px){.shell{grid-template-columns:1fr}.sidebar{height:auto;max-height:360px;position:relative}.nav{grid-template-columns:repeat(2,minmax(0,1fr));max-height:260px;overflow:auto}.nav-section,.nav-group-title{grid-column:1/-1}.grid.cols-2,.grid.cols-3,.grid.cols-4,.check-grid,.permission-groups,.action-grid,.form-grid,.form-grid.dense,.import-upload,.modal-grid,.source-fields-grid,.stage-grid,.report-columns{grid-template-columns:1fr}.page-header,.topbar{flex-direction:column;align-items:stretch}.topbar-actions{justify-content:flex-start}}
