/* 회전판 — 색은 작품 테마(productions.theme)에서 --bg --fg --accent --card 네 개만 받고 나머지는 섞어서 만든다 */
:root{
  --bg:#DEDBD6;--fg:#141414;--accent:#B3121B;--card:rgba(246,244,240,.86);
  --muted:color-mix(in srgb,var(--fg) 55%,var(--bg));
  --soft:color-mix(in srgb,var(--fg) 80%,var(--bg));
  --border:color-mix(in srgb,var(--fg) 14%,transparent);
  --faint:color-mix(in srgb,var(--fg) 10%,transparent);
  --stub:color-mix(in srgb,#fff 82%,var(--bg));
  --on-accent:#fff;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg)}
body{font-family:"SUIT",system-ui,sans-serif;color:var(--fg);font-size:14px;line-height:1.5;max-width:480px;margin:0 auto;padding-bottom:calc(84px + env(safe-area-inset-bottom));
  background:radial-gradient(500px 340px at 20% 0%,color-mix(in srgb,#fff 55%,transparent),transparent 70%),var(--bg);background-repeat:no-repeat;min-height:100vh}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
.boot{padding:40px 16px;color:var(--muted)}
.hidden{display:none!important}

/* 위 */
.top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px}
.logo{font-weight:900;font-size:18px}
.chips{display:flex;gap:6px;min-width:0}
.chip{display:flex;align-items:center;gap:4px;background:var(--stub);border:1px solid var(--border);font-weight:700;border-radius:20px;padding:5px 12px;max-width:170px}
.chip select{appearance:none;border:0;background:transparent;font-weight:700;max-width:140px;text-overflow:ellipsis}
.chip:after{content:"▾";font-size:11px}
h1{font-size:34px;font-weight:800;letter-spacing:-.045em;line-height:1.2;color:var(--accent)}
.hero{padding:4px 16px 0}
.sub{color:var(--muted);font-size:12.5px}
.nums{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:13px;color:var(--soft)}
.nums b{font-size:18px;font-weight:900;color:var(--fg);margin-right:2px}.nums .a{color:var(--accent)}
.lab{display:flex;justify-content:space-between;align-items:baseline;margin:20px 16px 8px}
.lab h2{font-size:15px;font-weight:800}.lab span{font-size:12px;color:var(--muted)}
.empty{color:var(--muted);font-size:12.5px;padding:6px 0}

/* 내 표 띠 */
.strip{display:flex;gap:10px;overflow-x:auto;padding:0 16px 4px;scrollbar-width:none}
.st{flex:0 0 150px;height:150px;border-radius:12px;position:relative;padding:14px 12px;display:flex;flex-direction:column;background:var(--stub);color:var(--soft);border:2px solid var(--fg);text-align:left}
.st:after{content:"";position:absolute;left:8px;right:8px;top:100px;border-top:2px dashed var(--border)}
.st .n{position:absolute;right:10px;top:12px;font-size:20px;font-weight:900;color:var(--accent)}
.st .d{font-size:26px;font-weight:900;letter-spacing:-.03em;line-height:1;color:var(--fg)}
.st .w{font-size:12px;margin-top:3px}
.st .l{margin-top:8px;font-size:13px;color:var(--fg);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.st .foot{margin-top:auto;font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st.seen{opacity:.72}
.stamp{position:absolute;right:8px;top:58px;transform:rotate(-12deg);border:2px solid var(--accent);color:var(--accent);font-weight:900;font-size:11px;padding:1px 5px;border-radius:4px;background:var(--stub)}

/* 목록 */
.list,.card{margin:0 16px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:4px 12px;backdrop-filter:blur(14px)}
.card{margin-top:12px;padding:14px 16px}
.card h2{font-size:15px;font-weight:800;margin-bottom:8px;display:flex;justify-content:space-between;gap:8px}.card h2 small{font-weight:500;color:var(--muted);font-size:12px}
.r{display:grid;grid-template-columns:62px 1fr auto;gap:8px;align-items:center;padding:10px 0;width:100%;text-align:left}
.r+.r{border-top:1px solid var(--border)}
.r .dt{font-weight:900;font-size:15px}.r .dt small{display:block;font-weight:500;font-size:12px;color:var(--muted)}
.r.has .dt{color:var(--accent)}
.r .info b{font-weight:700}.r .info small{display:block;color:var(--muted);font-size:12px}
.pill{font-size:10.5px;font-weight:800;border-radius:4px;padding:1px 5px;margin-left:4px;vertical-align:1px;border:1px solid var(--border)}
.pill.ok{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.pill.wait{border-color:var(--accent);color:var(--accent)}
.nth{font-weight:900;color:var(--accent);min-width:36px;text-align:center}
.ic{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);display:grid;place-items:center}
.ic svg{width:18px;height:18px}
.pay{display:flex;justify-content:space-between;gap:8px;padding:7px 0}.pay+.pay{border-top:1px solid var(--border)}.pay b{color:var(--accent);white-space:nowrap}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 16px 0}.two .card{margin:0}
.cnt{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:3px 0;gap:6px}
.cnt b{font-weight:800}.cnt em{font-style:normal;font-weight:900}.cnt em small{font-weight:600;color:var(--muted)}
.bar{height:4px;background:var(--faint);border-radius:2px;margin-bottom:3px}.bar i{display:block;height:100%;background:var(--fg);border-radius:2px}
.steps{display:flex;gap:6px;flex-wrap:wrap}.steps span{font-size:12px;border:1px solid var(--border);border-radius:8px;padding:4px 8px}.steps span.on{background:var(--fg);color:var(--bg)}

/* 달력 */
.mh{display:flex;align-items:center;justify-content:space-between;margin:6px 16px 10px}
.mh h1{font-size:30px}
.arw{display:flex;gap:6px}.arw button{min-width:36px;height:36px;border-radius:10px;border:1px solid var(--border);font-weight:900;color:var(--soft)}
.seg{display:flex;gap:6px;margin:0 16px 10px}.seg button{flex:1;padding:8px 0;border-radius:10px;border:1px solid var(--border);font-size:13px;font-weight:700;color:var(--soft)}
.seg button.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.cal{margin:0 16px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:10px 8px 8px}
.wk,.days{display:grid;grid-template-columns:repeat(7,1fr)}
.wk{text-align:center;font-size:11px;color:var(--muted);font-weight:700;padding-bottom:4px}.wk span:first-child{color:var(--accent)}
.days{gap:3px}
.dy{height:64px;border-radius:9px;padding:4px 2px;position:relative;font-size:12px;font-weight:700;color:var(--soft);display:flex;flex-direction:column;align-items:center;gap:1px;border:1.5px solid transparent}
.dy.o{visibility:hidden}
.dy.act{background:var(--stub);border-color:var(--fg);color:var(--fg)}
.dy.tk{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.dy.tk>span:first-child{align-self:flex-start;margin-left:4px}
.dy.sel{outline:2px solid var(--accent);outline-offset:1px}
.dy .lv{font-size:10px;font-weight:600;line-height:1.15;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;opacity:.8}
.dy .nn{position:absolute;top:3px;right:4px;font-size:9.5px;font-weight:900;color:#FF6B6B}
.dy .py{position:absolute;left:3px;right:3px;bottom:3px;background:var(--accent);color:var(--on-accent);font-size:9px;font-weight:800;border-radius:4px;text-align:center;line-height:13px}
.leg{display:flex;flex-wrap:wrap;gap:12px;margin:8px 16px 0;font-size:11.5px;color:var(--muted)}
.leg span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px;border:1.5px solid var(--fg)}
.leg .l1:before{background:var(--stub)}.leg .l2:before{background:var(--fg)}.leg .l3:before{background:var(--accent);border-color:var(--accent)}

/* 정산판 */
.jp{margin:0 16px;border-radius:14px;overflow:hidden;border:1px solid var(--border);padding:18px 16px 14px;background:radial-gradient(300px 200px at 20% 0,color-mix(in srgb,#fff 70%,transparent),transparent 70%),color-mix(in srgb,var(--bg) 92%,#fff)}
.jp .k{font-size:10px;letter-spacing:.2em;font-weight:800;color:var(--muted)}
.jp h2{font-size:36px;font-weight:800;letter-spacing:-.045em;color:var(--accent);line-height:1.1;margin-top:2px}
.jp .who{font-size:12px;color:var(--soft);margin-top:2px}
.big{display:flex;align-items:flex-end;gap:12px;margin-top:12px;padding-bottom:12px;border-bottom:2px solid var(--fg)}
.big b{font-weight:800;font-size:64px;letter-spacing:-.04em;line-height:.9}
.big span{font-size:12px;color:var(--soft);line-height:1.45;padding-bottom:4px}
.jg{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}
.jp h4{font-size:11px;font-weight:900;letter-spacing:.06em;color:var(--muted);margin:0 0 6px}
.seats{margin-top:12px}.seats svg{width:100%;display:block}
.stg{font-size:9px;text-align:center;color:var(--muted);letter-spacing:.3em;margin:0 30% 4px;border-top:2px solid var(--fg);padding-top:2px}
.jf{display:flex;justify-content:space-between;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);font-size:11px;color:var(--soft)}
.opt{display:flex;justify-content:space-between;align-items:center;margin:0 16px 10px;font-size:12.5px;color:var(--soft)}
.tg{width:38px;height:22px;border-radius:11px;background:var(--faint);position:relative;flex:none;border:1px solid var(--border)}
.tg:after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}
.tg.on{background:var(--fg)}.tg.on:after{left:18px}
.note{margin:8px 16px 0;font-size:11.5px;color:var(--muted)}

/* 용병 */
.due{margin:0 16px;background:var(--fg);color:var(--bg);border-radius:16px;padding:12px 14px}
.due h3{font-size:13px;font-weight:800;opacity:.8}.due .t{font-size:22px;font-weight:900;margin-top:2px}.due p{font-size:12.5px;opacity:.85;margin-top:2px}
.mr{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:11px 0;width:100%;text-align:left}
.mr+.mr{border-top:1px solid var(--border)}
.mr .a{font-weight:800}.mr .a small{display:block;font-weight:600;color:var(--muted);font-size:12px}
.mr .c{grid-column:1/-1;font-size:12px;color:var(--soft);display:flex;gap:4px 10px;flex-wrap:wrap}
.st2{font-size:11px;font-weight:800;border-radius:5px;padding:2px 7px;align-self:start;white-space:nowrap;border:1.5px solid var(--border);color:var(--muted)}
.st2.w{border-color:var(--accent);color:var(--accent)}.st2.d{background:var(--fg);color:var(--bg);border-color:var(--fg)}

/* 버튼·시트 */
.b{min-height:46px;border-radius:12px;font-weight:800;border:1px solid var(--border);background:transparent;padding:0 14px}
.b.pr{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btns{display:flex;gap:8px;margin:12px 16px 0}.btns .b{flex:1}
.dim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:20}
.sheet{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:480px;max-height:88vh;overflow:auto;background:color-mix(in srgb,var(--bg) 70%,#fff);border-radius:20px 20px 0 0;padding:10px 16px calc(24px + env(safe-area-inset-bottom));z-index:21}
.sheet .grab{width:40px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 14px}
.sheet h3{font-size:17px;font-weight:900}.sheet .sub{margin-bottom:12px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.fld{background:var(--faint);border:1px solid var(--border);border-radius:10px;padding:6px 10px;display:block}
.fld.full{grid-column:1/-1}
.fld span{display:block;font-size:11px;color:var(--muted)}
.fld input,.fld select,.fld textarea{width:100%;border:0;background:transparent;font-weight:700;font-size:14px;padding:2px 0;outline:none}
.fld textarea{font-weight:500;font-size:13px;line-height:1.6;min-height:120px;resize:vertical}
.chk{display:flex;align-items:center;gap:8px;font-weight:700}
.sheet .btns{margin:12px 0 0}
.msg{white-space:pre-line;font-size:12.5px;line-height:1.65;background:var(--faint);border:1px solid var(--border);border-radius:12px;padding:12px;color:var(--soft)}

/* 아래 탭 */
.tab{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;display:grid;grid-template-columns:repeat(4,1fr);background:color-mix(in srgb,var(--bg) 94%,transparent);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10}
.tab button{padding:12px 0 16px;font-size:12px;color:var(--muted)}.tab button.on{color:var(--fg);font-weight:800}
.tab button.on:before{content:"";display:block;width:24px;height:3px;border-radius:2px;background:var(--accent);margin:0 auto 6px}

/* 로그인 */
.login{padding:56px 24px;max-width:400px;margin:0 auto}
.login h1{font-size:40px}.login p{color:var(--soft);margin:8px 0 28px}
.login .b{width:100%;margin-top:10px}
.kakao{background:#FEE500;border-color:#FEE500;color:#191919}
.login .fld{margin-top:18px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:96px;background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:700;z-index:30;max-width:90%}
