:root{
  --bg:#efeae0;
  --bg-2:#e6dfca;
  --surface:#faf7ef;
  --surface-2:#efe8d7;
  --border:#d9d0ba;
  --text:#221e18;
  --text-dim:#6b6455;
  --text-faint:#948c79;
  --accent:#a4732c;
  --accent-strong:#8a5f22;
  --accent-ink:#20190f;
  --accent-2:#33544c;
  --good:#3e7a4e;
  --good-bg:#e2eee0;
  --warn:#b24a28;
  --warn-bg:#f4e2d6;
  --pending:#54636d;
  --pending-bg:#e4e7e5;
  --shadow:0 1px 2px rgba(30,24,10,.07), 0 10px 26px -14px rgba(30,24,10,.28);
  --radius:3px;
  --font-en:'Big Shoulders Display','Arial Narrow',sans-serif;
  --font-kr:'Noto Sans KR','Malgun Gothic',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#151109; --bg-2:#1c170e; --surface:#1e1911; --surface-2:#272014; --border:#3a3021;
    --text:#ede6d6; --text-dim:#b3a88f; --text-faint:#8a8069;
    --accent:#dcaa55; --accent-strong:#e8bc71; --accent-ink:#1a1409; --accent-2:#6fa79a;
    --good:#7fb489; --good-bg:#233327; --warn:#e08a63; --warn-bg:#3a2418;
    --pending:#93a5ae; --pending-bg:#232a2d;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 12px 30px -16px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  --bg:#151109; --bg-2:#1c170e; --surface:#1e1911; --surface-2:#272014; --border:#3a3021;
  --text:#ede6d6; --text-dim:#b3a88f; --text-faint:#8a8069;
  --accent:#dcaa55; --accent-strong:#e8bc71; --accent-ink:#1a1409; --accent-2:#6fa79a;
  --good:#7fb489; --good-bg:#233327; --warn:#e08a63; --warn-bg:#3a2418;
  --pending:#93a5ae; --pending-bg:#232a2d;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 12px 30px -16px rgba(0,0,0,.6);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--bg);color:var(--text);font-family:var(--font-kr);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{margin:0;font-weight:900;}
p{margin:0;}
a{color:inherit;}
button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;}
button{cursor:pointer;}
::selection{background:var(--accent);color:var(--accent-ink);}

.eyebrow{font-family:var(--font-en);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--accent);}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
.shell{max-width:920px;margin:0 auto;padding:28px 20px 90px;}
.shell-wide{max-width:1080px;}

.btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:9px 16px;border-radius:var(--radius);font-weight:700;font-size:13.5px;display:inline-flex;align-items:center;gap:6px;transition:transform .08s ease, border-color .15s ease;text-decoration:none;}
.btn:hover{border-color:var(--accent);}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);}
.btn-quiet{background:transparent;border-color:transparent;color:var(--text-dim);padding:9px 10px;}
.btn-quiet:hover{color:var(--text);border-color:var(--border);}
.btn-danger{color:var(--warn);}
.btn-danger:hover{border-color:var(--warn);}
.btn-sm{padding:5px 10px;font-size:12.5px;}
.btn-block{width:100%;justify-content:center;}
.btn[disabled]{opacity:.45;pointer-events:none;}

.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;}
.card + .card{margin-top:16px;}
.stack{display:flex;flex-direction:column;gap:16px;}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.row-between{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
@media (max-width:640px){.grid-2{grid-template-columns:1fr;}}

.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.field:last-child{margin-bottom:0;}
.field label{font-size:12.5px;font-weight:700;color:var(--text-dim);}
.field .req{color:var(--warn);margin-left:2px;}
.field input[type=text],.field input[type=date],.field input[type=time],.field input[type=tel],.field input[type=password],.field textarea{
  background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:10px 11px;width:100%;
}
.field input:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent);}
.field textarea{resize:vertical;min-height:64px;line-height:1.55;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:520px){.field-row{grid-template-columns:1fr;}}
.hint{font-size:12px;color:var(--text-faint);}

.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:100px;font-size:12px;font-weight:700;}
.pill-good{background:var(--good-bg);color:var(--good);}
.pill-warn{background:var(--warn-bg);color:var(--warn);}
.pill-pending{background:var(--pending-bg);color:var(--pending);}

.banner{border-radius:var(--radius);padding:12px 16px;font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:8px;}
.banner-good{background:var(--good-bg);color:var(--good);}
.banner-warn{background:var(--warn-bg);color:var(--warn);}
.banner-pending{background:var(--pending-bg);color:var(--pending);}

