  :root{
    --navy:#16233B; --shu:#B23A2E; --teal:#2f7e7e;
    --gold:#B08D3E; --gold-line:#C8A45C; --gold-soft:#F0E6CE;
    --ink:#1B2A41; --muted:#6B7686; --faint:#9B9488;
    --line:#E4DCCB; --canvas:#F6F2EA; --card:#fff;
  }
  *{box-sizing:border-box;}
  body{
    margin:0; background:var(--canvas); color:var(--ink);
    font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Hiragino Sans','Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  .mono{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;}
  input,select{font-family:inherit;}
  .hidden{display:none !important;}

  /* ---------- ログイン ---------- */
  #login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
  .lg-wrap{width:100%;max-width:360px;}
  .brand{display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;
    padding:6px 12px;border-radius:6px;margin-bottom:16px;}
  .brand i{width:8px;height:8px;border-radius:2px;background:var(--shu);display:block;}
  .brand span{letter-spacing:.18em;font-size:12px;font-weight:600;}
  .lg-head{text-align:center;margin-bottom:28px;}
  .lg-head .logo{width:88px;height:auto;margin:0 auto 14px;display:block;}
  .co-name{font-size:19px;margin:0;font-weight:700;letter-spacing:.02em;}
  .card{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px rgba(27,42,65,.04);}
  .lg-card{padding:24px;}
  .tabs{display:flex;gap:4px;padding:4px;background:#F1EBDD;border-radius:8px;margin-bottom:20px;font-size:14px;}
  .tabs button{flex:1;padding:6px 0;border-radius:6px;font-weight:500;color:#8E8779;}
  .tabs button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(27,42,65,.08);}
  label{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-bottom:6px;}
  .fld{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:14px;outline:none;}
  .fld:focus{border-color:var(--navy);}
  .btn{width:100%;border-radius:8px;padding:10px 0;font-size:14px;font-weight:600;color:#fff;background:var(--navy);transition:opacity .15s;}
  .btn:hover{opacity:.9;} .btn:disabled{opacity:.5;cursor:default;}
  .err{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--shu);
    background:#fbeceb;border-radius:8px;padding:8px 12px;margin-top:12px;}
  .hint{text-align:center;font-size:11px;color:var(--faint);margin-top:16px;}
  .gbtn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);
    border-radius:8px;padding:9px 0;font-size:14px;font-weight:500;background:#fff;transition:background .15s;}
  .gbtn:hover{background:#f7f8fa;}
  .orline{display:flex;align-items:center;gap:12px;margin:16px 0;font-size:11px;color:var(--faint);}
  .orline span{height:1px;background:var(--line);flex:1;}

