/* Shared base + components (mobile-first) */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:400 1rem/1.6 var(--font-body)}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;line-height:1.25;margin:0 0 var(--space-1)}
p{margin:0 0 var(--space-2)}a{color:var(--red-dark)}img{max-width:100%}
:focus-visible{outline:3px solid var(--gold-dark);outline-offset:2px}
.ic{display:inline-flex;width:20px;height:20px;flex-shrink:0}
.ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.muted{color:var(--muted)}.hide{display:none!important}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.65rem 1.4rem;border:1.5px solid transparent;border-radius:12px;font:600 1rem var(--font-body);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,transform .1s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--red);color:#fff;box-shadow:var(--shadow-soft)}
.btn-primary:hover{background:var(--red-dark)}
.btn-secondary{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-secondary:hover{border-color:var(--red);color:var(--red-dark)}
.btn-gold{background:var(--gold);color:var(--ink)}.btn-gold:hover{background:#e8b500}
.btn-danger{background:#fff;color:var(--error);border-color:#f1c5c6}.btn-danger:hover{background:var(--error-tint)}
.btn-sm{min-height:40px;padding:.4rem .9rem;font-size:.88rem;border-radius:10px}
.btn-block{width:100%}.btn[disabled]{opacity:.55;cursor:not-allowed}
.field{margin-bottom:var(--space-3)}
.field label,.field .lbl{display:block;font-size:.9rem;font-weight:600;margin-bottom:.4rem}
.field .req{color:var(--red)}.field .hint{font-size:.8rem;color:var(--muted);margin-top:.3rem}
.input-wrap{position:relative}
.input-wrap .ic{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.field .input-wrap input{padding-left:3rem}
.field input,.field select,.field textarea,.search input,.toolbar select{width:100%;min-height:48px;padding:.7rem .95rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--ink);font:400 1rem var(--font-body)}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus,.search input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-tint)}
.field .err{display:none;color:var(--error);font-size:.82rem;margin-top:.3rem}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--error);background:var(--error-tint)}
.field.has-error .err{display:block}
.grid-2{display:grid;gap:0 var(--space-3)}
.badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.74rem;font-weight:600;white-space:nowrap}
.b-oldboy{background:var(--red-tint);color:var(--red-dark)}
.b-associate{background:var(--gold-tint);color:#8a6800}
.b-other{background:var(--cream-deep);color:var(--muted)}
.b-reg{background:var(--cream-deep);color:var(--muted)}
.b-in{background:var(--success-tint);color:var(--success)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:var(--space-3)}
.credit{text-align:center;font-size:.82rem;color:var(--muted);padding:var(--space-3) 1rem}
.credit a{font-weight:600}
.toast{position:fixed;left:50%;bottom:1.25rem;transform:translateX(-50%);background:var(--ink);color:#fff;padding:.7rem 1.1rem;border-radius:12px;font-size:.9rem;z-index:200;box-shadow:var(--shadow-card);max-width:92vw}
@media(min-width:620px){.grid-2{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.seg{display:flex;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:3px;margin-bottom:var(--space-2)}
.seg button{flex:1;border:0;background:none;padding:.65rem;border-radius:9px;font:600 .9rem var(--font-body);cursor:pointer;color:var(--muted)}
.seg button.on{background:var(--red);color:#fff}
