:root{--bg: #f6f7f9;--surface: #ffffff;--text: #14181f;--muted: #5d6675;--line: #e1e5ec;--accent: #2459d6;--accent-soft: #dbe6ff;--ok: #14804a;--warn: #a65b00;--bad: #b3261e;--warn-soft: #fff1d6;--bad-soft: #fde4e1;--ok-soft: #d9f3e4;--radius: 12px;--hol-bg: #ffe9a8;--hol-line: #d49a00;--hol-text: #6e4d00;--lv-bg: #d6f0ee;--lv-line: #1f8a85;--lv-text: #0f5a56;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #0f1218;--surface: #181d26;--text: #eef1f6;--muted: #9aa4b5;--line: #2a3140;--accent: #7ba2ff;--accent-soft: #22335f;--ok: #5fd39a;--warn: #f0b04d;--bad: #ff8f86;--hol-bg: #4a3a0c;--hol-line: #e0b13a;--hol-text: #f6d880;--lv-bg: #12312f;--lv-line: #52c4be;--lv-text: #8fe0da;--warn-soft: #3a2c10;--bad-soft: #3d1a17;--ok-soft: #12301f}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:16px;line-height:1.4}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.app{max-width:520px;margin:0 auto;padding:16px 16px calc(32px + env(safe-area-inset-bottom));display:grid;gap:16px}h1{font-size:1.15rem;margin:0;flex:1;text-align:center}h2{font-size:.95rem;margin:0 0 8px}.muted{color:var(--muted);font-size:.9rem;margin:0}.top{display:grid;gap:12px}.nav{display:flex;align-items:center;gap:8px}.icon{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:1.4rem}.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--line);border-radius:10px;padding:3px}.seg button{border:0;background:transparent;padding:8px;border-radius:8px;min-height:40px}.seg button.on{background:var(--surface);font-weight:600;box-shadow:0 1px 2px #0002}.summary{display:flex;gap:16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.summary-text{display:grid;gap:6px;justify-items:start}.summary-text p{margin:0}.ring{width:132px;flex:none}.ring circle{fill:none;stroke-width:10}.ring-track{stroke:var(--line)}.ring-proj{stroke:var(--accent-soft);stroke-linecap:butt}.ring-done{stroke:var(--accent)}.ring-tick{stroke:var(--text);stroke-width:3}.ring-big{font-size:26px;font-weight:700;fill:var(--text)}.ring-small{font-size:14px;font-weight:400;fill:var(--muted)}.ring-label{font-size:10px;fill:var(--muted)}.badge{font-size:.8rem;font-weight:700;padding:3px 10px;border-radius:99px}.badge.met,.badge.on-track{background:var(--ok-soft);color:var(--ok)}.badge.at-risk{background:var(--warn-soft);color:var(--warn)}.badge.unreachable{background:var(--bad-soft);color:var(--bad)}.link{background:none;border:0;padding:6px 0;color:var(--accent);text-align:left;min-height:36px}.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.grid.head{color:var(--muted);font-size:.8rem;text-align:center;margin-bottom:6px}.hint{font-size:.8rem;color:var(--muted);margin:6px 0 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:grid;gap:8px}.checks{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:.9rem}.checks li{padding:8px 10px;border-radius:8px;border-left:4px solid var(--line)}.checks .warn{background:var(--warn-soft);border-color:var(--warn)}.checks .error{background:var(--bad-soft);border-color:var(--bad)}.checks .info{background:var(--bg)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:8px 14px;min-height:44px}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}@media (prefers-color-scheme: dark){.chip.on{color:#0b1020}}.chip small{color:var(--muted);margin-left:4px}.outlook{list-style:none;padding:0;margin:0;display:grid;gap:4px}.outlook-row{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;width:100%;background:none;border:0;padding:8px 0;text-align:left;min-height:44px}.bar{position:relative;height:10px;background:var(--line);border-radius:5px}.bar i{position:absolute;inset:0 auto 0 0;border-radius:5px;background:var(--accent)}.bar i.at-risk{background:var(--warn)}.bar i.unreachable{background:var(--bad)}.bar b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--text)}.v{font-size:.85rem}.v small{color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:8px}.btn{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 16px;min-height:44px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}@media (prefers-color-scheme: dark){.btn.primary{color:#0b1020}}.btn.danger{color:var(--bad);border-color:var(--bad)}.btn:disabled{opacity:.5}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0008;display:flex;align-items:flex-end;justify-content:center;z-index:10}.sheet{background:var(--surface);width:100%;max-width:520px;max-height:90vh;overflow:auto;border-radius:16px 16px 0 0;padding:16px 16px calc(24px + env(safe-area-inset-bottom));display:grid;gap:16px}.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet-head h2{font-size:1.1rem;margin:0}.field{display:grid;gap:6px;font-size:.95rem}.field input[type=range]{width:100%;min-height:32px}.field input[type=date],.field select{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:10px;min-height:44px;min-width:0}.row{display:flex;gap:8px}.row input{flex:1}.tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}.tags li{background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:4px 6px 4px 12px;font-size:.85rem}.tags button{border:0;background:none;font-size:1.1rem;padding:4px 8px}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:99px;font-size:.9rem;opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}.toast:not(:empty){opacity:1}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.cell,.sw{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:0}.cell{aspect-ratio:1;min-height:46px;gap:1px}.sw{width:28px;height:28px;flex:none;border-radius:8px}.cell .num{font-size:.8rem;line-height:1;font-weight:600}.cell .mark{font-size:1.05rem;line-height:1;min-height:1em}.sw .mark{font-size:.85rem;line-height:1}.star{position:absolute;top:1px;right:3px;font-size:.7rem;line-height:1;color:var(--hol-line)}.sw .star{font-size:.55rem;top:0;right:2px}.st-plain{color:var(--text)}.st-weekend{background:transparent;border-style:dashed;color:var(--muted)}.st-office{background:var(--accent);border-color:var(--accent);color:#fff}.st-office.st-planned{background:var(--accent-soft);border:2px dashed var(--accent);color:var(--text)}.st-remote{background:var(--bg);border-color:var(--muted);color:var(--text)}.st-leave{background:var(--lv-bg);border-color:var(--lv-line);color:var(--lv-text)}.st-holiday{background:var(--hol-bg);border:2px solid var(--hol-line);color:var(--hol-text)}.st-holiday.st-weekend{border-style:dashed;opacity:.85}.st-unlogged{background:var(--warn-soft);border-color:var(--warn);color:var(--warn);font-weight:700}.st-suggested{border:2px dotted var(--ok);background:var(--ok-soft);color:var(--ok);font-weight:700}@media (prefers-color-scheme: dark){.st-office{color:#0b1020}}.cell.today:after{content:"";position:absolute;bottom:3px;width:14px;height:3px;border-radius:2px;background:currentColor}.legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 12px;list-style:none;padding:0;margin:12px 0 0;font-size:.85rem;color:var(--muted)}.legend li{display:flex;align-items:center;gap:8px}.day-sheet h2{font-size:1.1rem;margin:0}.day-state{display:flex;align-items:center;gap:10px;margin:0}.opts{display:grid;gap:8px}.opt{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:left;width:100%}.opt[aria-pressed=true]{border:2px solid var(--accent);background:var(--accent-soft);font-weight:600}.opt small{display:block;color:var(--muted);font-weight:400}.app.compact{justify-items:center;text-align:center;padding-top:calc(24px + env(safe-area-inset-top))}.compact .ring{width:190px}.compact-title{flex:none;font-size:1.1rem}.compact-line{margin:0;font-size:1.05rem}.compact-warn{margin:0;padding:8px 12px;border-radius:10px;background:var(--warn-soft);color:var(--warn);font-size:.9rem}.compact-card{width:100%;text-align:left}.next{list-style:none;margin:0;padding:0;display:grid;gap:6px}.next li{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:10px;background:var(--bg)}.next li.today{background:var(--accent-soft);font-weight:600}.next small{color:var(--muted)}.field input[type=text]{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:10px;min-height:44px;min-width:0}
