:root{ color-scheme:dark; --bg:#08090a; --bg-accent:#121826; --panel:#11151d; --panel-soft:#171d27; --panel-raise:#1d2430; --text:#f3f6fb; --muted:#94a3b8; --line:rgba(255,255,255,.08); --line-soft:rgba(255,255,255,.05); --accent:#7c8cff; --accent-soft:rgba(124,140,255,.16); --space:#9f8cff; --home:#4fd1a5; --local:#ffd166; --warn:#ff7b72; --ok:#5ee787; --shadow:0 14px 34px rgba(0,0,0,.26); } *{box-sizing:border-box} html{scroll-behavior:smooth} body{ margin:0; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background: radial-gradient(circle at top left,rgba(124,140,255,.16),transparent 28rem), radial-gradient(circle at top right,rgba(79,209,165,.08),transparent 22rem), var(--bg); color:var(--text); } a{color:inherit} main{max-width:1380px;margin:0 auto;padding:18px} .hero, .status div, .metric, .panel, .card, .compact-card, .focus-card, .summary-card, .paperless-card, .forecast-card, .panel-item, .task-card, .collapsible{ background:rgba(17,21,29,.92); border:1px solid var(--line); box-shadow:var(--shadow); } .hero{ display:grid; grid-template-columns:minmax(0,1.25fr) 430px; gap:14px; align-items:stretch; border-radius:24px; padding:16px 18px; margin-bottom:16px; } .eyebrow{ margin:0 0 6px; color:#b7c0ff; text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; } h1{ margin:0; font-size:clamp(2rem,4.6vw,3.5rem); line-height:.94; letter-spacing:-.04em; } .sub{ margin:10px 0 0; color:var(--muted); font-size:.97rem; line-height:1.45; max-width:70ch; } .hero-actions{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:12px; } .reset-btn, .feedback-btn, .paperless-btn{ appearance:none; background:rgba(255,255,255,.03); border:1px solid var(--line); border-radius:999px; color:var(--text); cursor:pointer; font:inherit; } .reset-btn{padding:7px 11px} .reset-btn:hover, .feedback-btn:hover, .paperless-btn:hover{border-color:rgba(124,140,255,.55)} .status, .metrics{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; } .metrics.metrics-compact{grid-template-columns:repeat(2,minmax(0,1fr))} .status div, .metric{ border-radius:18px; padding:11px 12px; min-width:0; } .status strong, .metric strong{display:block} .status strong{font-size:1rem} .metric{ min-height:78px; border-top:3px solid var(--accent); } .metric strong{ margin:6px 0 4px; font-size:1.12rem; line-height:1.08; } .metric span, .metric em, .status span, .meta, .empty, footer, .muted{ color:var(--muted); } .metric em{font-style:normal;font-size:.78rem} .metric.weather{border-top-color:var(--local)} .metric.space{border-top-color:var(--space)} .metric.ok{border-top-color:var(--ok)} .metric.warn{border-top-color:var(--warn)} .dashboard-shell{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(320px,.9fr); gap:14px; align-items:start; } .primary-column, .secondary-column{ display:flex; flex-direction:column; gap:12px; min-width:0; } .collapsible{ border-radius:20px; overflow:hidden; } .collapsible > summary{ list-style:none; cursor:pointer; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:12px 14px; } .collapsible > summary::-webkit-details-marker{display:none} .collapsible-heading{min-width:0} .collapsible-heading h2, .panel h2, section h2{ margin:0; font-size:1.02rem; line-height:1.15; letter-spacing:-.02em; } .collapsible-heading p, section header p{ margin:4px 0 0; color:var(--muted); font-size:.83rem; line-height:1.32; } .collapse-indicator{ color:var(--muted); transition:transform .16s ease; transform-origin:center; } .details[open] .collapse-indicator, .collapsible[open] .collapse-indicator{transform:rotate(180deg)} .collapsible-body{padding:0 14px 14px} .focus-grid, .summary-grid, .today, .news-list, .grid, .task-grid, .forecast-grid{ display:grid; gap:10px; } .focus-grid, .summary-grid, .forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr))} .today{grid-template-columns:1fr} .news-list{grid-template-columns:repeat(2,minmax(0,1fr))} .grid{grid-template-columns:repeat(2,minmax(0,1fr))} .task-grid{grid-template-columns:1fr} .focus-card, .summary-card, .panel, .compact-card, .paperless-card, .forecast-card, .panel-item, .task-card, .card{ border-radius:16px; } .focus-card, .summary-card{padding:12px} .focus-card{border-top:3px solid var(--accent)} .focus-card.local{border-top-color:var(--local)} .focus-card.ok{border-top-color:var(--ok)} .focus-card.warn{border-top-color:var(--warn)} .focus-kicker{ display:inline-block; margin-bottom:8px; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:#b7c0ff; } .focus-card h3, .summary-card h3{margin:0 0 5px;font-size:.93rem} .focus-card strong{display:block;font-size:1rem;line-height:1.2;margin-bottom:5px} .focus-card p, .summary-card p, .summary-card li{margin:0;color:#d5deeb;font-size:.88rem;line-height:1.34} .summary-card ul{margin:0;padding-left:18px} .summary-card li+li{margin-top:6px} .hermes-metrics{margin-bottom:10px} .panel{padding:12px} .panel ul{list-style:none;padding-left:0;margin:0;display:grid;gap:8px} .panel-item{ padding:9px 10px; background:rgba(255,255,255,.03); border-color:var(--line-soft); } .panel-item-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline} .panel-item-top strong{font-size:.82rem} .panel-item-title{margin-top:3px;font-weight:600;color:#dce5f6;font-size:.93rem;line-height:1.2} .panel-item-body{ margin-top:4px; color:#c7d1e2; font-size:.84rem; line-height:1.28; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; } .panel .empty{padding:6px 2px} .donetick-panel{padding:12px} .task-card{ padding:9px 10px; background:rgba(255,255,255,.035); border-color:var(--line-soft); min-width:0; } .task-top{display:flex;justify-content:space-between;gap:6px;align-items:center;margin-bottom:3px} .task-state-dot{width:8px;height:8px;border-radius:999px;background:var(--muted);flex:0 0 auto;box-shadow:0 0 0 2px rgba(255,255,255,.03)} .task-card.overdue .task-state-dot{background:var(--warn)} .task-card.today .task-state-dot{background:var(--local)} .task-card.tomorrow .task-state-dot, .task-card.upcoming .task-state-dot{background:#8ecae6} .task-card.nodue .task-state-dot{background:#6c7a90} .task-due{font-size:.74rem;font-weight:700;line-height:1.1;color:#dde6f6} .task-assignee{font-size:.68rem;padding:2px 7px;border-radius:999px;background:var(--panel-raise);color:var(--muted)} .task-name{ font-size:.93rem; font-weight:700; line-height:1.14; color:var(--text); margin-bottom:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; } .task-subtitle{ font-size:.73rem; line-height:1.14; color:var(--muted); display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; } .task-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px} .task-chip{display:inline-block;padding:2px 7px;border-radius:999px;color:#fff;font-size:.67rem;font-weight:700;line-height:1.05} .task-card.overdue{border-color:rgba(255,123,114,.45)} .task-card.today{border-color:rgba(255,209,102,.42)} .task-card.tomorrow{border-color:rgba(142,202,230,.35)} .compact-card, .card{ padding:10px 11px; border-left:3px solid var(--accent); } .compact-card.astronomy,.card.astronomy{border-left-color:var(--space)} .compact-card.homelab,.compact-card.smart_home,.compact-card.radio, .card.homelab,.card.smart_home,.card.radio{border-left-color:var(--home)} .compact-card.local,.card.local{border-left-color:var(--local)} .compact-card.security,.card.security{border-left-color:var(--warn)} .compact-card .meta, .card .meta{ margin-bottom:5px; display:flex; flex-wrap:wrap; gap:6px; font-size:.72rem; } .compact-card .meta span, .card .meta span{ display:inline-flex; align-items:center; padding:2px 7px; border-radius:999px; background:rgba(255,255,255,.035); border:1px solid var(--line-soft); } .compact-card h3, .card h3{ margin:0 0 4px; font-size:.94rem; line-height:1.2; } .compact-card p, .card p{ margin:0; color:#c7d1e2; font-size:.83rem; line-height:1.28; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; } .compact-card:nth-child(n+7){display:none} .feedback{display:flex;gap:6px;justify-content:flex-end;margin-top:7px} .feedback-btn{padding:2px 8px;background:transparent} .feedback-btn[aria-pressed='true']{font-weight:700} .feedback-btn.active-up{border-color:rgba(94,231,135,.65);background:rgba(94,231,135,.12);color:#c8ffd9} .feedback-btn.active-down{border-color:rgba(255,107,107,.6);background:rgba(255,107,107,.12);color:#ffd9d9} .topic-liked{box-shadow:0 0 0 1px rgba(94,231,135,.45),var(--shadow)} .forecast-panel{padding:0} .forecast-card{padding:11px 12px;background:rgba(255,255,255,.035)} .forecast-day{color:#b7c0ff;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em} .forecast-card strong{font-size:.95rem} .forecast-card em{font-style:normal;color:var(--muted);font-size:.82rem} .badge{ display:inline-block; margin-left:.35rem; padding:2px 7px; border-radius:999px; background:var(--panel-raise); color:#b7c0ff; font-size:.78rem; } .paperless-grid{display:grid;grid-template-columns:1fr;gap:8px} .paperless-card{padding:10px 11px;border-left:3px solid var(--accent)} .paperless-card.warn{border-left-color:var(--warn)} .paperless-card.info{border-left-color:var(--local)} .paperless-card.ok{border-left-color:var(--ok)} .paperless-card.needs-attention{box-shadow:0 0 0 1px rgba(255,209,102,.25),var(--shadow)} .paperless-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start} .paperless-card h4{margin:.3rem 0;font-size:.92rem;line-height:1.18} .paperless-card .summary{ margin:.2rem 0; color:#d7e3f5; font-size:.84rem; line-height:1.26; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; } .paperless-meta, .paperless-reason{margin:.2rem 0;color:var(--muted);font-size:.76rem;line-height:1.18} .paperless-card .link{display:inline-block;color:#b7c0ff;text-decoration:none} .paperless-card .link:hover{text-decoration:underline} .paperless-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end} .paperless-btn{padding:5px 8px} .paperless-btn.good{border-color:rgba(94,231,135,.45);color:#c8ffd9} .paperless-acked, .paperless-more{margin-top:10px;border-top:1px solid var(--line-soft);padding-top:10px} .paperless-acked summary, .paperless-more summary{cursor:pointer;color:var(--muted);font-size:.84rem} .urgency{font-weight:700} .urgency.warn{color:var(--warn)} .urgency.info{color:var(--local)} .urgency.ok{color:var(--ok)} section header{display:flex;justify-content:space-between;gap:12px;align-items:end} section header p{margin:0} ul{margin:0} footer{ margin:14px 0 6px; padding:0 2px; font-size:.8rem; line-height:1.4; } footer p{margin:.25rem 0} .dashboard-toast{ position:fixed; right:16px; bottom:16px; z-index:1000; max-width:min(420px,calc(100vw - 24px)); background:rgba(8,9,10,.97); border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:14px; padding:12px 14px; color:var(--text); box-shadow:0 16px 40px rgba(0,0,0,.36); } .dashboard-toast[hidden]{display:none} .toast-action{margin-left:10px;background:transparent;border:0;color:#b7c0ff;font:inherit;font-weight:700;cursor:pointer;padding:0} @media (max-width:1180px){ .dashboard-shell{grid-template-columns:1fr} .secondary-column{order:-1} .focus-grid,.summary-grid,.forecast-grid,.metrics.metrics-compact{grid-template-columns:repeat(2,minmax(0,1fr))} } @media (max-width:920px){ .hero{grid-template-columns:1fr} .status,.metrics,.metrics.metrics-compact,.focus-grid,.summary-grid,.news-list,.grid,.forecast-grid{grid-template-columns:1fr} } @media (max-width:720px){ main{padding:12px} .hero{padding:14px} .collapsible > summary{padding:11px 12px} .collapsible-body{padding:0 12px 12px} .paperless-head{display:block} .paperless-actions{justify-content:flex-start;margin-top:8px} section header{display:block} }