:root{--bg-app:#f5f4ef;--bg-panel:#fff;--bg-soft:#edebe4;--bg-soft-2:#edebe4;--border-muted:#e3e0d7;--text-main:#181818;--text-subtle:#6e6b63;--accent:#ff4b36;--accent-2:#ff6b52;--accent-deep:#c4381f;--brown:#a0775b;--brown-deep:#8c684e;--warn:#f59e0b;--danger:#ef4444;--shadow-sm:0 1px 2px #18181b0a;--shadow-md:0 1px 2px #18181b0a, 0 8px 24px #8c684e14;--shadow-lg:0 14px 32px -12px #8c684e47;--shadow:var(--shadow-md);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:9999px;--ease-standard:cubic-bezier(.4, 0, .2, 1);--dur-fast:.12s;--dur-base:.16s;--bg:var(--bg-app);--panel:var(--bg-panel);--panel-2:var(--bg-soft-2);--line:var(--border-muted);--text:var(--text-main);--muted:var(--text-subtle);--accent-strong:var(--accent-deep);color:var(--text-main);background:var(--bg-app);font-family:Manrope,Segoe UI,Helvetica Neue,sans-serif}*{box-sizing:border-box}body{background:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;margin:0;font-family:Manrope,Segoe UI,Helvetica Neue,sans-serif}input,select,textarea,button{font:inherit;border:1px solid var(--border-muted);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text-main);transition:border-color var(--dur-base) var(--ease-standard), box-shadow var(--dur-base) var(--ease-standard), background-color var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard), filter var(--dur-base) var(--ease-standard);background:#fff;font-size:14px}input:hover:not(:disabled):not([readonly]),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#e0d0c4}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #ff4b361f}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:14px 14px;padding-right:2.25rem}select:hover,select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ff4b36' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}html,body{max-width:100%;overflow-x:hidden}@media (width<=560px){input,select,textarea{font-size:16px}button{min-height:44px}}.app{background:var(--bg-app);flex-direction:column;min-height:100vh;display:flex}header.topbar{z-index:30;padding:0 var(--space-6);border-bottom:1px solid var(--border-muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f5f4efe6;align-items:center;gap:15px;height:64px;display:flex;position:sticky;top:0}.logo-mark{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;letter-spacing:-.5px;justify-content:center;align-items:center;width:42px;height:42px;font-size:15px;font-weight:800;display:flex;box-shadow:0 6px 16px #ff4b3647}.brand h1{letter-spacing:-.3px;color:var(--text-main);margin:0;font-size:19px;font-weight:700}.brand .sub{color:var(--text-subtle);align-items:center;gap:10px;margin-top:2px;font-size:12.5px;display:flex}.brand .formula{background:var(--bg-soft-2);border:1px solid var(--border-muted);color:var(--accent-deep);border-radius:var(--radius-sm);padding:2px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.spacer{flex:1}.arche-brand{letter-spacing:-1.1px;color:var(--text-main);font-size:21px;font-weight:800;line-height:1}.arche-brand:first-letter{color:var(--text-main)}button.primary{color:#fff;border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent), var(--accent-2));border:none;align-items:center;gap:8px;padding:9px 16px;font-weight:600;display:inline-flex;box-shadow:0 4px 12px #ff4b3638}button.primary:hover:not(:disabled){filter:brightness(1.04)saturate(1.05);transform:translateY(-1px);box-shadow:0 10px 24px #ff4b3642}.btn-soft{cursor:pointer;border:1px solid var(--border-muted);color:var(--text-subtle);border-radius:var(--radius-md);background:#fff;align-items:center;gap:7px;padding:9px 14px;font-size:14px;font-weight:600;display:inline-flex}.btn-soft:hover:not(:disabled){color:var(--accent-deep);background:#fbf3f1;border-color:#ecccc2}.btn-soft.disabled{opacity:.6;pointer-events:none}.logout{margin-left:14px}.toolbar{border-bottom:1px solid var(--border-muted);background:var(--bg-panel);flex-wrap:wrap;align-items:center;gap:14px;padding:14px 24px;display:flex}.synced{color:var(--text-subtle);font-size:12px}.month-control{align-items:center;gap:9px;display:flex}.month-label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-subtle);font-size:11px;font-weight:600}.select-clean{box-shadow:var(--shadow);font-weight:600}main{padding:var(--space-6);flex:1;width:100%;overflow:auto}.banner{border-radius:var(--radius-md);border:1px solid;margin-bottom:16px;padding:10px 14px;font-size:13px}.banner.error{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.banner.info{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.banner.ok{color:#166534;background:#dcfce7;border-color:#86efac}.grid-wrap{border:1px solid var(--border-muted);border-radius:var(--radius-lg);background:var(--bg-panel);max-height:70vh;box-shadow:var(--shadow);min-width:0;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}th,td{text-align:left;white-space:nowrap;padding:11px 16px}thead th{z-index:2;letter-spacing:.5px;text-transform:uppercase;color:var(--text-main);background:#fafafa;border-bottom:1px solid #e4e4e7;font-size:13px;font-weight:800;position:sticky;top:0}tbody td{color:#3f3d47;border-bottom:1px solid #f1eff4}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fbf3f0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.neg{color:var(--danger)}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--accent)}.sort-ind{color:var(--accent);font-size:10px}.filter-row th{z-index:1;background:var(--bg-panel);padding:6px 10px;top:41px}.col-filter{border-radius:var(--radius-sm);background:#fff;width:100%;min-width:72px;padding:5px 9px;font-size:12.5px;font-weight:400}tfoot td{border-top:2px solid var(--text-main);color:var(--text-main);background:#fafafa;font-weight:700}table.summary td{padding:14px 16px;font-size:15px;font-weight:600}table.summary tbody tr:hover{background:0 0}.section-title{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.5px;margin:22px 0 9px;font-size:11px;font-weight:700}.dim-bar{flex-wrap:wrap;align-items:center;gap:12px;margin:6px 0 12px;display:flex}.pills{flex-wrap:wrap;gap:6px;display:inline-flex}.pill-btn{border-radius:var(--radius-pill);border:1px solid var(--border-muted);color:var(--text-subtle);background:#fff;padding:6px 14px;font-size:12.5px;font-weight:600}.pill-btn:hover:not(.active){color:var(--accent-deep);background:#fbf3f1}.pill-btn.active{color:var(--accent-deep);background:#ffece8;border-color:#ffc9bf}.dso-cell{color:var(--text-subtle);font-weight:700}.dso-pill{text-align:center;border-radius:var(--radius-pill);border:1px solid #0000;min-width:44px;padding:3px 11px;font-size:12.5px;font-weight:700;display:inline-block}.dso-pill.g{color:#166534;background:#dcfce7;border-color:#86efac}.dso-pill.a{color:#854d0e;background:#fef9c3;border-color:#fde047}.dso-pill.r{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.pill{border-radius:var(--radius-pill);color:#854d0e;background:#fef9c3;border:1px solid #fde047;align-items:center;padding:2px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.pill.src-live{color:#166534;background:#dcfce7;border-color:#86efac}.exception-row{background:#fffbeb}.progress{color:var(--text-subtle);font-size:12px}.muted{color:var(--text-subtle)}tbody tr.drillable{cursor:pointer}.modal-backdrop{z-index:50;padding:var(--space-6);background:#18181b4d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-panel);border:1px solid var(--border-muted);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:980px;max-height:88vh;display:flex;box-shadow:0 24px 60px -24px #18181b80}.modal-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid #f1eff4;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.modal-head h3{color:var(--text-main);margin:0;font-size:17px;font-weight:700}.modal-body{padding:var(--space-4) var(--space-5);overflow:auto}.search-box{border:1px solid var(--border-muted);border-radius:var(--radius-md);color:var(--text-subtle);box-shadow:var(--shadow);transition:border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);background:#fff;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #ff4b361f}.search-box input{box-shadow:none;background:0 0;border:none;width:200px;padding:9px 0}.search-box input:focus{box-shadow:none;outline:none}.app-select{display:inline-block;position:relative}.app-select-trigger{border:1px solid var(--border-muted);border-radius:var(--radius-md);min-width:150px;color:var(--text-main);cursor:pointer;box-shadow:var(--shadow);background:#fff;justify-content:space-between;align-items:center;gap:10px;padding:9px 13px;font-weight:600;display:inline-flex}.app-select-trigger:hover:not(:disabled){border-color:#e0d0c4}.app-select-trigger[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 3px #ff4b361f}.app-select-chev{color:var(--text-subtle);transition:transform var(--dur-fast) var(--ease-standard)}.app-select-trigger[aria-expanded=true] .app-select-chev{color:var(--accent);transform:rotate(180deg)}.app-select-popup{z-index:40;border:1px solid var(--border-muted);border-radius:var(--radius-md);min-width:100%;box-shadow:var(--shadow-lg);max-height:280px;animation:app-pop var(--dur-fast) ease-out;background:#fff;padding:5px;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}@keyframes app-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.app-select-option{border-radius:var(--radius-sm);color:var(--text-main);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:8px 11px;font-size:14px;font-weight:500;display:flex}.app-select-option:hover{color:var(--accent-deep);background:#fbf3f1}.app-select-option.selected{color:var(--accent-deep);background:#ffece8;font-weight:700}.app-select-check{width:12px;color:var(--accent);font-size:12px}.target-ctl{text-transform:uppercase;letter-spacing:.4px;color:var(--text-subtle);align-items:center;gap:7px;font-size:11px;font-weight:600;display:inline-flex}.target-ctl input{text-align:center;width:64px;padding:8px 10px;font-weight:700}.btn-soft.on{color:var(--accent-deep);background:#ffece8;border-color:#ffc9bf}.charts-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:22px;display:grid}@media (width<=1100px){.charts-grid{grid-template-columns:1fr}}.chart-card{background:var(--bg-panel);border:1px solid var(--border-muted);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow);min-width:0}.chart-title{color:var(--text-main);margin-bottom:10px;font-size:12.5px;font-weight:700}.chart-title .muted{font-weight:400}.sticky-first thead th:first-child,.sticky-first tbody td:first-child,.sticky-first tfoot td:first-child{z-index:1;background:#fff;position:sticky;left:0;box-shadow:2px 0 4px -2px #0f172a14}.sticky-first thead th:first-child{z-index:3;background:#fafafa}.sticky-first tbody tr:hover td:first-child{background:#fbf3f0}.sticky-first tfoot td:first-child{background:#fafafa}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 0 0 8px;font-size:12px;font-weight:600;text-decoration:underline}.breadcrumb{text-transform:uppercase;letter-spacing:.4px;color:var(--text-subtle);margin-bottom:2px;font-size:11px;font-weight:600}.breadcrumb span{margin:0 5px}.loading-row{padding:var(--space-6);text-align:center;color:var(--text-subtle)}.topbar-progress{background:linear-gradient(90deg, var(--accent), var(--accent-2), var(--accent));background-size:200% 100%;height:3px;animation:1.1s linear infinite progress-slide}@keyframes progress-slide{0%{background-position:200% 0}to{background-position:-200% 0}}.login-wrap{background:linear-gradient(160deg,#edebe4 0%,#f5f4ef 55%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg-panel);border:1px solid var(--border-muted);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:360px;padding:32px 28px 22px;box-shadow:0 20px 48px -24px #8c684e52}.login-logo{border-radius:14px;width:54px;height:54px;margin:0 auto 14px;font-size:17px}.login-card h1{letter-spacing:-.3px;color:var(--text-main);margin:0;font-size:20px}.login-sub{color:var(--text-subtle);margin:4px 0 22px;font-size:13px}.login-field{text-align:left;color:var(--text-subtle);flex-direction:column;gap:5px;margin-bottom:14px;font-size:12px;font-weight:600;display:flex}.login-field input{padding:10px 12px;font-size:14px}.login-error{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5;border-radius:10px;margin-bottom:14px;padding:8px 11px;font-size:12.5px}.login-btn{justify-content:center;width:100%;padding:11px;font-size:14px}.login-foot{color:var(--text-main);letter-spacing:-.6px;justify-content:center;align-items:center;gap:7px;margin-top:18px;font-size:15px;font-weight:800;display:flex}.link-row{width:100%;color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:12px;padding:4px;font-size:13px;font-weight:600;display:block}.link-row:hover{color:var(--accent-deep)}.drill-trend{background:var(--bg-soft-2);border:1px solid var(--border-muted);border-radius:var(--radius-md);margin-bottom:14px;padding:12px 14px 6px}.drill-trend-title{text-transform:uppercase;letter-spacing:.4px;color:var(--text-subtle);margin-bottom:6px;font-size:11.5px;font-weight:700}.kpi-cards{display:none}.kpi{background:var(--bg-panel);border:1px solid var(--border-muted);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:6px;min-width:0;padding:12px 14px;display:flex}.kpi-label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-subtle);font-size:10.5px;font-weight:700}.kpi-val{color:var(--text-main);flex-wrap:wrap;align-items:center;gap:6px;font-size:18px;font-weight:800;display:flex}@media (width<=860px){header.topbar{gap:10px;padding:0 16px}.brand .formula{display:none}.toolbar{gap:10px;padding:12px 16px}main{padding:18px 16px}}@media (width<=560px){header.topbar{flex-wrap:wrap;gap:8px;height:auto;min-height:56px;padding:8px 12px}.logo-mark{border-radius:10px;width:34px;height:34px;font-size:13px}.brand h1{font-size:16px}.brand .sub{display:none}.arche-brand{font-size:17px}header.topbar .btn-label{display:none}header.topbar .btn-soft{gap:0;padding:9px 11px}.logout{margin-left:6px}main{padding:14px 12px}.toolbar{gap:10px;padding:10px 12px}.toolbar>button.primary{justify-content:center;width:100%}.synced,.toolbar .spacer{display:none}.month-control{flex-wrap:wrap;width:100%}.month-control .select-clean,.month-control input[type=date]{flex:auto;min-width:0}.app-select,.app-select-trigger{width:100%}.summary-wrap{display:none}.kpi-cards{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.dim-bar{gap:10px}.pills{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;width:100%;padding-bottom:2px;overflow-x:auto}.pills::-webkit-scrollbar{display:none}.pill-btn{flex:none}.dim-bar .spacer{display:none}.dim-bar .search-box,.dim-bar .search-box input,.dim-bar>a{width:100%}.dim-bar>a button.primary{justify-content:center;width:100%}th,td{padding:8px 10px}table{font-size:12.5px}thead th{font-size:11.5px}table.summary td{padding:11px 12px;font-size:15px}.modal-backdrop{padding:0}.modal{border:none;border-radius:0;width:100%;max-width:100%;height:100%;max-height:100%}.modal-head{padding:14px}.modal-head h3{font-size:16px}.modal-body{padding:12px 14px}.section-title{margin:16px 0 8px}}
