:root{--bg:#f2f5f3;--ink:#16211d;--muted:#56645e;--line:#d3dcd7;--accent:#0b5d4e;--ai:#fff;--card:#e8eeea;--today:#cfe6dd;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111815;--ink:#e6eee9;--muted:#9aaba3;--line:#27342e;--accent:#6fd0b8;--ai:#0c1512;--card:#18221e;--today:#24433a}}
:root[data-theme=dark]{--bg:#111815;--ink:#e6eee9;--muted:#9aaba3;--line:#27342e;--accent:#6fd0b8;--ai:#0c1512;--card:#18221e;--today:#24433a}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:17px;line-height:1.6}
.wrap{max-width:720px;margin:0 auto;padding:0 20px}
header{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
header .name{font-weight:500;color:var(--ink);text-decoration:none}
nav{display:flex;gap:14px;align-items:center;font-size:15px}nav a{color:var(--muted);text-decoration:none}
button{font:inherit;cursor:pointer}
button.theme{font-size:14px;background:none;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 12px}
h1.t{font-family:Newsreader,Georgia,serif;font-weight:400;font-size:clamp(32px,8vw,44px);line-height:1.1;margin:36px 0 8px}
h2{font-family:Newsreader,Georgia,serif;font-weight:400;font-size:22px;margin:0 0 12px}
.lead{color:var(--muted);margin:0 0 24px}
.card{background:var(--card);border-radius:12px;padding:16px;margin-bottom:16px}
.row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
input,select,textarea{font:inherit;font-size:16px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:9px 11px;min-width:0}
.row>*{flex:1 1 110px}textarea{width:100%;min-height:120px;resize:vertical}
.b{background:var(--accent);color:var(--ai);border:0;border-radius:8px;padding:9px 16px;font-weight:500}
.b.g{background:none;color:var(--accent);border:1px solid var(--line)}
.out{margin-top:10px;font-size:18px;min-height:1.6em}.out small,.m{color:var(--muted);font-size:14px}.err{color:#d4513f}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.cal .h{font-size:12px;color:var(--muted);padding:4px 0}
.cal .c{background:var(--bg);border-radius:8px;min-height:54px;padding:4px 2px;font-size:17px;line-height:1.2}
.cal .c small{display:block;color:var(--muted);font-size:11px}.cal .c.t{background:var(--today);outline:2px solid var(--accent)}
.cal .c.e{border:1px solid var(--accent)}.cal .c.s{color:#d4513f}
.tbl{width:100%;border-collapse:collapse;font-size:15px}.tbl th,.tbl td{text-align:right;padding:7px 4px;border-bottom:1px solid var(--line)}
.tbl th:first-child,.tbl td:first-child{text-align:left}.tbl th{color:var(--muted);font-weight:400;font-size:13px}
footer{padding:28px 0 40px;border-top:1px solid var(--line);font-size:14px;color:var(--muted);margin-top:24px}
