:root{--paper:#f6f7f4;--card:#ffffff;--ink:#1d2433;--muted:#5f6878;--line:#dde1e6;--accent:#0b7f80;--accent-soft:#e0f3f2;--brand:#0FA3A3;--pin:#FF8A3D;--danger:#c23a2b;--danger-soft:#fbe9e6;--warn:#9a6a00;--warn-soft:#fff4d6;--good:#1f7a4d;--good-soft:#e3f4ea;--c1:#2a4fb8;--c2:#c2522b;--c3:#2f7d5b;--c4:#8a3fa0;--f-display:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Noto Sans JP",sans-serif;--f-body:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#14171d;--card:#1c2029;--ink:#e8ebf1;--muted:#a2aab8;--line:#2e3441;--accent:#4fd1cf;--accent-soft:#16312f;--brand:#2cc3c2;--pin:#ff9b57;--danger:#ff8a7a;--danger-soft:#3a2220;--warn:#f0c35a;--warn-soft:#3a3018;--good:#6fd39f;--good-soft:#1b3328;--c1:#8aa6ff;--c2:#f39a72;--c3:#6fcf9f;--c4:#d59ae6;color-scheme:dark}}:root[data-theme=dark]{--paper:#14171d;--card:#1c2029;--ink:#e8ebf1;--muted:#a2aab8;--line:#2e3441;--accent:#4fd1cf;--accent-soft:#16312f;--brand:#2cc3c2;--pin:#ff9b57;--danger:#ff8a7a;--danger-soft:#3a2220;--warn:#f0c35a;--warn-soft:#3a3018;--good:#6fd39f;--good-soft:#1b3328;--c1:#8aa6ff;--c2:#f39a72;--c3:#6fcf9f;--c4:#d59ae6;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.6;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:24px 24px;background-attachment:fixed}.wrap{max-width:560px;margin:0 auto;padding:16px 16px 96px;display:flex;flex-direction:column;gap:14px}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.top{align-items:center;justify-content:space-between;gap:12px}.brand,.top{display:flex}.brand{flex-direction:column;min-width:0}.brand h1{font-size:24px;letter-spacing:.02em;white-space:nowrap;line-height:1.2}.brand span{font-size:13px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mode{display:flex;flex:none;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px}.mode button{border:0;background:transparent;padding:6px 12px;border-radius:999px;font-size:13px;color:var(--muted);white-space:nowrap}.mode button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px}.note{font-size:12.5px;color:var(--muted)}.banner{display:flex;gap:10px;align-items:flex-start;background:var(--warn-soft);border:1px solid transparent;border-radius:12px;padding:10px 12px;font-size:13px}.banner button{margin-left:auto;flex:none}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:5px 12px;font-size:13px;display:inline-flex;align-items:center;gap:6px}.chip[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--paper)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}.summary{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.tile b{display:block;font-family:var(--f-display);font-size:26px;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile small{color:var(--muted);font-size:12px}.tile.alert{border-color:var(--danger);background:var(--danger-soft)}.tile.alert b{color:var(--danger)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto}.tabs button{white-space:nowrap;border:0;background:transparent;padding:8px 12px;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent);font-weight:700}.group h3{font-size:14px;color:var(--muted);margin:8px 2px 6px;font-family:var(--f-body);font-weight:700}.list{display:flex;flex-direction:column;gap:8px}.item{display:grid;grid-template-columns:auto 1fr auto;grid-gap:10px;gap:10px;align-items:start;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--kid,var(--accent));border-radius:12px;padding:10px 12px}.item.done{opacity:.55}.item.done .what{text-decoration:line-through}.item.overdue{border-color:var(--danger);border-left-color:var(--danger);background:var(--danger-soft)}.check{width:28px;height:28px;border-radius:8px;border:2px solid var(--muted);background:transparent;display:grid;place-items:center;padding:0;margin-top:1px}.check[aria-pressed=true]{background:var(--good);border-color:var(--good);color:#fff}.what{font-weight:500}.meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px;font-size:12px;color:var(--muted);align-items:center}.tag{font-size:11.5px;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:700}.tag.t-直し{background:var(--warn-soft);color:var(--warn)}.tag.t-出願,.tag.t-模試,.tag.t-説明会{background:var(--good-soft);color:var(--good)}.tag.check-need{background:var(--danger-soft);color:var(--danger)}.due{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.due.late{color:var(--danger);font-weight:700}.iconbtn{border:0;background:transparent;color:var(--muted);padding:4px 6px;border-radius:8px;font-size:13px}.cal{display:flex;flex-direction:column;gap:6px}.cal-head{display:flex;align-items:center;justify-content:space-between}.cal-head h2{font-size:18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cal-head .btn{padding:4px 14px;font-size:18px;line-height:1}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.cal-wd span{text-align:center;font-size:12px;color:var(--muted)}.cal-cell{position:relative;min-height:62px;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:3px 3px 4px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;font-size:12px}.cal-cell.blank{border:0;background:transparent}.cal-cell.is-today{border-color:var(--accent);background:var(--accent-soft)}.cal-cell.is-sel{outline:2px solid var(--ink);outline-offset:-1px}.cal-num{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.2}.cal-cell.sun .cal-num,.sun{color:var(--danger)}.cal-cell.sat .cal-num,.sat{color:var(--accent)}.cal-ev{font-size:10px;line-height:1.3;padding:0 4px;border-radius:4px;background:var(--good-soft);color:var(--good);font-weight:700;white-space:nowrap}.cal-dots{display:flex;gap:2px;flex-wrap:wrap;align-items:center;margin-top:auto}.cal-dots i{width:7px;height:7px;border-radius:50%;display:block}.cal-dots em{font-style:normal}.cal-dots em,.cal-n{font-size:10px;color:var(--muted)}.cal-n{position:absolute;top:3px;right:4px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--muted);padding:24px 8px;font-size:14px}.btn{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:9px 14px;font-weight:500}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}:root[data-theme=dark] .btn.primary{color:#0f1420}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.primary{color:#0f1420}}.btn:disabled{opacity:.5;cursor:not-allowed}.row{gap:8px;flex-wrap:wrap;align-items:center}.field,.row{display:flex}.field{flex-direction:column;gap:4px;font-size:13px}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:8px 10px}.drop{border:2px dashed var(--line);border-radius:14px;padding:22px 14px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center;background:var(--card)}.drop.over{border-color:var(--accent);background:var(--accent-soft)}.thumbs{display:flex;gap:8px;flex-wrap:wrap}.thumbs img{width:72px;height:72px;object-fit:cover;border-radius:8px}.edit,.thumbs img{border:1px solid var(--line)}.edit{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px;background:var(--card);border-radius:12px;padding:10px}.edit.need{border-color:var(--danger)}.edit .g{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.edit input,.edit select{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:7px 9px}.feed{gap:8px}.feed,.post{display:flex;flex-direction:column}.post{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;gap:6px}.post.unread{border-color:var(--accent)}.post time{font-size:12px;color:var(--muted)}.post img{max-width:100%;border-radius:8px;max-height:220px;object-fit:contain;align-self:flex-start}.spinner{width:18px;height:18px;border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;display:inline-block;vertical-align:middle}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.err{color:var(--danger);font-size:13px}.kid{display:flex;flex-direction:column;gap:12px}.kid h2{font-size:22px}.kidpick{display:flex;gap:8px;flex-wrap:wrap}.kidpick button{flex:1 1;min-width:120px;border:2px solid var(--line);background:var(--card);border-radius:14px;padding:14px;font-family:var(--f-display);font-size:18px;display:flex;align-items:center;gap:8px;justify-content:center}.kidpick button[aria-pressed=true]{border-color:var(--kid);background:var(--card)}.kidtask{display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px;align-items:center;background:var(--card);border:2px solid var(--line);border-left:8px solid var(--kid,var(--accent));border-radius:16px;padding:14px}.kidtask .what{font-size:18px;font-family:var(--f-display)}.kidtask .when{font-size:13px;color:var(--muted)}.big{border:0;border-radius:14px;padding:14px 18px;font-family:var(--f-display);font-size:18px;background:var(--good);color:#fff}.big,.stamp{font-weight:700}.stamp{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--good)}.dlg{position:fixed;inset:0;background:rgba(10,14,22,.5);display:flex;align-items:flex-end;justify-content:center;padding:16px;z-index:10}.dlg .card{width:100%;max-width:520px;display:flex;flex-direction:column;gap:12px}.hidden{display:none!important}.foot{font-size:12px;color:var(--muted);text-align:center}@media (max-width:400px){.summary{grid-template-columns:repeat(3,1fr)}.tile b{font-size:22px}}.auth{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth .card{width:100%;max-width:420px;display:flex;flex-direction:column;gap:14px;padding:22px}.auth h1{font-size:28px}.ok{color:var(--good);font-size:14px}.stack{display:flex;flex-direction:column;gap:12px}.pinpad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.pinpad button{font-size:22px;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--paper)}.pindots{display:flex;gap:10px;justify-content:center;font-size:26px;letter-spacing:6px}.small{font-size:12px}a{color:var(--accent)}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:999px;font-size:14px;z-index:20;max-width:calc(100% - 32px)}.dlg .card{max-height:calc(100% - 32px);overflow:auto}.brand h1 .logo{display:inline-flex;align-items:center;gap:8px}.brand h1 .logo img{width:30px;height:30px;border-radius:7px;display:block}.brand h1 span{font-size:inherit;color:inherit}.brand h1 .shuku{color:var(--brand)}.brand h1 .logo img{width:32px;height:32px}.plans{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.plan{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--paper)}.price{font-family:var(--f-display);font-size:24px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.2}.price small{font-size:12px;color:var(--muted);font-family:var(--f-body);margin-left:2px}@media (max-width:400px){.plans{grid-template-columns:1fr}}.legal{max-width:720px;margin:0 auto;padding:24px 16px 64px}.legal .card{display:flex;flex-direction:column;gap:10px}.legal h1{font-size:22px}.legal h2{font-size:16px;margin-top:10px}.legal table{border-collapse:collapse;width:100%;font-size:14px}.legal td,.legal th{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}.legal th{width:34%;background:var(--paper);font-weight:500}