:root{--bg:#f4f5f4;--surface:#fff;--surface-2:#eceeed;--ink:#1a2226;--ink-2:#46545c;--muted:#6d7b83;--line:#dde2e1;--line-strong:#c3ccca;--accent:#1e5f74;--accent-ink:#14485a;--accent-soft:#e2eef2;--up:#2f7d52;--down:#b03a2e;--attention:#9a6212;--attention-soft:#fbf1e0;--radius:6px;--shadow:0 1px 2px #101e240f, 0 1px 8px #101e240a;--font-jp:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", system-ui, -apple-system, sans-serif;--font-num:ui-monospace, "SF Mono", "Menlo", monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#10171a;--surface:#182126;--surface-2:#1f2b31;--ink:#e2e9e9;--ink-2:#b0bec4;--muted:#8b9aa1;--line:#2a373d;--line-strong:#3b4b52;--accent:#63b6cf;--accent-ink:#86cbe0;--accent-soft:#17323c;--up:#5cbd86;--down:#e08a7c;--attention:#d6a458;--attention-soft:#2e2617;--shadow:0 1px 2px #0000004d}}:root[data-theme=dark]{--bg:#10171a;--surface:#182126;--surface-2:#1f2b31;--ink:#e2e9e9;--ink-2:#b0bec4;--muted:#8b9aa1;--line:#2a373d;--line-strong:#3b4b52;--accent:#63b6cf;--accent-ink:#86cbe0;--accent-soft:#17323c;--up:#5cbd86;--down:#e08a7c;--attention:#d6a458;--attention-soft:#2e2617;--shadow:0 1px 2px #0000004d}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-jp);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.7}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}h1,h2,h3{text-wrap:balance;margin:0;font-weight:700;line-height:1.4}h1{font-size:20px}h2{font-size:15px}h3{font-size:13px}p{margin:0}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:10;align-items:center;gap:16px;height:52px;padding:0 20px;display:flex;position:sticky;top:0}.topbar .brand{letter-spacing:.02em;color:var(--ink);font-weight:700}.topbar .brand span{color:var(--accent-ink)}.topbar nav{gap:4px;margin-left:8px;display:flex}.topbar nav a{border-radius:var(--radius);color:var(--ink-2);padding:5px 11px;font-size:13px;text-decoration:none}.topbar nav a:hover{background:var(--surface-2);text-decoration:none}.topbar nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}.topbar .spacer{flex:1}.topbar .who{color:var(--muted);white-space:nowrap;font-size:13px}.topbar .brand,.topbar nav a{white-space:nowrap}@media (max-width:640px){.topbar{flex-wrap:wrap;gap:10px;height:auto;min-height:48px;padding:7px 12px}.topbar .who{display:none}.topbar nav{margin-left:0}.topbar .spacer{flex:1 0 0}.page{padding:14px 12px}h1{font-size:17px}.card>header,.card>.body,.funnel .f,.task,.feed .item{padding-left:12px;padding-right:12px}}.page{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:20px}.grid-2{grid-template-columns:minmax(280px,360px) 1fr;align-items:start;gap:16px;display:grid}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}@media (max-width:880px){.grid-2{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card>header{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:11px 16px;display:flex}.card>header h2{flex:1}.card>.body{padding:16px}.card>.body.tight{padding:6px 0}.card-note{color:var(--muted);font-size:12px}.roadmap{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.roadmap .m{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;padding:9px 11px}.roadmap .m .no{font-family:var(--font-num);letter-spacing:.08em;color:var(--muted);font-size:11px;display:block}.roadmap .m .theme{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:12px;display:-webkit-box;overflow:hidden}.roadmap .m.done{background:var(--surface-2)}.roadmap .m.done .no:after{content:" 完了";color:var(--up)}.roadmap .m.current{border-color:var(--accent);background:var(--accent-soft);border-width:2px;padding:8px 10px}.roadmap .m.current .no{color:var(--accent-ink);font-weight:700}.roadmap .m.current .theme{color:var(--ink);font-weight:700}@media (max-width:720px){.roadmap{grid-template-columns:repeat(3,1fr)}}.funnel{flex-direction:column;display:flex}.funnel .f{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 96px 116px;align-items:baseline;gap:10px;padding:9px 16px;display:grid}.funnel .f:last-child{border-bottom:none}.funnel .label{color:var(--ink-2);min-width:0;font-size:13px}.funnel .value{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.funnel .value.none{color:var(--muted);font-size:13px;font-weight:400}.funnel .delta{text-align:right;font-size:12px;font-family:var(--font-num);white-space:nowrap}.funnel .delta.up{color:var(--up)}.funnel .delta.down{color:var(--down)}.funnel .delta.flat{color:var(--muted)}.funnel .goal{color:var(--muted);text-align:right;font-size:11.5px;font-family:var(--font-num)}@media (max-width:620px){.funnel .f{grid-template-columns:1fr auto}.funnel .goal{text-align:left;grid-column:1/-1}}.meter{background:var(--surface-2);border-radius:2px;height:3px;margin-top:3px;overflow:hidden}.meter>i{background:var(--accent);height:100%;display:block}.meter>i.behind{background:var(--attention)}.tasks{flex-direction:column;display:flex}.task{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:9px 16px;display:flex}.task:last-child{border-bottom:none}.task button.check{border:1.5px solid var(--line-strong);background:var(--surface);cursor:pointer;color:#0000;border-radius:4px;flex:none;place-items:center;width:18px;height:18px;margin-top:2px;padding:0;font-size:12px;line-height:1;display:grid}.task button.check:hover{border-color:var(--accent)}.task.done button.check{background:var(--accent);border-color:var(--accent);color:#fff}.task .t{flex:1;min-width:0}.task.done .t .title{color:var(--muted);text-decoration:line-through}.task .title{font-size:13.5px}.task .meta{color:var(--muted);font-size:11.5px;font-family:var(--font-num)}.task .meta .overdue{color:var(--down)}.task .pill{background:var(--surface-2);color:var(--muted);border-radius:10px;padding:0 6px;font-size:11px}.feed{flex-direction:column;display:flex}.feed .item{border-bottom:1px solid var(--line);padding:11px 16px}.feed .item:last-child{border-bottom:none}.feed .item .when{color:var(--muted);font-size:11.5px;font-family:var(--font-num)}.feed .item .who{color:var(--accent-ink);font-size:11.5px;font-weight:700}.feed .item .text{white-space:pre-wrap;margin-top:1px;font-size:13.5px}.feed .item .sub{color:var(--ink-2);margin-top:3px;font-size:12px}.feed .item .sub b{color:var(--muted);font-size:11px;font-weight:700}.empty{text-align:center;color:var(--muted);padding:22px 16px;font-size:13px}label.field{color:var(--ink-2);flex-direction:column;gap:4px;font-size:12.5px;display:flex}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],textarea,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;padding:7px 10px}input[type=number]{font-family:var(--font-num)}textarea{resize:vertical;min-height:72px;line-height:1.6}input:disabled,textarea:disabled{background:var(--surface-2);color:var(--muted)}.btn{font:inherit;border-radius:var(--radius);cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;padding:7px 15px;font-size:13px;font-weight:700}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:default;filter:none}.btn.ghost{color:var(--accent-ink);background:0 0}.btn.ghost:hover{background:var(--accent-soft);filter:none}.btn.quiet{background:var(--surface);color:var(--ink-2);border-color:var(--line-strong)}.btn.quiet:hover{background:var(--surface-2);filter:none}.btn.small{padding:4px 10px;font-size:12px}.notice{border-radius:var(--radius);border:1px solid;padding:10px 14px;font-size:13px}.notice.err{background:color-mix(in srgb, var(--down) 8%, var(--surface));border-color:var(--down);color:var(--down)}.notice.ok{background:color-mix(in srgb, var(--up) 8%, var(--surface));border-color:var(--up);color:var(--up)}.notice.attention{background:var(--attention-soft);border-color:var(--attention);color:var(--attention)}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th,table.data td{border-bottom:1px solid var(--line);text-align:left;padding:8px 12px}table.data th{color:var(--muted);white-space:nowrap;background:var(--surface-2);font-size:11.5px;font-weight:700}table.data td.n{font-family:var(--font-num);font-variant-numeric:tabular-nums;text-align:right}table.data tr:last-child td{border-bottom:none}.students{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;display:grid}.scard .top{align-items:baseline;gap:8px;display:flex}.scard .top .name{font-size:16px;font-weight:700}.scard .top .month{font-family:var(--font-num);color:var(--accent-ink);font-size:12px;font-weight:700}.scard .theme{color:var(--ink-2);margin-top:2px;font-size:12.5px}.scard .stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px;display:grid}.scard .stat .k{color:var(--muted);font-size:11px}.scard .stat .v{font-family:var(--font-num);font-size:17px;font-weight:700}.scard .stat .v small{color:var(--muted);font-size:11px;font-weight:400}.tag{border:1px solid;border-radius:10px;padding:1px 7px;font-size:11px;display:inline-block}.tag.attention{color:var(--attention);border-color:var(--attention);background:var(--attention-soft)}.tag.quiet{color:var(--muted);border-color:var(--line-strong)}.tag.ok{color:var(--up);border-color:var(--up);background:color-mix(in srgb, var(--up) 8%, var(--surface))}.spark{width:100%;height:44px;display:block}.spark .area{fill:var(--accent);opacity:.12}.spark .line{fill:none;stroke:var(--accent);stroke-width:1.6px;stroke-linejoin:round}.spark .dot{fill:var(--accent)}.spark .grid{stroke:var(--line);stroke-width:1px}.prose{max-width:62ch}.prose h2{margin:0 0 8px;font-size:18px}.prose h3{margin:20px 0 6px;font-size:14.5px}.prose p{margin:10px 0}.prose ul,.prose ol{margin:10px 0;padding-left:22px}.prose li{margin:5px 0}.prose code{font-family:var(--font-num);background:var(--surface-2);border-radius:3px;padding:1px 5px;font-size:12.5px}.prose pre{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-num);color:var(--ink);margin:10px 0;padding:12px 14px;font-size:12px;line-height:1.7;overflow-x:auto}.prose .step{border-top:1px solid var(--line);grid-template-columns:26px 1fr;gap:10px;padding:12px 0;display:grid}.prose .step:first-of-type{border-top:none}.prose .step>.n{border:1px solid var(--accent);width:24px;height:24px;color:var(--accent-ink);font-family:var(--font-num);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.prose .step>div>b{margin-bottom:2px;display:block}.prose .say{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius) var(--radius) 0;margin:10px 0;padding:8px 14px;font-weight:700}.login-wrap{place-items:center;min-height:100vh;padding:20px;display:grid}.login{width:100%;max-width:380px}.login .lead{color:var(--muted);margin-top:4px;font-size:13px}
