:root{--color-text:#203047;--color-muted:#5b6b80;--color-bg:#f5f7fa;--color-surface:#fff;--color-border:#d9e0e8;--color-primary:#245d83;--color-primary-hover:#1c4a69;--color-danger:#b42318;--color-danger-bg:#fef3f2;--color-ok:#1f7a4d;--radius:.5rem;color:var(--color-text);background:var(--color-bg);font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.6}*{box-sizing:border-box}body,h1,h2,h3,p{margin:0}[hidden]{display:none!important}.muted{color:var(--color-muted)}.brand{align-items:center;gap:.5rem;display:flex}.brand-mark{background:var(--color-primary);color:#fff;border-radius:.375rem;place-items:center;width:2rem;height:2rem;font-weight:700;display:grid}.brand-name{font-size:1.05rem;font-weight:700}.btn{border-radius:var(--radius);font:inherit;cursor:pointer;border:1px solid #0000;padding:.625rem 1rem;font-weight:600}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-block{width:100%}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-bg)}.btn-link{color:var(--color-primary);background:0 0;font-weight:500}.btn:focus-visible,input:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.auth{place-content:center;gap:1rem;min-height:100vh;padding:1.5rem 1rem;display:grid}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;width:min(26rem,100vw - 2rem);padding:2rem;box-shadow:0 4px 16px #2030470f}.auth-card .brand{margin-bottom:1.5rem}.auth-title{font-size:1.375rem}.auth-lead{color:var(--color-muted);margin:.25rem 0 1.25rem;font-size:.9rem}.auth-footer{text-align:center;max-width:26rem;color:var(--color-muted);font-size:.8rem}.alert{border-radius:var(--radius);background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #fecdca;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.form{gap:1rem;display:grid}.field{gap:.375rem;display:grid}.field-label{font-size:.875rem;font-weight:600}.field input{border:1px solid var(--color-border);border-radius:var(--radius);width:100%;font:inherit;background:var(--color-surface);padding:.625rem .75rem}.rules{color:var(--color-muted);flex-wrap:wrap;gap:.25rem .75rem;margin:-.5rem 0 0;padding:0;font-size:.8rem;list-style:none;display:flex}.rules li:before{content:"○ "}.rules li.ok{color:var(--color-ok)}.rules li.ok:before{content:"✓ "}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.topbar-user{align-items:center;gap:.75rem;display:flex}.topbar-email{color:var(--color-muted);overflow-wrap:anywhere;font-size:.875rem}.page{max-width:64rem;margin:0 auto;padding:2rem 1.5rem 3rem}.welcome{margin-bottom:1.5rem}.welcome h1{font-size:1.5rem}.grid{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:1.5rem;display:grid}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;padding:1.5rem}.panel h2{margin-bottom:1rem;font-size:1rem}.profile{gap:.75rem;margin:0;display:grid}.profile dt{color:var(--color-muted);font-size:.8rem}.profile dd{overflow-wrap:anywhere;margin:0}.note{color:var(--color-muted);margin-top:1rem;font-size:.85rem}.menu{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.menu-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem}.menu-card[aria-disabled=true]{background:var(--color-bg)}.menu-card-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.menu-card h3{font-size:1rem}.menu-card p{color:var(--color-muted);margin-top:.25rem;font-size:.875rem}.badge{background:var(--color-border);color:var(--color-muted);white-space:nowrap;border-radius:999px;padding:.125rem .5rem;font-size:.75rem}@media (width<=720px){.grid{grid-template-columns:minmax(0,1fr)}.topbar{padding:.75rem 1rem}.page{padding:1.5rem 1rem 2rem}.auth-card{padding:1.5rem}}
