/* ===== 제안서 자동화 — 디자인 시스템 ===== */
:root{
  --bg:#eaf0f8;
  --card:#ffffff;
  --ink:#101a2b;
  --ink-soft:#3d4a5c;
  --muted:#7a8699;
  --line:#e4e9f0;
  --line-soft:#eef1f6;
  --brand:#1d4ed8;
  --brand-dark:#1e3a8a;
  --brand-soft:#eaf1ff;
  --green:#0f9d58;
  --green-soft:#e6f6ec;
  --red:#dc2626;
  --red-soft:#fdeaea;
  --amber:#d97706;
  --amber-soft:#fdf1e1;
  --shadow-sm:0 1px 2px rgba(16,26,43,.06), 0 1px 3px rgba(16,26,43,.05);
  --shadow-md:0 4px 12px rgba(16,26,43,.08), 0 2px 4px rgba(16,26,43,.04);
  --shadow-lg:0 18px 45px rgba(16,26,43,.14);
  --radius:14px;
  --radius-sm:9px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo",
    "Malgun Gothic","Noto Sans KR",system-ui,sans-serif;
  color:var(--ink);
  line-height:1.55;
  letter-spacing:-.01em;
  background:
    radial-gradient(1100px 620px at 6% -12%, rgba(59,130,246,.28), transparent 60%),
    radial-gradient(900px 560px at 102% -6%, rgba(13,148,136,.22), transparent 55%),
    radial-gradient(760px 760px at 88% 118%, rgba(99,102,241,.20), transparent 62%),
    radial-gradient(680px 520px at 12% 112%, rgba(16,185,129,.16), transparent 60%),
    linear-gradient(180deg,#f0f5fc 0%,#e9eef7 55%,#eef1f7 100%);
  background-attachment:fixed;
}
/* 은은한 격자 오버레이 */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(rgba(29,78,216,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(29,78,216,.05) 1px, transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(circle at 50% 22%, #000 0%, rgba(0,0,0,.35) 55%, transparent 80%);
  mask-image:radial-gradient(circle at 50% 22%, #000 0%, rgba(0,0,0,.35) 55%, transparent 80%);
}

/* ---- 헤더 ---- */
.topbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:.8rem 1.4rem;
  background:linear-gradient(100deg,#0f2557,#1d4ed8 60%,#2563eb);
  color:#fff;box-shadow:var(--shadow-md);position:sticky;top:0;z-index:20;
}
.topbar nav{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}
.topbar a{
  color:#fff;text-decoration:none;font-size:.9rem;font-weight:500;
  padding:.4rem .7rem;border-radius:8px;transition:background .15s;
}
.topbar a:hover{background:rgba(255,255,255,.14)}
.brand{letter-spacing:-.02em;display:flex;align-items:center;gap:.55rem;padding:.2rem .3rem}
.brand:hover{background:transparent}
.logo-img{width:30px;height:30px;border-radius:8px;background:#fff;padding:3px;flex:none;
  box-shadow:0 1px 4px rgba(0,0,0,.2)}
.brand-txt{font-weight:600;font-size:.92rem;opacity:.9}
.brand-txt b{font-weight:800;opacity:1}
@media(max-width:560px){.brand-txt{font-size:.8rem}}
.nav-branch{
  margin-right:auto;margin-left:.7rem;
  background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.28);
  border-radius:9px;padding:.28rem .7rem;
  font-size:1.02rem;font-weight:800;letter-spacing:-.01em;line-height:1;
}
@media(max-width:560px){.nav-branch{font-size:.9rem;margin-left:.4rem;padding:.22rem .5rem}}
.who{opacity:.9;font-size:.95rem;font-weight:600;padding:0 .4rem}

/* ---- 레이아웃 ---- */
.wrap{max-width:1120px;margin:1.6rem auto 3rem;padding:0 1.1rem}
.wrap.wide{max-width:1560px}
.card{
  background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius);
  padding:1.3rem 1.5rem;margin-bottom:1.1rem;box-shadow:var(--shadow-sm);
}
h1{font-size:1.35rem;font-weight:800;margin:.1rem 0 .5rem;letter-spacing:-.02em}
h2{font-size:1.05rem;font-weight:700;margin:.1rem 0 .7rem}
h3{font-size:.92rem;font-weight:700;margin:.7rem 0 .35rem;color:var(--ink-soft)}
p{margin:.4rem 0}
.muted{color:var(--muted);font-size:.87rem}
.hint{color:var(--muted);font-size:.84rem;margin:.45rem 0;line-height:1.5}
.err{color:var(--red);font-weight:600;font-size:.9rem}
.err[hidden]{display:none}

/* ---- 폼 ---- */
label{display:block;margin:.55rem 0;font-size:.82rem;font-weight:600;color:var(--ink-soft)}
label .muted{font-weight:400}
input,select,textarea{
  width:100%;padding:.6rem .7rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  font:inherit;font-size:.95rem;color:var(--ink);background:#fff;margin-top:.28rem;
  transition:border-color .15s, box-shadow .15s;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);
}
input:disabled{background:#f3f5f9;color:#9aa4b4;cursor:not-allowed}
select{appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a8699' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .7rem center;padding-right:2rem;
}

button{
  cursor:pointer;padding:.55rem 1rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  background:#fff;font:inherit;font-size:.9rem;font-weight:600;color:var(--ink-soft);
  transition:transform .06s, box-shadow .15s, background .15s, border-color .15s;
}
button:hover{border-color:#cfd8e6;box-shadow:var(--shadow-sm)}
button:active{transform:translateY(1px)}
button.primary,button[type=submit]{
  background:linear-gradient(180deg,#2563eb,#1d4ed8);color:#fff;border-color:transparent;
  box-shadow:0 2px 8px rgba(37,99,235,.35);
}
button.primary:hover,button[type=submit]:hover{box-shadow:0 4px 14px rgba(37,99,235,.42)}
button.big{padding:.8rem 1.3rem;font-size:1rem;width:100%;margin-top:.9rem;border-radius:11px}
button.small{padding:.3rem .7rem;font-size:.78rem}
button.small.ghost{background:#fff;color:var(--muted);border:1px solid var(--line);
  box-shadow:none;font-weight:500}
button.small.ghost:hover{color:var(--red);border-color:#f0b8b8;background:var(--red-soft)}
table.mini td form{margin:0}
button.danger{background:var(--red-soft);color:var(--red);border-color:#f4cccc}
button.danger:hover{background:#fbdede}

a.btn,.btn{
  display:inline-flex;align-items:center;gap:.4rem;
  background:linear-gradient(180deg,#2563eb,#1d4ed8);color:#fff;text-decoration:none;
  padding:.65rem 1.15rem;border-radius:var(--radius-sm);margin-right:.55rem;font-weight:600;
  font-size:.92rem;box-shadow:0 2px 8px rgba(37,99,235,.3);transition:box-shadow .15s,transform .06s;
}
a.btn:hover{box-shadow:0 5px 16px rgba(37,99,235,.4)}
a.btn:active{transform:translateY(1px)}
a.btn.ghost{background:#fff;color:var(--brand);border:1.5px solid var(--line);box-shadow:none}

/* ---- 인증 화면 ---- */
.auth-wrap{display:grid;place-items:center;padding:3rem 1rem 2rem}
.login-card{
  width:100%;max-width:380px;margin:0;padding:2rem 1.9rem 1.8rem;
  border-radius:20px;box-shadow:var(--shadow-lg);border:1px solid var(--line-soft);
}

/* 로그인: 브랜드 컬러 배경 + 로고 링 모티프 */
.auth-hero{
  position:relative;overflow:hidden;isolation:isolate;
  min-height:calc(100vh - 58px);padding:2.5rem 1rem;
  background:
    radial-gradient(680px 480px at 12% 4%,  rgba(28,86,176,.30), transparent 60%),
    radial-gradient(620px 460px at 92% 8%,  rgba(42,171,226,.26), transparent 58%),
    radial-gradient(720px 560px at 88% 100%, rgba(58,174,74,.22), transparent 60%),
    radial-gradient(560px 460px at 4% 96%,  rgba(247,178,27,.20), transparent 58%),
    linear-gradient(180deg,#eef4fc 0%,#e7eef8 50%,#eef2f8 100%);
}
.auth-hero .auth-rings{
  position:absolute;z-index:-1;opacity:.16;pointer-events:none;
  width:min(78vw,640px);height:min(78vw,640px);
  filter:blur(.3px);
}
.auth-hero .auth-rings{top:-16%;right:-14%;transform:rotate(8deg)}
.auth-hero .auth-rings-2{top:auto;right:auto;bottom:-20%;left:-16%;
  width:min(58vw,460px);height:min(58vw,460px);opacity:.12;transform:rotate(-24deg)}
.auth-hero .login-card{
  position:relative;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);
  box-shadow:0 24px 60px rgba(16,26,43,.18);
}
.auth-hero .login-card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:20px 20px 0 0;
  background:linear-gradient(90deg,#1c56b0,#2aabe2 34%,#3aae4a 67%,#f7b21b);
}
.auth-foot{margin-top:1.4rem;font-size:.8rem;color:var(--muted);text-align:center;letter-spacing:.01em}
@media(max-width:560px){
  .auth-hero{min-height:calc(100vh - 52px);padding:1.5rem .9rem}
  .auth-hero .auth-rings{opacity:.12}
}
.brand-lg{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}
.logo-img-lg{width:48px;height:48px;flex:none}
.brand-lg .co{font-weight:800;font-size:1.05rem;letter-spacing:-.02em;color:var(--ink)}
.brand-lg .tag{font-size:.76rem;color:var(--muted);margin-top:.15rem}
.login-card h1{font-size:1.18rem;margin-bottom:.2rem}
.login-card button{width:100%;margin-top:.9rem}
.login-card .alt{margin-top:1.1rem;text-align:center;font-size:.87rem;color:var(--muted)}
.login-card .alt a{color:var(--brand);font-weight:600;text-decoration:none}

/* ---- 업로드 히어로 ---- */
.hero{
  text-align:center;padding:2.2rem 1.5rem 2rem;
  background:linear-gradient(180deg,#fff, #f7faff);
}
.hero .step{font-size:.8rem;font-weight:700;color:var(--brand);letter-spacing:.04em;text-transform:uppercase}
.hero h1{font-size:1.5rem;margin:.3rem 0 .5rem}
.notice-red{max-width:520px;margin:1rem auto 0;padding:.75rem 1rem;border-radius:10px;
  background:var(--red-soft);border:1.5px solid #f0b8b8;color:#b91c1c;
  font-size:.92rem;font-weight:600;line-height:1.6;text-align:center}
.notice-red b{color:#991b1b}
.up-fields{max-width:560px;margin:1.3rem auto 0;text-align:left;display:grid;
  grid-template-columns:1fr 1fr;gap:.4rem 1rem;
  background:var(--brand-soft);border:1.5px solid #bcd0f5;border-radius:14px;
  padding:1rem 1.1rem 1.1rem}
@media(max-width:520px){.up-fields{grid-template-columns:1fr}}
.up-fields label{font-size:1rem;font-weight:800;color:var(--ink);margin:.2rem 0}
.up-fields label .muted{font-size:.8rem;font-weight:500}
.up-fields input{font-size:1.15rem;font-weight:600;padding:.7rem .8rem;
  border-color:#9db8e8;background:#fff}
.up-fields input::placeholder{font-weight:400;font-size:.95rem;color:#aeb8c6}
.dropzone{
  margin:1.3rem auto 0;max-width:520px;border:2px dashed #b9c8de;border-radius:16px;
  padding:1.6rem 1rem;background:#f8fbff;transition:border-color .15s, background .15s;
}
.dropzone.drag{border-color:var(--brand);background:var(--brand-soft)}
.dropzone input[type=file]{border:none;background:transparent;padding:.4rem 0;font-size:.9rem}
.dropzone .file-icon{font-size:2rem}
.dropzone button{margin-top:.9rem}

/* ---- 값확인 (2단) ---- */
.review-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:1.2rem;align-items:start}
.review-grid > .card:first-child{position:sticky;top:5rem}
@media(max-width:920px){
  .review-grid{grid-template-columns:1fr}
  .review-grid > .card:first-child{position:static}
}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .9rem}
.fields .col-full{grid-column:1/-1}
.fields label[hidden],.fields .load-row[hidden]{display:none}
.load-row{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:.35rem .7rem;
  margin-top:.3rem;padding-top:.5rem;border-top:1px dashed var(--line)}
.load-row label{margin:.2rem 0}

/* 유형 선택 */
.type-form{
  margin:0 0 1.1rem;padding:1rem 1.1rem;border-radius:12px;
  background:var(--brand-soft);border:1px solid #d7e4ff;
}
.type-form fieldset{border:none;padding:0;margin:.1rem 0 .7rem}
.type-form fieldset:last-child{margin-bottom:0}
.type-form legend{font-size:.76rem;font-weight:700;color:var(--brand-dark);
  text-transform:uppercase;letter-spacing:.03em;padding:0;margin-bottom:.35rem;float:left;width:100%}
.type-form .radio{
  display:inline-flex;margin:.15rem .5rem .15rem 0;padding:.35rem .7rem;border-radius:20px;
  background:#fff;border:1.5px solid #d7e4ff;font-size:.85rem;cursor:pointer;
}
.type-form .radio:has(input:checked){background:var(--brand);color:#fff;border-color:var(--brand)}

.season-box{border-top:1px solid var(--line);margin-top:1rem;padding-top:.8rem}
.radio{display:flex;align-items:center;gap:.45rem;color:var(--ink);font-weight:500;font-size:.88rem;margin:.35rem 0}
.radio input{width:auto;margin:0}
.season-box .radio:has(input:checked){color:var(--brand);font-weight:700}

.ok-tag{color:var(--green);font-weight:700;font-size:.85rem}
.warn-tag{color:var(--amber);font-weight:700;font-size:.85rem}
.spinner{color:var(--brand);font-weight:600}
.spinner::before{content:"";display:inline-block;width:14px;height:14px;margin-right:.5rem;
  vertical-align:-2px;border:2px solid var(--brand-soft);border-top-color:var(--brand);
  border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---- 크롭 ---- */
.crop-controls{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-bottom:.5rem}
.crop-controls label{margin:0}
.crop-controls select{width:auto;margin:0}
.mode-btn{border-radius:20px}
.mode-btn.active{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:var(--shadow-sm)}
.mode-btn:disabled{opacity:.4;cursor:not-allowed}
.chk-skip{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:500;
  color:var(--ink-soft);background:#f4f7fb;border:1px solid var(--line);border-radius:8px;padding:.3rem .6rem;cursor:pointer}
.chk-skip input{width:auto;margin:0}
.stage{
  display:block;max-width:100%;max-height:66vh;border:1px solid var(--line);border-radius:10px;
  overflow:auto;user-select:none;touch-action:none;background:#f4f6fa;
}
.stage-inner{position:relative;width:100%}
.stage-inner img{display:block;width:100%;-webkit-user-drag:none}
.cropbox{position:absolute;border:2px solid var(--red);background:rgba(220,38,38,.12);border-radius:3px}
.cropbox.fee{border-color:var(--brand);background:rgba(37,99,235,.12)}
.cropbox.draft{border-style:dashed;border-color:#334;background:rgba(0,0,0,.06)}
.cropbox span{position:absolute;top:-1.2rem;left:0;font-size:.68rem;font-weight:600;
  background:#101a2b;color:#fff;padding:.05rem .35rem;border-radius:4px}

/* ---- 결과 stat 카드 ---- */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin:.4rem 0}
.stat{
  background:linear-gradient(180deg,#fff,#f7faff);border:1px solid var(--line-soft);
  border-radius:12px;padding:.9rem 1rem;box-shadow:var(--shadow-sm);
}
.stat .k{font-size:.75rem;color:var(--muted);font-weight:600}
.stat .v{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;margin-top:.2rem;color:var(--ink)}
.stat.hl{background:linear-gradient(180deg,#eef7f1,#e6f6ec);border-color:#c5e8d1}
.stat.hl .v{color:var(--green)}

textarea{font-family:inherit;line-height:1.6}
.flow-box{background:#f7faff;border:1px solid var(--line);border-radius:10px}

/* ---- 테이블 ---- */
table.mini{width:100%;border-collapse:separate;border-spacing:0;font-size:.86rem;
  border:1px solid var(--line-soft);border-radius:10px;overflow:hidden}
table.mini th{background:#f4f7fb;color:var(--ink-soft);font-weight:700;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.02em}
table.mini th,table.mini td{padding:.55rem .7rem;text-align:left;border-bottom:1px solid var(--line-soft)}
table.mini tr:last-child td{border-bottom:none}
table.mini tbody tr:hover td,table.mini tr:hover td{background:#fafbfd}
table.mini a{color:var(--brand);font-weight:600;text-decoration:none}
table.mini form{margin:0;display:inline}
table.mini td button{margin:1px 2px}
.muted-row td{opacity:.5}
table.mini th{white-space:nowrap}
table.mini td.nowrap{white-space:nowrap}
table.mini td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px}
.log-table{min-width:1160px}
.log-table .row-web td{background:#eef4ff}
table.mini form.planner-form{display:flex;flex-wrap:nowrap;gap:.35rem;align-items:center;margin:0}
.planner-form input{width:9rem;flex:none;margin-top:0;padding:.4rem .5rem;font-size:.85rem}
.planner-form button{flex:none}
.log-table th:nth-child(10),.log-table td:nth-child(10){min-width:21rem;white-space:nowrap}
.log-table td:nth-child(2){white-space:nowrap;min-width:8.5rem}
.log-table .col-manage{display:none}
.log-table.show-manage .col-manage{display:table-cell}
/* 직접 추가 행 (표 맨 위 입력 줄) — 관리 열과 무관하게 항상 마지막 칸 표시 */
.edit-row td{background:#fff7e6;padding:.6rem .8rem;border-bottom:2px solid #f0d9a8}
.edit-row .fields{display:grid;grid-template-columns:repeat(4,1fr);gap:.3rem .8rem}
.edit-row .fields .col-full{grid-column:1/-1}
.edit-row label{font-size:.78rem;margin:.1rem 0}
.edit-row input,.edit-row select{font-size:.82rem;padding:.35rem .45rem;margin-top:.15rem}
@media(max-width:640px){.edit-row .fields{grid-template-columns:1fr 1fr}}
.add-row td{background:#eaf1ff;padding:.3rem .35rem;vertical-align:middle}
.add-row input{width:100%;margin:0;padding:.34rem .4rem;font-size:.8rem}
.add-row .planner-cell{white-space:nowrap;display:flex;gap:.3rem;align-items:center}
.add-row .planner-cell input{width:6rem;flex:none}
.add-row .planner-cell button{flex:none;margin:0}
#mngToggle.active{background:var(--brand);color:#fff;border-color:var(--brand)}

.badge{
  display:inline-block;padding:.15rem .6rem;border-radius:20px;font-size:.75rem;font-weight:700;
  color:var(--ink-soft);background:#eef1f6;
}
.badge.done{background:var(--green-soft);color:var(--green)}
.badge.error{background:var(--red-soft);color:var(--red)}
.badge.running{background:var(--brand-soft);color:var(--brand)}
.badge.pending{background:var(--amber-soft);color:var(--amber)}

.pill{background:var(--red);color:#fff;border-radius:20px;padding:.05rem .45rem;font-size:.7rem;font-weight:700}
.role{font-size:.72rem;font-weight:700;padding:.1rem .5rem;border-radius:20px}
.role.hq{background:var(--red-soft);color:#b91c1c}
.role.br{background:var(--brand-soft);color:var(--brand)}
.user-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.user-actions form{margin:0}
.user-actions select{width:auto;margin:0;padding:.3rem .5rem;font-size:.8rem;max-width:14rem}

code{background:#eef1f6;padding:.08rem .38rem;border-radius:5px;font-size:.8rem;
  font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace}
details{margin-top:.6rem}
details summary{cursor:pointer;font-size:.82rem;color:var(--muted);font-weight:600}
details pre{background:#f7f8fa;padding:.7rem;border-radius:8px;font-size:.74rem;overflow:auto;
  border:1px solid var(--line-soft)}
.modal-back{position:fixed;inset:0;background:rgba(16,26,43,.5);display:grid;place-items:center;z-index:50;padding:1rem}
.modal-back[hidden]{display:none}
.modal{background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);padding:1.4rem 1.5rem;max-width:440px;width:100%}
.modal h2{margin-top:0}
.modal .mini{margin:.8rem 0}
.modal-btns{display:flex;gap:.6rem;margin-top:1rem}
.modal-btns button{flex:1}
.err-card{border-color:#f4cccc}
.err-card pre{white-space:pre-wrap;background:var(--red-soft);color:#7f1d1d;padding:.9rem;border-radius:8px;
  font-size:.78rem;overflow:auto;border:none}

/* 도움말 페이지 */
.help-steps{margin:.4rem 0 1rem;padding-left:1.3rem;font-size:.9rem;line-height:1.9}
.help-steps li{margin:.15rem 0}

/* ============ 모바일 (≤600px) ============ */
@media(max-width:600px){
  html,body{overflow-x:hidden}
  .topbar{flex-wrap:wrap;padding:.55rem .8rem;gap:.4rem .3rem}
  .topbar .brand{order:1}
  .nav-branch{order:2;margin:0}
  .topbar nav{order:3;width:100%;justify-content:flex-start;gap:.15rem;
    border-top:1px solid rgba(255,255,255,.15);padding-top:.4rem}
  .topbar nav a{font-size:.82rem;padding:.35rem .55rem}
  .brand-txt{font-size:.86rem}
  .who{font-size:.85rem;padding:0 .3rem}

  .wrap{margin:1rem auto 2.5rem;padding:0 .8rem}
  .card{padding:1rem 1rem;border-radius:12px;margin-bottom:.8rem}
  h1{font-size:1.2rem}
  h2{font-size:1rem}

  .fields{grid-template-columns:1fr !important}
  .fields .col-full{grid-column:auto}
  .load-row{grid-template-columns:1fr 1fr}
  .up-fields{grid-template-columns:1fr;padding:.9rem}

  a.btn,.btn{width:100%;justify-content:center;margin:.3rem 0}
  a.btn.ghost{width:auto}
  button.big{font-size:.95rem}

  .review-grid{gap:.8rem}
  .season-box{padding:.8rem}
  .type-form .radio{font-size:.88rem}

  table.mini{font-size:.8rem}
  table.mini th,table.mini td{padding:.4rem .5rem}

  .modal{padding:1.1rem 1rem;max-width:94vw}
  .stat-grid{grid-template-columns:1fr 1fr;gap:.5rem}
  .notice-red{font-size:.8rem;line-height:1.45;padding:.6rem .7rem;word-break:keep-all}
}
