:root{--bg:#f6f4ef;--fg:#1d2423;--mut:#6a7472;--card:#fff;--line:#dcd8cf;--acc:#2c6b66;--acc-fg:#fff;--hi:#b3402a;--mid:#b07a1c;--lo:#6a7472}
@media (prefers-color-scheme:dark){:root{--bg:#141a19;--fg:#e8ecea;--mut:#98a5a2;--card:#1d2524;--line:#2e3937;--acc:#4aa59c;--acc-fg:#0d1514;--hi:#e0735c;--mid:#d6a24a;--lo:#98a5a2}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}
.hidden{display:none!important}
h1{font-size:1.25rem;margin:0}h2{font-size:1rem;margin:1.4rem 0 .6rem;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
button{font:inherit;border:0;border-radius:8px;padding:.55rem .9rem;background:var(--acc);color:var(--acc-fg);cursor:pointer;min-height:40px}
button.ghost{background:transparent;color:var(--fg);border:1px solid var(--line)}
button.small{padding:.3rem .6rem;min-height:34px;font-size:.9rem}
button:disabled{opacity:.5;cursor:default}
input,textarea{font:inherit;width:100%;padding:.6rem .7rem;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--fg)}
.err{color:var(--hi);min-height:1.2em;margin:.4rem 0}.muted{color:var(--mut);font-size:.9rem}
#login{min-height:100vh;display:grid;place-items:center;padding:16px}
#login-form{width:100%;max-width:340px;display:grid;gap:.8rem}
header{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:2}
#tabs{display:flex;gap:6px;margin-left:auto}
#tabs button{background:transparent;color:var(--fg);border:1px solid var(--line)}
#tabs button.on{background:var(--acc);color:var(--acc-fg);border-color:var(--acc)}
main{max-width:860px;margin:0 auto;padding:0 16px 80px}
.pane{display:none}.pane.on{display:block}
.bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0}
#proactive{margin:0;padding-left:1.2rem}#proactive li{margin:.3rem 0}
.card{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--lo);border-radius:10px;padding:12px 14px;margin:0 0 10px}
.card.alta{border-left-color:var(--hi)}.card.media{border-left-color:var(--mid)}
.card .top{display:flex;justify-content:space-between;gap:8px;font-size:.85rem;color:var(--mut)}
.card .from{font-weight:600;color:var(--fg)}
.card .gist{margin:.3rem 0 .6rem}
.card .sugg{font-size:.92rem;background:var(--bg);border-radius:8px;padding:.5rem .6rem;margin:0 0 .6rem}
.card .actions{display:flex;flex-wrap:wrap;gap:6px}
#log{display:flex;flex-direction:column;gap:10px;padding:14px 0;min-height:50vh}
.m{max-width:88%;padding:.55rem .8rem;border-radius:12px;white-space:pre-wrap;word-wrap:break-word}
.m.u{align-self:flex-end;background:var(--acc);color:var(--acc-fg)}
.m.a{align-self:flex-start;background:var(--card);border:1px solid var(--line)}
.m.t{align-self:flex-start;color:var(--mut);font-size:.85rem;padding:0 .4rem}
#chat-form{position:sticky;bottom:0;background:var(--bg);padding:10px 0 12px;display:grid;gap:8px}
#chat-form .row{display:flex;justify-content:space-between;gap:8px}
@media (max-width:480px){h1{font-size:1.1rem}.m{max-width:96%}}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.chips button{background:transparent;color:var(--fg);border:1px solid var(--line);padding:.3rem .7rem;min-height:34px;font-size:.9rem}
.chips button.on{background:var(--acc);color:var(--acc-fg);border-color:var(--acc)}
.badge{display:inline-block;font-size:.75rem;padding:.05rem .5rem;border-radius:999px;border:1px solid var(--line);color:var(--mut);margin-left:6px}
.badge.ok{color:var(--acc);border-color:var(--acc)}
.card.chiusa{opacity:.72}
.ev{border-bottom:1px solid var(--line);padding:8px 0;font-size:.92rem}
.ev .k{font-weight:600}.ev .t{color:var(--mut);font-size:.8rem}.ev .d{white-space:pre-wrap;word-wrap:break-word}
.nomargin{margin:0}
#cal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.day{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:90px}
.day.today{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.day h3{margin:0 0 6px;font-size:.9rem;text-transform:capitalize;color:var(--mut)}
.day.today h3{color:var(--acc)}
.evn{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;font-size:.9rem;margin:0 0 8px}
.evn .tm{color:var(--mut);white-space:nowrap}.evn .ti{font-weight:600}.evn .lo{grid-column:2;color:var(--mut);font-size:.82rem}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}
.day .none{color:var(--mut);font-size:.85rem}
#tabs{flex-wrap:wrap;justify-content:flex-end}
@media (max-width:640px){header{flex-wrap:wrap}#tabs{margin-left:0;order:3;width:100%;justify-content:flex-start}}
