:root{--bg: #0f1115;--bg-panel: #171a21;--bg-elevated: #1e222b;--bg-hover: #252a35;--border: #2c3340;--text: #e8eaf0;--text-dim: #9aa3b2;--text-faint: #6b7280;--accent: #f5a623;--accent-hover: #ffb93e;--accent-text: #14161b;--green: #34d399;--red: #f87171;--blue: #60a5fa;--radius: 10px;font-family:Segoe UI,SF Pro Text,-apple-system,Roboto,Helvetica,Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}#root{height:100vh}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;flex-shrink:0;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 10px}.logo{font-size:17px;font-weight:700;padding:6px 12px 18px;letter-spacing:.2px}.logo span{color:var(--accent)}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--text-dim);cursor:pointer;border:none;background:none;font-size:14px;text-align:left;width:100%;font-family:inherit}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active{background:var(--bg-elevated);color:var(--accent);font-weight:600}.nav-icon{width:18px;text-align:center}.sidebar-footer{margin-top:auto;padding:10px 12px;font-size:11px;color:var(--text-faint)}.main{flex:1;overflow-y:auto;padding:28px 32px 60px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:16px;flex-wrap:wrap}.page-header h1{font-size:22px;margin:0;font-weight:650}.page-sub{color:var(--text-dim);margin:4px 0 0;font-size:13px}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:18px}.card h2{font-size:15px;margin:0 0 14px;font-weight:650}.card h3{font-size:13px;margin:16px 0 8px;color:var(--text-dim);font-weight:600}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:20px}.stat{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.stat .label{color:var(--text-dim);font-size:12px;margin-bottom:6px}.stat .value{font-size:24px;font-weight:700}.stat .value.green{color:var(--green)}.stat .value.amber{color:var(--accent)}.stat .value.blue{color:var(--blue)}.stat .hint{color:var(--text-faint);font-size:11px;margin-top:4px}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.6px;padding:8px 10px;border-bottom:1px solid var(--border);font-weight:600}td{padding:10px;border-bottom:1px solid var(--border);font-size:13.5px;vertical-align:middle}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--bg-hover)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;color:var(--text-dim);font-weight:600}.field input,.field select,.field textarea{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 11px;font-size:13.5px;font-family:inherit;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field textarea{resize:vertical;min-height:60px}.field .suffix{font-size:11px;color:var(--text-faint)}.btn{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit}.btn:hover{background:var(--bg-hover)}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.btn.primary:hover{background:var(--accent-hover)}.btn.danger{color:var(--red)}.btn.small{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{display:flex;gap:10px;margin-top:16px;align-items:center;flex-wrap:wrap}.cell-input{width:100%;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 8px;font-size:13px;font-family:inherit;outline:none}.cell-input:focus{border-color:var(--accent)}.cell-input.num{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11.5px;font-weight:600}.badge.draft{background:#2c3340;color:var(--text-dim)}.badge.sent{background:#60a5fa26;color:var(--blue)}.badge.partial{background:#f5a62326;color:var(--accent)}.badge.paid{background:#34d39926;color:var(--green)}.badge.open{background:#f5a62326;color:var(--accent)}.badge.accepted{background:#34d39926;color:var(--green)}.badge.declined{background:#f8717126;color:var(--red)}.badge.converted,.badge.invoiced{background:#60a5fa26;color:var(--blue)}.badge.closed{background:#2c3340;color:var(--text-dim)}.badge.ot{background:#f8717126;color:var(--red)}.report-row{display:flex;align-items:center;gap:12px;padding:6px 0}.report-name{width:180px;min-width:120px;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-track{flex:1}.report-bar{height:16px;border-radius:4px;background:var(--blue);opacity:.75;min-width:2px}.report-amount{width:140px;text-align:right;font-variant-numeric:tabular-nums;font-size:13.5px;white-space:nowrap}.report-months{display:flex;gap:6px;align-items:flex-end;height:160px;padding-top:8px}.report-month{flex:1;display:flex;flex-direction:column;height:100%}.report-cols{flex:1;display:flex;gap:2px;align-items:flex-end;justify-content:center}.report-col{width:45%;max-width:22px;border-radius:3px 3px 0 0;min-height:1px}.report-col.inv{background:var(--blue);opacity:.8}.report-col.col{background:var(--green);opacity:.8}.report-month-label{text-align:center;font-size:10.5px;color:var(--text-dim);margin-top:4px}@media(max-width:760px){.report-name{width:110px}.report-amount{width:100px;font-size:12px}.report-month-label{font-size:8.5px}}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-dow{text-align:center;font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;padding:4px 0}.cal-day{min-height:78px;border:1px solid var(--border);border-radius:8px;padding:5px 6px;cursor:pointer;overflow:hidden;transition:border-color .12s}.cal-day:hover{border-color:var(--accent)}.cal-day.empty{border:none;cursor:default}.cal-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal-day.conflict{border-color:var(--red)}.cal-num{font-size:12px;font-weight:600;margin-bottom:3px}.cal-day.conflict .cal-num{color:var(--red)}.cal-chip{font-size:10.5px;border-radius:5px;padding:1px 5px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-chip.show{background:#60a5fa26;color:var(--blue)}.cal-chip.block{background:#f8717126;color:var(--red)}.cal-chip.more{color:var(--text-dim)}@media(max-width:760px){.cal-day{min-height:54px;padding:3px 4px}.cal-chip{display:none}.cal-day:after{content:""}.cal-day:has(.cal-chip.show){background:#60a5fa1f}.cal-day:has(.cal-chip.block){background:#f871711f}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:24px;width:min(680px,92vw);max-height:88vh;overflow-y:auto}.modal h2{margin:0 0 18px;font-size:17px}.empty{text-align:center;color:var(--text-faint);padding:40px 20px;font-size:13.5px}.muted{color:var(--text-dim)}.faint{color:var(--text-faint);font-size:12px}.right{text-align:right}.mono{font-variant-numeric:tabular-nums}.disclaimer{font-size:11.5px;color:var(--text-faint);border-left:3px solid var(--border);padding:6px 12px;margin-top:16px;line-height:1.5}.section-gap{height:8px}a{color:var(--accent)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}::-webkit-scrollbar-track{background:transparent}.topbar,.hamburger,.drawer-backdrop{display:none}@media(max-width:760px){.app{flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:40;height:54px;padding:0 10px;background:var(--bg-panel);border-bottom:1px solid var(--border)}.hamburger{display:flex;align-items:center;justify-content:center;width:42px;height:42px;font-size:20px;background:none;border:none;color:var(--text);cursor:pointer;border-radius:8px}.hamburger:active{background:var(--bg-hover)}.topbar-title{flex:1;font-weight:650;font-size:16px}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:60;width:268px;max-width:84vw;transform:translate(-100%);transition:transform .22s ease;overflow-y:auto;border-right:1px solid var(--border)}.app.nav-open .sidebar{transform:translate(0)}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#00000080}.nav-item{padding:13px 14px;font-size:15.5px}.sidebar-footer{margin-top:24px}.main{padding:16px 14px 64px}.page-header{flex-direction:column;align-items:stretch;gap:12px}.page-header h1{font-size:21px}.page-header>div:last-child{display:flex;gap:8px}.page-header .btn{flex:1}.field input,.field select,.field textarea{font-size:16px;padding:11px 12px}.btn{padding:11px 16px}.btn.small{padding:7px 12px}.modal-overlay{align-items:stretch}.modal{width:100vw;max-width:100vw;min-height:100vh;border-radius:0;padding:18px 16px 44px}.card>table:not(.responsive){display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}table.responsive,table.responsive tbody,table.responsive tr,table.responsive td{display:block;width:100%}table.responsive thead{display:none}table.responsive tr{border:1px solid var(--border);border-radius:10px;margin-bottom:10px;padding:6px 4px 8px;background:var(--bg-panel)}table.responsive tr:last-child td{border:none}table.responsive td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:none;padding:7px 12px;text-align:right}table.responsive td:before{content:attr(data-label);font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;text-align:left}table.responsive td:first-child{display:block;text-align:left;font-size:15.5px;padding-bottom:4px}table.responsive td:first-child:before{display:none}table.responsive td.num{justify-content:flex-end}}
