:root{--bg:#F7F5F0;--card:#FFFFFF;--ink:#1A1A1A;--ink-70:#55524C;--ink-45:#8A867E;--line:#E7E3DA;--accent:#3A9B6E;--accent-dk:#2C7C57;--top:#B8860B;--top-bg:#FBF3DC;--mid:#4A5B6E;--mid-bg:#E8EDF2;--low:#9C5A2A;--low-bg:#F5E8DC;--promote:#1E7A46;--promote-bg:#DCEFE2;--relegate:#C0392B;--relegate-bg:#F7DED9;--radius:16px;--pill:30px;--shadow:0 2px 14px rgba(26,26,26,.06)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Noto Sans JP,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}.num{font-family:Outfit,sans-serif;font-feature-settings:"tnum";letter-spacing:-.01em}a{color:inherit}.appbar{position:sticky;top:0;z-index:50;background:#f7f5f0eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.appbar-inner{max-width:1180px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.brand{display:flex;align-items:baseline;gap:10px}.brand .logo{font-family:Outfit,sans-serif;font-weight:900;font-size:24px;letter-spacing:.02em}.brand .logo b{color:var(--accent)}.brand .sub{font-size:11px;color:var(--ink-45);font-weight:500}.nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}.nav a{font-size:13px;font-weight:700;color:var(--ink-70);padding:8px 15px;border-radius:var(--pill);text-decoration:none}.nav a:hover{background:#eeeae0;color:var(--ink)}.nav a.active{background:var(--ink);color:#fff}.wrap{max-width:1180px;margin:0 auto;padding:26px 20px 80px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);margin-bottom:10px;font-family:Outfit,sans-serif}h1.page{font-size:22px;font-weight:900;margin-bottom:4px}.page-sub{font-size:13px;color:var(--ink-70);margin-bottom:20px}.btn{font-family:inherit;font-weight:800;font-size:15px;cursor:pointer;border:none;border-radius:var(--pill);padding:13px 24px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn-primary{background:var(--ink);color:#fff}.btn-accent{background:var(--accent);color:#fff}.placeholder{border:1.5px dashed var(--line);border-radius:var(--radius);padding:26px;background:#fff}.placeholder .step{font-size:11px;font-weight:800;color:var(--accent-dk);background:var(--promote-bg);padding:3px 10px;border-radius:var(--pill);display:inline-block;margin-bottom:10px}.placeholder p{font-size:13px;color:var(--ink-70)}.login-wrap{max-width:440px;margin:24px auto}.login-hero{text-align:center;margin-bottom:26px}.login-hero .logo{font-family:Outfit,sans-serif;font-weight:900;font-size:52px;letter-spacing:.02em}.login-hero .logo b{color:var(--accent)}.login-hero .tag{font-size:13px;color:var(--ink-70);margin-top:6px}.scan-frame{border:2.5px dashed var(--accent);border-radius:var(--radius);background:linear-gradient(180deg,#f3faf6,#fff);padding:34px 20px;text-align:center;margin-bottom:8px}.card-mock{width:210px;height:130px;margin:0 auto 16px;border-radius:12px;background:linear-gradient(135deg,#2b2b2b,#454545);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:14px;text-align:left;box-shadow:0 6px 26px #1a1a1a2e;position:relative}.card-mock .brand-mini{font-family:Outfit;font-weight:800;font-size:12px;opacity:.75;letter-spacing:.1em}.card-mock .memno-label{font-size:9px;opacity:.6;letter-spacing:.12em}.card-mock .memno{font-family:Outfit;font-weight:800;font-size:26px;letter-spacing:.14em}.corner{position:absolute;width:16px;height:16px;border:2.5px solid var(--accent)}.c-tl{top:-2px;left:-2px;border-right:none;border-bottom:none}.c-tr{top:-2px;right:-2px;border-left:none;border-bottom:none}.c-bl{bottom:-2px;left:-2px;border-right:none;border-top:none}.c-br{bottom:-2px;right:-2px;border-left:none;border-top:none}.scan-frame .hint{font-size:13px;color:var(--ink-70);font-weight:700}.scan-frame .ai-tag{display:inline-block;margin-top:8px;font-size:11px;font-weight:800;color:var(--accent-dk);background:var(--promote-bg);padding:3px 10px;border-radius:var(--pill)}.divider{display:flex;align-items:center;gap:12px;color:var(--ink-45);font-size:12px;font-weight:700;margin:18px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:800;color:var(--ink-70);margin-bottom:6px}.field input{width:100%;font-family:Outfit,sans-serif;font-size:20px;font-weight:700;letter-spacing:.1em;padding:12px 16px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}.field input:focus{outline:none;border-color:var(--accent)}.btn-block{width:100%}.login-note{font-size:11px;color:var(--ink-45);text-align:center;margin-top:16px;line-height:1.7}.form-error{font-size:12px;color:var(--relegate);font-weight:700;background:var(--relegate-bg);padding:10px 14px;border-radius:10px;margin-bottom:12px}.dev-note{max-width:440px;margin:18px auto 0;font-size:11px;color:var(--ink-45);text-align:center;line-height:1.7}.score-wrap{max-width:560px;margin:0 auto}.steps{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.step-item{flex:1;min-width:110px;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:#fff}.step-item .n{font-family:Outfit;font-weight:900;font-size:14px;width:26px;height:26px;border-radius:50%;background:var(--line);color:var(--ink-70);display:flex;align-items:center;justify-content:center;flex-shrink:0}.step-item .t{font-size:12px;font-weight:800}.step-item.done{border-color:var(--accent);background:#f3faf6}.step-item.done .n{background:var(--accent);color:#fff}.step-item.now{border-color:var(--ink)}.step-item.now .n{background:var(--ink);color:#fff}.capture-frame{aspect-ratio:16/10;border-radius:var(--radius);background:#111;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;position:relative;overflow:hidden;border:2px solid var(--ink)}.capture-frame .scanline{position:absolute;left:0;right:0;height:2px;background:var(--accent);box-shadow:0 0 14px 2px #3a9b6ecc;animation:scan 2.4s ease-in-out infinite}@keyframes scan{0%,to{top:14%}50%{top:86%}}.capture-frame .lbl{font-size:13px;font-weight:700;opacity:.85}.capture-frame .brackets{position:absolute;top:18px;right:18px;bottom:18px;left:18px;border:2px dashed rgba(255,255,255,.35);border-radius:10px}.capture-frame img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;right:0;bottom:0;left:0}.read-result{display:grid;grid-template-columns:1fr 1fr;gap:14px}.read-item{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px}.read-item .lb{font-size:11px;font-weight:800;color:var(--ink-45)}.read-item .vl{font-family:Outfit;font-weight:900;font-size:26px;margin-top:2px}.read-item input{width:100%;font-family:Outfit;font-weight:900;font-size:26px;border:none;border-bottom:2px solid var(--line);background:transparent;color:var(--ink);padding:2px 0;margin-top:2px}.read-item input:focus{outline:none;border-color:var(--accent)}.read-item.hero{grid-column:1/-1;border-color:var(--accent);background:#f3faf6}.read-item.hero .vl,.read-item.hero input{font-size:40px;color:var(--accent-dk)}.read-item.full{grid-column:1/-1}.ai-conf{font-size:11px;font-weight:800;color:var(--accent-dk);background:var(--promote-bg);padding:3px 10px;border-radius:var(--pill);display:inline-block;margin-top:8px}.warn{font-size:12px;color:var(--relegate);font-weight:700;margin-top:14px;background:var(--relegate-bg);padding:10px 14px;border-radius:10px}.done-box{text-align:center;padding:30px 20px}.done-box .big{font-family:Outfit;font-weight:900;font-size:56px;color:var(--accent);line-height:1}.done-box .msg{font-weight:800;margin:10px 0 4px}.done-box .sub{font-size:13px;color:var(--ink-70)}@media (max-width:520px){.read-result{grid-template-columns:1fr}}.grid{display:grid;gap:18px}.g-side{grid-template-columns:1.55fr 1fr}.g-3{grid-template-columns:repeat(3,1fr)}@media (max-width:820px){.g-side,.g-3{grid-template-columns:1fr}}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;padding:4px 12px;border-radius:var(--pill);border:1.5px solid}.badge.top{color:var(--top);border-color:var(--top);background:var(--top-bg)}.badge.mid{color:var(--mid);border-color:var(--mid);background:var(--mid-bg)}.badge.low{color:var(--low);border-color:var(--low);background:var(--low-bg)}.status-hero{background:linear-gradient(135deg,#20242a,#0f1113);color:#fff;border-radius:22px;padding:24px;box-shadow:0 6px 26px #1a1a1a1a;position:relative;overflow:hidden}.status-hero .row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.status-hero .nick{font-size:13px;opacity:.7;font-weight:700}.status-hero .rank-big{display:flex;align-items:baseline;gap:6px;margin-top:2px}.status-hero .rank-big .n{font-family:Outfit;font-weight:900;font-size:56px;line-height:.9}.status-hero .rank-big .u{font-size:16px;font-weight:700;opacity:.8}.status-hero .of{font-size:12px;opacity:.6;margin-top:2px}.status-hero .badge{background:#ffffff1a;border-color:#ffffff4d;color:#fff}.gap-strip{margin-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.gap-box{border-radius:12px;padding:12px 14px}.gap-box .lb{font-size:11px;font-weight:800;letter-spacing:.06em;opacity:.9}.gap-box .vl{font-family:Outfit;font-weight:900;font-size:22px;margin-top:2px}.gap-box .vl small{font-size:12px;font-weight:700}.gap-promote{background:#1e7a4647;border:1px solid rgba(87,196,138,.5)}.gap-promote .vl{color:#8be3b0}.gap-relegate{background:#c0392b3d;border:1px solid rgba(230,120,110,.45)}.gap-relegate .vl{color:#f5a79b}.stat-tiles{display:grid;gap:14px}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.tile .lb{font-size:11px;font-weight:800;color:var(--ink-45);letter-spacing:.06em}.tile .vl{font-family:Outfit;font-weight:900;font-size:30px;margin-top:4px}.tile .vl small{font-size:13px;font-weight:700;color:var(--ink-45)}.tile.accent .vl{color:var(--accent)}.course-card{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.course-card .name{font-weight:900;font-size:19px}.course-card .meta{font-size:12px;color:var(--ink-70);margin-top:2px}.mult{font-size:12px;font-weight:800;color:var(--accent-dk);background:var(--promote-bg);padding:4px 12px;border-radius:var(--pill)}.rank-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;font-weight:700;margin:6px 0 14px}.rank-legend span{display:inline-flex;align-items:center;gap:6px;color:var(--ink-70)}.dot{width:11px;height:11px;border-radius:3px;display:inline-block}.dot.p{background:var(--promote)}.dot.r{background:var(--relegate)}.dot.me{background:var(--ink)}.rtable-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line)}.rtable{width:100%;border-collapse:collapse;background:#fff;min-width:420px;font-size:14px}.rtable th{font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--ink-45);text-align:left;padding:11px 14px;border-bottom:2px solid var(--line);text-transform:uppercase;font-family:Outfit}.rtable th.r,.rtable td.r{text-align:right}.rtable td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.rtable tr:last-child td{border-bottom:none}.rtable .pos{font-family:Outfit;font-weight:900;font-size:16px;width:52px}.rtable .nick{font-weight:700}.rtable .gross{font-family:Outfit;font-weight:800;font-size:16px}.rtable .pt{font-family:Outfit;font-weight:700;color:var(--ink-70)}.rtable tr.zone-p{background:var(--promote-bg)}.rtable tr.zone-p .pos{color:var(--promote)}.rtable tr.zone-r{background:var(--relegate-bg)}.rtable tr.zone-r .pos{color:var(--relegate)}.rtable tr.me{background:#1a1a1a;color:#fff}.rtable tr.me td{border-color:#333}.rtable tr.me .pt{color:#bbb}.tag-me{font-size:10px;font-weight:800;background:var(--accent);color:#fff;padding:2px 8px;border-radius:var(--pill);margin-left:8px}.zone-sep td{padding:6px 14px;background:#faf8f3;font-size:11px;font-weight:800;color:var(--ink-45);letter-spacing:.08em;border-bottom:1px solid var(--line)}.zone-sep.p td{color:var(--promote);background:#f0f8f3}.zone-sep.r td{color:var(--relegate);background:#fdf3f1}.league-col .head{padding:12px 16px;border-radius:12px 12px 0 0;color:#fff;font-weight:900;display:flex;justify-content:space-between;align-items:center;font-size:15px}.league-col.top .head{background:var(--top)}.league-col.mid .head{background:var(--mid)}.league-col.low .head{background:var(--low)}.league-col .head .cap{font-size:11px;font-weight:700;opacity:.85;font-family:Outfit}.mini-list{border:1px solid var(--line);border-top:none;border-radius:0 0 12px 12px;overflow:hidden;background:#fff}.mini-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}.mini-row:last-child{border-bottom:none}.mini-row .p{font-family:Outfit;font-weight:900;width:26px;color:var(--ink-45)}.mini-row .nk{flex:1;font-weight:700}.mini-row .g{font-family:Outfit;font-weight:800}.mini-row.zp{background:var(--promote-bg)}.mini-row.zp .p{color:var(--promote)}.mini-row.zr{background:var(--relegate-bg)}.mini-row.zr .p{color:var(--relegate)}.mini-row.me{background:var(--ink);color:#fff}.mini-row.me .p{color:#fff}.season-banner{background:linear-gradient(135deg,#3a9b6e,#2c7c57);color:#fff;border-radius:22px;padding:22px 24px;box-shadow:0 6px 26px #1a1a1a1a;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.season-banner .lb{font-size:12px;font-weight:700;opacity:.85;letter-spacing:.08em}.season-banner .ttl{font-size:24px;font-weight:900;margin-top:2px}.season-banner .rt{text-align:right}.season-banner .rt .lb2{font-size:11px;opacity:.85;font-weight:700}.season-banner .rt .pts{font-family:Outfit;font-weight:900;font-size:34px;line-height:1}.season-banner .rt .pts small{font-size:14px}.prize-line td{padding:8px 14px;font-size:11px;font-weight:800;letter-spacing:.08em;color:#fff;text-align:center}.prize-line.gold td{background:var(--top)}.prize-line.silver td{background:#8a94a0}.prize-line.bronze td{background:var(--low)}.prize-tag{font-size:10px;font-weight:800;padding:2px 8px;border-radius:var(--pill);color:#fff}.prize-tag.gold{background:var(--top)}.prize-tag.silver{background:#8a94a0}.prize-tag.bronze{background:var(--low)}.signage-note{margin-top:22px;font-size:12px;color:var(--ink-70);background:#eeeae0;border-radius:12px;padding:14px 18px;line-height:1.7}.signage-note b{color:var(--ink)}.g-2{grid-template-columns:1fr 1fr}@media (max-width:820px){.g-2{grid-template-columns:1fr}}.rule-block{padding:16px 0;border-bottom:1px solid var(--line)}.rule-block:last-child{border-bottom:none}.rule-block h3{font-size:15px;font-weight:900;margin-bottom:6px;display:flex;align-items:center;gap:10px}.rule-block h3 .k{font-family:Outfit;font-weight:900;color:var(--accent);font-size:13px}.rule-block p{font-size:13px;color:var(--ink-70)}.rule-block p b{color:var(--ink)}.pt-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:12px}.pt-table th,.pt-table td{padding:9px 12px;border:1px solid var(--line);text-align:center}.pt-table th{background:#faf8f3;font-weight:800;font-size:11px;color:var(--ink-70)}.pt-table td.rk{text-align:left;font-weight:700}.pt-table col.ctop{background:var(--top-bg)}.pt-table col.cmid{background:var(--mid-bg)}.pt-table col.clow{background:var(--low-bg)}.hist-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.hist-row:last-child{border-bottom:none}.hist-row .d{font-family:Outfit;font-weight:700;font-size:13px;color:var(--ink-70);width:78px}.hist-row .c{flex:1;font-size:13px;font-weight:700}.hist-row .g{font-family:Outfit;font-weight:900;font-size:18px}.st{font-size:10px;font-weight:800;padding:2px 8px;border-radius:var(--pill)}.st.ai{background:var(--promote-bg);color:var(--accent-dk)}.st.staff{background:var(--mid-bg);color:var(--mid)}
