:root{color-scheme:light;--bg: #f6f6f4;--surface: #fcfcfb;--surface-2: #f0efec;--border: #e3e2de;--text: #0b0b0b;--text-2: #52514e;--muted: #7c7b76;--accent: #2a78d6;--accent-soft: #e6effa;--series-1: #2a78d6;--good: #1a7f37;--warn: #b26a00;--bad: #c62828;--bad-soft: #fdecec;--warn-soft: #fff4e0;--grid: #ebeae6;--radius: 12px;--shadow: 0 1px 2px rgb(0 0 0 / .04), 0 2px 8px rgb(0 0 0 / .04);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #111110;--surface: #1a1a19;--surface-2: #232321;--border: #2e2e2b;--text: #f0efec;--text-2: #c3c2b7;--muted: #8f8e86;--accent: #3987e5;--accent-soft: #1c2a3c;--series-1: #3987e5;--good: #4cc26a;--warn: #e0a030;--bad: #f06b6b;--bad-soft: #3a1d1d;--warn-soft: #3a2c14;--grid: #2a2a28;--shadow: none}}:root[data-theme=dark]{color-scheme:dark;--bg: #111110;--surface: #1a1a19;--surface-2: #232321;--border: #2e2e2b;--text: #f0efec;--text-2: #c3c2b7;--muted: #8f8e86;--accent: #3987e5;--accent-soft: #1c2a3c;--series-1: #3987e5;--good: #4cc26a;--warn: #e0a030;--bad: #f06b6b;--bad-soft: #3a1d1d;--warn-soft: #3a2c14;--grid: #2a2a28;--shadow: none}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.6rem;font-weight:650}h2{font-size:1.05rem;font-weight:600}h3{font-size:.95rem;font-weight:600}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:.85rem}.pos{color:var(--good)}.neg{color:var(--bad)}.app{display:grid;grid-template-columns:228px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:20px 12px;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;gap:4px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.1rem;padding:4px 10px 18px}.brand img{width:28px;height:28px}.nav-link{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:9px;color:var(--text-2);font-weight:500}.nav-link:hover{background:var(--surface-2);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--accent)}.nav-link svg{width:19px;height:19px;flex:none}.sidebar .spacer{flex:1}.sidebar .who{font-size:.8rem;color:var(--muted);padding:8px 12px;word-break:break-all}.main{padding:28px 32px 64px;max-width:1240px;width:100%}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px;flex-wrap:wrap}.page-head .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}@media (max-width: 820px){.app{grid-template-columns:1fr}.sidebar{position:fixed;bottom:0;top:auto;left:0;right:0;height:auto;z-index:20;flex-direction:row;justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-right:none;border-top:1px solid var(--border)}.brand,.sidebar .spacer,.sidebar .who,.sidebar .logout{display:none}.nav-link{flex-direction:column;gap:2px;padding:6px 4px;font-size:.68rem;flex:1;text-align:center}.main{padding:18px 16px 96px}}.grid{display:grid;gap:16px}.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))}.grid.auto{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}@media (max-width: 1000px){.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.span-2{grid-column:span 2}@media (max-width: 640px){.span-2{grid-column:auto}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.card-head a{font-size:.85rem}.stat-label{font-size:.82rem;color:var(--text-2);font-weight:500}.stat-value{font-size:1.7rem;font-weight:650;margin-top:4px;letter-spacing:-.01em}.stat-sub{font-size:.82rem;color:var(--muted);margin-top:4px}button,.btn{font:inherit;font-weight:550;font-size:.9rem;border-radius:9px;padding:8px 14px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}button:hover,.btn:hover{background:var(--surface-2);text-decoration:none}button:disabled{opacity:.55;cursor:default}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover,.btn.primary:hover{filter:brightness(1.07)}button.danger{color:var(--bad)}button.ghost{border-color:transparent;background:transparent}button.ghost:hover{background:var(--surface-2)}button.sm{padding:5px 10px;font-size:.82rem}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:8px 10px;min-width:0}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}textarea{width:100%;resize:vertical}label.field{display:flex;flex-direction:column;gap:5px;font-size:.85rem;color:var(--text-2);font-weight:500}.form-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.form-row>*{flex:1 1 140px}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden}.segmented button{border:none;border-radius:0;padding:7px 12px}.segmented button.on{background:var(--accent-soft);color:var(--accent)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;font-weight:550;color:var(--text-2);font-size:.8rem;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:9px 10px;border-bottom:1px solid var(--grid);vertical-align:top}td.r,th.r{text-align:right}tr:last-child td{border-bottom:none}.list{display:flex;flex-direction:column}.list-item{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--grid)}.list-item:last-child{border-bottom:none}.pill{font-size:.75rem;padding:2px 8px;border-radius:99px;background:var(--surface-2);color:var(--text-2);white-space:nowrap}.dot{width:9px;height:9px;border-radius:50%;flex:none}.banner{padding:10px 14px;border-radius:10px;font-size:.9rem;margin-bottom:14px;display:flex;gap:10px;align-items:flex-start}.banner.error{background:var(--bad-soft);color:var(--bad)}.banner.warn{background:var(--warn-soft);color:var(--warn)}.banner.info{background:var(--accent-soft);color:var(--text)}.empty{text-align:center;padding:28px 12px;color:var(--muted)}.empty h3{color:var(--text);margin-bottom:6px}.progress{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden}.progress>div{height:100%;background:var(--series-1);border-radius:99px}.progress.over>div{background:var(--bad)}.barlist{display:flex;flex-direction:column;gap:10px}.barlist-row{display:grid;grid-template-columns:minmax(90px,160px) 1fr auto;gap:10px;align-items:center;font-size:.88rem}.barlist-row .bar{height:10px;background:var(--surface-2);border-radius:4px}.barlist-row .bar>div{height:100%;background:var(--series-1);border-radius:4px;min-width:2px}.barlist-row .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}.chart{position:relative}.chart svg{display:block;width:100%;overflow:visible}.chart .tooltip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 9px;font-size:.8rem;box-shadow:0 4px 14px #0000001f;white-space:nowrap;transform:translate(-50%,-100%);margin-top:-10px}.axis text{fill:var(--muted);font-size:11px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:grid;place-items:center;z-index:50;padding:16px}.modal{background:var(--surface);border-radius:14px;padding:20px;width:min(560px,100%);max-height:90vh;overflow:auto;border:1px solid var(--border)}.modal h2{margin-bottom:14px}.modal .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login .card{width:min(400px,100%);text-align:center;padding:34px 28px}.login img{width:54px;height:54px;margin-bottom:12px}.login p{color:var(--text-2)}.mail{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:16px;min-height:70vh}.mail-list{padding:0;overflow:hidden;display:flex;flex-direction:column}.mail-list .scroller{overflow-y:auto;max-height:calc(100vh - 210px)}.mail-row{display:block;width:100%;text-align:left;border:none;border-bottom:1px solid var(--grid);border-radius:0;padding:11px 14px;background:none;font-weight:400;white-space:normal}.mail-row:hover{background:var(--surface-2)}.mail-row.sel{background:var(--accent-soft)}.mail-row .top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.mail-row .from{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-row.unread .from,.mail-row.unread .subj{font-weight:700}.mail-row .subj,.mail-row .snip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.87rem}.mail-row .snip{color:var(--muted)}.mail-row .acct{font-size:.72rem;color:var(--muted)}.mail-view{display:flex;flex-direction:column;min-height:0}.mail-view iframe{width:100%;flex:1;min-height:60vh;border:1px solid var(--border);border-radius:10px;background:#fff}.mail-view pre{white-space:pre-wrap;font-family:inherit;margin:0}@media (max-width: 820px){.mail{grid-template-columns:1fr}.mail.reading .mail-list{display:none}.mail:not(.reading) .mail-view{display:none}}.cal-layout{display:grid;grid-template-columns:1fr 260px;gap:16px}@media (max-width: 1000px){.cal-layout{grid-template-columns:1fr}}.fc{--fc-border-color: var(--border);--fc-page-bg-color: var(--surface);--fc-neutral-bg-color: var(--surface-2);--fc-today-bg-color: var(--accent-soft);--fc-button-bg-color: var(--surface);--fc-button-border-color: var(--border);--fc-button-text-color: var(--text);--fc-button-hover-bg-color: var(--surface-2);--fc-button-hover-border-color: var(--border);--fc-button-active-bg-color: var(--accent-soft);--fc-button-active-border-color: var(--accent);--fc-list-event-hover-bg-color: var(--surface-2);font-size:.88rem}.fc .fc-button{font-weight:550;text-transform:capitalize;box-shadow:none!important}.fc .fc-button-primary:not(:disabled).fc-button-active{color:var(--accent)}.fc .fc-toolbar-title{font-size:1.15rem;font-weight:650}.fc .fc-col-header-cell-cushion,.fc .fc-daygrid-day-number{color:var(--text-2)}.fc-event{cursor:pointer}@media (max-width: 640px){.fc .fc-toolbar{flex-direction:column;gap:8px}}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
