/* MBTI App - Shared Styles */
*{box-sizing:border-box}
:root{
  --navy:#17324d;--navy-2:#244a68;--paper:#f4f6f7;--white:#fff;--ink:#182631;
  --muted:#667783;--line:#dce3e7;--soft:#eaf0f3;--exec:#bcd18f;--think:#18a8df;
  --bond:#ffc21a;--influence:#d49494;--danger:#b84343;--ok:#3c7a58;
  --serif:"Songti SC","Noto Serif SC",STSong,serif;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  --shadow:0 20px 60px rgba(23,50,77,.11);
}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
button,input,a{font:inherit}
button{color:inherit}
button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid rgba(24,168,223,.34);outline-offset:3px}
.hidden{display:none!important}
.shell{min-height:100vh}
.topline{height:7px;background:linear-gradient(90deg,var(--exec) 0 25%,var(--think) 25% 50%,var(--bond) 50% 75%,var(--influence) 75%)}
.page{width:min(1120px,calc(100% - 36px));margin:0 auto}
.brandline{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--navy);font-size:13px;letter-spacing:.08em}
.brand{font-weight:800}
.primary{border:0;border-radius:12px;background:var(--navy);color:#fff;font-weight:800;padding:14px 24px;cursor:pointer;box-shadow:0 10px 24px rgba(23,50,77,.18);transition:transform .18s,box-shadow .18s}
.primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(23,50,77,.24)}
.ghost{border:1px solid var(--line);background:transparent;border-radius:10px;padding:9px 14px;font-size:13px;color:var(--muted);cursor:pointer}
.micro{font-size:12.5px;color:var(--muted);margin:10px 0 0}

/* Login Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(23,50,77,.5);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.modal-overlay.show{opacity:1;pointer-events:auto}
.modal{background:#fff;border-radius:24px;padding:clamp(28px,5vw,48px);width:min(440px,calc(100% - 32px));box-shadow:0 30px 80px rgba(23,50,77,.22);transform:translateY(20px);transition:transform .25s}
.modal-overlay.show .modal{transform:translateY(0)}
.modal h2{font-family:var(--serif);font-size:26px;color:var(--navy);margin:0 0 8px}
.modal p{color:var(--muted);font-size:14px;margin:0 0 24px}
.modal label{display:block;font-size:13px;font-weight:700;color:var(--navy-2);margin-bottom:6px}
.modal input{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:13px 16px;font-size:15px;margin-bottom:16px;color:var(--ink);transition:border .15s}
.modal input:focus{border-color:var(--think);outline:none}
.modal .primary{width:100%;margin-top:4px}
.modal .error-msg{color:var(--danger);font-size:13px;margin:10px 0 0;min-height:20px}
.modal .close-modal{position:absolute;top:16px;right:16px;background:none;border:none;font-size:22px;color:var(--muted);cursor:pointer;padding:4px 8px}
.modal-wrap{position:relative}

@media(max-width:600px){
  .page{width:min(100% - 24px,1120px)}
  .modal{border-radius:18px;padding:24px}
}
