:root{--bg:var(--tg-theme-bg-color,#f5f6f8);--text:var(--tg-theme-text-color,#18202a);--card:var(--tg-theme-secondary-bg-color,#fff);--accent:var(--tg-theme-button-color,#2787f5);--muted:#8b95a5;--blue:#2787f5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}main{max-width:620px;margin:auto;padding:18px}header,.monthbar{display:flex;align-items:center;justify-content:space-between}h1{font-size:24px;margin:2px 0 18px}h2{font-size:18px}small{color:var(--muted)}button,select,textarea{font:inherit;border:0;border-radius:12px;padding:12px;background:var(--accent);color:#fff}button{cursor:pointer}.ghost{background:var(--card);color:var(--accent)}.monthbar button{font-size:28px;background:transparent;color:var(--text);padding:5px 16px}.week,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.week{color:var(--muted);text-align:center;font-size:12px;margin:12px 0 7px}.day{aspect-ratio:1;border-radius:12px;background:var(--card);color:var(--text);display:flex;align-items:center;justify-content:center;position:relative;border:2px solid transparent}.day.empty{visibility:hidden}.day.assigned{background:#d9e8fb;color:var(--text)}.day.mine{background:var(--blue);color:#fff}.day.selected{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent)}.legend{display:flex;gap:14px;margin:14px 2px;color:var(--muted);font-size:12px}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.legend .assigned{background:#9bbde7}.legend .mine{background:var(--blue)}.card{background:var(--card);border-radius:16px;padding:15px;margin:12px 0}.card h3{margin-top:0}.person{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid color-mix(in srgb,var(--muted) 20%,transparent)}.person button{padding:7px 11px}.person button.remove{background:#718096}footer{display:grid;gap:9px;margin-top:18px}footer p{text-align:center;min-height:20px;color:var(--muted)}.hidden{display:none!important}dialog{border:0;border-radius:18px;background:var(--card);color:var(--text);width:min(90%,420px)}dialog form{display:grid;gap:12px}dialog select,dialog textarea{background:var(--bg);color:var(--text)}textarea{height:80px;resize:none}