.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:10px;}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-kr);font-weight:800;font-size:15px;text-decoration:none;color:var(--text);}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);}
.crumb{font-size:12.5px;color:var(--text-faint);}
.crumb a{color:var(--text-dim);text-decoration:none;}
.crumb a:hover{color:var(--accent);}
.tabs{display:flex;gap:6px;flex-wrap:wrap;}
.tab{padding:7px 14px;border-radius:100px;font-size:12.5px;font-weight:700;border:1px solid var(--border);color:var(--text-dim);text-decoration:none;}
.tab.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}

.gate-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
.gate-card{max-width:420px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow);padding:34px 30px;}
.gate-mark{font-family:var(--font-kr);font-weight:800;color:var(--accent);font-size:13px;margin-bottom:14px;}
.gate-title{font-size:20px;margin-bottom:8px;}
.gate-sub{color:var(--text-dim);font-size:13.5px;margin-bottom:22px;}

.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap;}
.dash-title{font-size:28px;}
.event-card{display:grid;grid-template-columns:5px 1fr auto;gap:0;align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.event-card + .event-card{margin-top:12px;}
.event-spine{background:var(--pending);}
.event-spine.ready{background:var(--good);}
.event-spine.urgent{background:var(--warn);}
.event-body{padding:16px 18px;display:flex;flex-direction:column;gap:6px;min-width:0;}
.event-names{font-size:19px;font-weight:900;}
.event-meta{font-size:12.5px;color:var(--text-dim);display:flex;gap:10px;flex-wrap:wrap;}
.event-actions{display:flex;align-items:center;gap:6px;padding:16px;flex-wrap:wrap;}

.empty-state{border:1px dashed var(--border);border-radius:var(--radius);padding:40px 20px;text-align:center;color:var(--text-dim);}

.cue-row{border:1px solid var(--border);border-radius:var(--radius);padding:16px;background:var(--bg);}
.cue-row + .cue-row{margin-top:12px;}
.cue-row-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px;}
.cue-badge{font-family:var(--font-en);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:12px;color:var(--accent);}
.cue-row-tools{display:flex;gap:4px;align-items:center;}
.icon-btn{min-width:26px;height:26px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);border-radius:3px;font-size:12px;}
.icon-btn:hover{border-color:var(--accent);}
.updated-note{font-size:11px;color:var(--text-faint);}

.file-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.file-item{display:flex;align-items:center;gap:8px;font-size:12.5px;background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:6px 10px;}
.file-item a{color:var(--accent-2);text-decoration:none;font-weight:700;}
.file-item a:hover{text-decoration:underline;}
.file-item .sz{color:var(--text-faint);}
.file-drop{margin-top:8px;}
.file-drop input[type=file]{font-size:12px;}

.timeline{position:relative;padding-left:26px;}
.timeline::before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:1px;background:var(--border);}
.cue-item{position:relative;padding-bottom:26px;}
.cue-item:last-child{padding-bottom:0;}
.cue-item::before{content:"";position:absolute;left:-26px;top:4px;width:9px;height:9px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);box-shadow:0 0 0 1px var(--accent);}
.cue-num{font-family:var(--font-mono);font-size:11.5px;color:var(--accent);font-weight:600;letter-spacing:.04em;}

details.notice{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);}
details.notice + details.notice{margin-top:8px;}
details.notice summary{list-style:none;padding:13px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:13.5px;}
details.notice summary::-webkit-details-marker{display:none;}
details.notice summary::after{content:"+";color:var(--text-faint);font-weight:400;}
details.notice[open] summary::after{content:"–";}
.notice-body{padding:0 16px 16px;color:var(--text-dim);font-size:13.5px;white-space:pre-wrap;line-height:1.7;}

.section-title{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.section-title h3{font-size:16px;}
.section-title .eyebrow{font-size:11px;}

.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(10px);background:var(--text);color:var(--bg);padding:10px 18px;border-radius:100px;font-size:13px;font-weight:700;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s ease, transform .2s ease;z-index:50;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

.kv{display:flex;gap:8px;font-size:13.5px;padding:5px 0;}
.kv .k{width:60px;flex:none;color:var(--text-faint);font-weight:700;}
.kv .v{color:var(--text);}
.link-box{display:flex;gap:8px;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:9px 12px;font-family:var(--font-mono);font-size:12.5px;overflow-x:auto;white-space:nowrap;}

.answer-block{border:1px solid var(--border);border-radius:3px;padding:14px;background:var(--bg);}
.answer-block + .answer-block{margin-top:10px;}
.answer-q{font-weight:700;font-size:13.5px;margin-bottom:6px;}
.answer-a{font-size:13.5px;color:var(--text-dim);white-space:pre-wrap;}

.footer-note{text-align:center;color:var(--text-faint);font-size:12px;margin-top:34px;}
.loading{color:var(--text-faint);font-size:13px;padding:20px 0;text-align:center;}

@media (prefers-reduced-motion: reduce){*{transition:none !important;animation:none !important;}}
