:root{color-scheme:light;--bg:#f4f6f8;--surface:#fff;--surface-2:#eef2f6;--text:#0f172a;--muted:#5f6f85;--line:#e2e8f0;--brand:#0f172a;--brand-soft:#e8edf3;--success:#15803d;--warning:#b45309;--danger:#b91c1c;--radius:18px;--shadow:0 10px 30px rgba(15,23,42,.07);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}:root[data-theme="dark"]{color-scheme:dark;--bg:#0b1220;--surface:#111827;--surface-2:#1f2937;--text:#f8fafc;--muted:#94a3b8;--line:#273449;--brand:#f8fafc;--brand-soft:#1f2937;--shadow:none}*{box-sizing:border-box}html,body{background:var(--bg)}body{margin:0;color:var(--text);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.app-shell{min-height:100vh;padding-bottom:calc(88px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 10px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--brand);color:var(--bg);font-weight:900}.brand-text strong,.brand-text span{display:block}.brand-text strong{font-size:15px}.brand-text span{font-size:12px;color:var(--muted);margin-top:3px}.icon-btn,.btn{border:0;border-radius:13px;min-height:42px;padding:0 14px;background:var(--surface-2);color:var(--text);font-weight:700}.icon-btn{width:42px;padding:0;display:grid;place-items:center}.btn.primary{background:var(--brand);color:var(--bg)}.btn.danger{background:#fee2e2;color:#991b1b}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}main{width:min(100%,980px);margin:0 auto;padding:16px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:2px 0 16px}.page-head h1{margin:0;font-size:23px}.page-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.grid{display:grid;gap:12px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.kpi .label{color:var(--muted);font-size:12px;font-weight:700}.kpi .value{font-size:23px;font-weight:900;margin-top:6px}.kpi .hint{color:var(--muted);font-size:12px;margin-top:5px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 10px}.section-title h2{margin:0;font-size:16px}.link-btn{border:0;background:none;color:var(--muted);font-weight:800;padding:6px 0}.empty{text-align:center;color:var(--muted);padding:24px 12px}.list{display:grid;gap:10px}.item{display:grid;gap:8px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;text-decoration:none}.item-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.item strong{font-size:14px}.item small{color:var(--muted)}.meta{display:flex;flex-wrap:wrap;gap:7px;color:var(--muted);font-size:12px}.badge{display:inline-flex;align-items:center;min-height:25px;padding:0 9px;border-radius:999px;background:var(--surface-2);font-size:11px;font-weight:800}.badge.success{background:#dcfce7;color:#166534}.badge.warn{background:#ffedd5;color:#9a3412}.badge.danger{background:#fee2e2;color:#991b1b}.money{font-variant-numeric:tabular-nums;font-weight:900}.filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.filter{flex:0 0 auto;border:1px solid var(--line);background:var(--surface);color:var(--muted);min-height:38px;padding:0 12px;border-radius:999px;font-weight:800}.filter.active{background:var(--brand);color:var(--bg);border-color:var(--brand)}.search{width:100%;min-height:44px;border:1px solid var(--line);border-radius:13px;padding:0 13px;background:var(--surface);color:var(--text);margin-bottom:10px}.form{display:grid;gap:14px}.field{display:grid;gap:7px}.field label{font-size:12px;color:var(--muted);font-weight:800}.field input,.field select,.field textarea{width:100%;min-height:46px;border:1px solid var(--line);border-radius:13px;padding:11px 12px;background:var(--surface);color:var(--text);outline:none}.field textarea{min-height:88px;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-actions{display:flex;gap:10px;position:sticky;bottom:82px;z-index:10;padding:10px;margin:8px -10px 0;border-radius:16px;background:var(--bg)}.form-actions .btn{flex:1}.finance{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.finance>div{padding:11px;background:var(--surface-2);border-radius:13px}.finance span{display:block;color:var(--muted);font-size:11px}.finance strong{display:block;margin-top:4px}.status-actions{display:flex;gap:7px;flex-wrap:wrap}.status-actions button{border:1px solid var(--line);background:var(--surface);padding:8px 10px;border-radius:999px;color:var(--text);font-size:12px;font-weight:800}.status-actions button.active{background:var(--brand);color:var(--bg)}.calendar-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day-name{color:var(--muted);font-size:10px;font-weight:800;text-align:center;padding:4px 0}.day{min-height:72px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:7px;overflow:hidden}.day.muted{opacity:.38}.day.today{outline:2px solid var(--brand);outline-offset:-2px}.day-number{font-size:11px;font-weight:900}.day-jobs{display:grid;gap:3px;margin-top:5px}.day-job{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--surface-2);border-radius:6px;padding:3px 5px;font-size:9px;font-weight:800}.bottom-nav{position:fixed;z-index:30;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,980px);display:grid;grid-template-columns:1fr 1fr 74px 1fr 1fr;align-items:end;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}.nav-item{border:0;background:transparent;color:var(--muted);display:grid;justify-items:center;gap:3px;padding:6px 3px;font-size:10px;font-weight:800;text-decoration:none}.nav-item.active{color:var(--text)}.nav-icon{font-size:19px}.add-fab{width:62px;height:62px;margin:-28px auto 0;border-radius:22px;border:5px solid var(--bg);background:var(--brand);color:var(--bg);display:grid;place-items:center;text-decoration:none;font-size:29px;box-shadow:var(--shadow)}.sync{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:700}.sync-dot{width:7px;height:7px;border-radius:50%;background:var(--warning)}.sync.ok .sync-dot{background:var(--success)}.toast{position:fixed;z-index:100;left:50%;bottom:100px;transform:translate(-50%,16px);max-width:calc(100% - 32px);padding:11px 14px;border-radius:12px;background:var(--text);color:var(--bg);opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.notice{padding:12px 13px;border-radius:13px;background:var(--brand-soft);font-size:12px;line-height:1.45}@media(min-width:700px){main{padding:22px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-grid{gap:8px}.day{min-height:108px}}
