
:root{--bg:#f6f2ea;--surface:#fffaf2;--ink:#171717;--muted:#72685c;--line:#eadfcd;--accent:#ff6b35;--accent2:#3f7d5a;--soft:#ffe3d3;--shadow:0 14px 34px rgba(35,27,14,.12)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;background:#201914;color:var(--ink)}
button{font-family:inherit;cursor:pointer}
.app-shell{width:100%;max-width:430px;min-height:100vh;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 16px calc(92px + env(safe-area-inset-bottom));background:radial-gradient(circle at 86% 0%,rgba(255,107,53,.22),transparent 34%),linear-gradient(180deg,#fff6e7 0%,var(--bg) 36%,#f7f1e6 100%)}
.mobile-header{display:flex;align-items:flex-start;justify-content:space-between;padding:10px 2px 14px}.eyebrow{margin:0 0 7px;font-size:11px;font-weight:900;letter-spacing:.11em;color:#a84b24}
h1{margin:0;font-size:43px;line-height:.98;letter-spacing:-.09em}.subtitle{margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.35;font-weight:700}
.round-btn{width:44px;height:44px;border:0;border-radius:999px;background:rgba(255,255,255,.7);box-shadow:0 8px 18px rgba(40,25,10,.08);font-size:18px}
.today-card{margin-top:8px;border-radius:30px;padding:18px;color:white;background:linear-gradient(135deg,rgba(23,23,23,.96),rgba(55,42,32,.94)),radial-gradient(circle at top right,rgba(255,107,53,.6),transparent 30%);box-shadow:var(--shadow)}
.today-label{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.13);font-size:12px;font-weight:800;margin-bottom:10px}.today-card strong{display:block;font-size:20px;letter-spacing:-.04em;line-height:1.3}.today-card p{margin:6px 0 0;color:rgba(255,255,255,.72);font-size:14px;line-height:1.45}
.search-panel{position:sticky;top:0;z-index:2;margin:14px -16px 8px;padding:10px 16px 12px;background:rgba(246,242,234,.82);backdrop-filter:blur(16px);border-bottom:1px solid rgba(234,223,205,.72)}
#searchInput{width:100%;height:48px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.86);padding:0 15px;outline:none;font-size:15px;box-shadow:0 8px 18px rgba(30,20,8,.05)}
.category-scroll{display:flex;gap:8px;overflow-x:auto;padding:11px 0 2px;scrollbar-width:none}.category-scroll::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;border:1px solid var(--line);background:rgba(255,255,255,.75);color:var(--muted);border-radius:999px;padding:9px 13px;font-weight:900;font-size:13px}.chip.active{color:white;border-color:var(--ink);background:var(--ink)}
main{padding-top:6px}section{margin:22px 0}.section-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}h2{margin:0;font-size:20px;letter-spacing:-.06em}.section-row span{color:var(--muted);font-size:13px;font-weight:800}
.horizontal-cards{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none}.horizontal-cards::-webkit-scrollbar{display:none}
.feature-card{flex:0 0 260px;border:1px solid var(--line);border-radius:28px;background:var(--surface);padding:14px;box-shadow:var(--shadow);position:relative}
.feed-list{display:grid;gap:12px}.feed-card{display:grid;grid-template-columns:74px 1fr;gap:12px;align-items:stretch;padding:12px;border-radius:26px;border:1px solid var(--line);background:rgba(255,250,242,.92);box-shadow:0 8px 22px rgba(35,27,14,.08);position:relative}
.poster{border-radius:20px;min-height:98px;display:grid;place-items:center;padding:8px;text-align:center;background:linear-gradient(150deg,#ffe2d1,#fff3ce);color:#9d421f;font-size:12px;line-height:1.25;font-weight:1000;overflow:hidden}.feature-card .poster{height:128px;margin-bottom:12px}.poster img{width:100%;height:100%;object-fit:cover}
.save-btn{position:absolute;right:12px;top:12px;border:0;border-radius:999px;width:34px;height:34px;background:rgba(255,255,255,.88);box-shadow:0 6px 16px rgba(30,20,8,.12);font-size:17px;z-index:1}.save-btn.saved{background:#ff6b35;color:white}
.meta-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:7px}.pill{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#eef4ed;color:var(--accent2);font-size:11px;font-weight:900}.pill.hot{background:var(--soft);color:#a84b24}
.card-title{margin:0 0 7px;font-size:17px;line-height:1.18;letter-spacing:-.05em;padding-right:30px}.feature-card .card-title{font-size:19px}.card-info{color:var(--muted);font-size:13px;line-height:1.45}.tags{margin-top:8px;color:#8b7a69;font-size:12px;line-height:1.4}
.empty{padding:24px 16px;border:1px dashed var(--line);border-radius:22px;color:var(--muted);text-align:center;background:rgba(255,255,255,.45);line-height:1.5}
.hidden-section{display:none}
.calendar-card{background:rgba(255,250,242,.95);border:1px solid var(--line);border-radius:28px;padding:14px;box-shadow:var(--shadow)}
.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.calendar-head strong{font-size:19px;letter-spacing:-.04em}.month-btn{border:0;background:#ede1d0;color:#3b2f24;width:36px;height:36px;border-radius:999px;font-size:25px;line-height:1}
.calendar-hint{margin:0 0 12px;color:var(--muted);font-size:12px;font-weight:800;text-align:center}
.weekday-row{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;color:var(--muted);font-size:12px;font-weight:900;margin-bottom:8px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.day-cell{border:1px solid transparent;background:rgba(255,255,255,.65);border-radius:16px;min-height:46px;padding:6px 4px;text-align:center;color:var(--ink);font-weight:900;position:relative}
.day-cell.muted{opacity:.28}.day-cell.has-event{background:#fff4ec;border-color:#ffd8c4}.day-cell.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.day-cell.today{box-shadow:inset 0 0 0 2px #171717}
.dot{width:5px;height:5px;border-radius:999px;background:var(--accent);position:absolute;left:50%;transform:translateX(-50%);bottom:6px}.day-cell.selected .dot{background:#fff}
.tabbar{position:fixed;z-index:5;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,430px);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(255,250,242,.92);border-top:1px solid var(--line);backdrop-filter:blur(18px);box-shadow:0 -10px 28px rgba(20,10,0,.09)}
.tabbar button{border:0;background:transparent;color:var(--muted);font-size:10.5px;font-weight:900;padding:6px 0;border-radius:16px}.tabbar span{display:block;font-size:19px;margin-bottom:2px}.tabbar button.active{color:var(--ink);background:rgba(255,107,53,.12)}
.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;align-items:end;justify-items:center;background:rgba(0,0,0,.45)}.hidden{display:none}
.sheet-modal{width:min(100%,430px);max-height:88vh;overflow-y:auto;border-radius:30px 30px 0 0;background:var(--surface);padding:10px 16px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -20px 60px rgba(0,0,0,.28)}
.sheet-handle{width:44px;height:5px;border-radius:999px;background:#dacbb8;margin:4px auto 12px}.close-btn{float:right;border:0;background:#efe3d2;color:#5a4a38;border-radius:999px;padding:8px 12px;font-weight:900}
.modal-title{clear:both;margin:8px 0 12px;font-size:26px;line-height:1.15;letter-spacing:-.07em}.detail-list{margin-top:16px;border-top:1px solid var(--line)}.detail-row{display:grid;grid-template-columns:82px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.detail-label{color:var(--muted);font-weight:900}
.action-grid{display:grid;grid-template-columns:1fr;gap:8px;margin-top:16px}.action-grid a,.action-grid button{border:0;border-radius:18px;padding:15px 12px;font-size:15px;font-weight:1000;text-align:center;text-decoration:none}.primary{background:var(--accent);color:white}.secondary{background:#ede1d0;color:#3b2f24}
@media (min-width:431px){.app-shell,.tabbar,.sheet-modal{border-left:1px solid rgba(255,255,255,.12);border-right:1px solid rgba(255,255,255,.12)}}

/* v14: 예매 오픈 / 다회차 / 세부 가격 표시 */
.booking-cards{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none}.booking-cards::-webkit-scrollbar{display:none}
.booking-card{flex:0 0 268px;border:1px solid #ffd2bd;border-radius:26px;background:linear-gradient(145deg,#fffaf2,#fff0e7);padding:14px;box-shadow:var(--shadow);position:relative}
.booking-open{display:inline-flex;margin-bottom:9px;padding:6px 10px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;font-weight:1000;line-height:1.25}
.booking-note{margin-top:8px;color:#8b5a35;font-size:12px;font-weight:800;line-height:1.4}
.booking-pill{background:#fff0e7;color:#a84b24;border:1px solid #ffd2bd;max-width:100%;white-space:normal;line-height:1.25}
.watch-btn{margin-top:12px;width:100%;border:0;border-radius:16px;background:#ede1d0;color:#3b2f24;padding:11px 10px;font-weight:1000;font-size:13px}.watch-btn.watched,.watch-action.watched{background:#171717!important;color:#fff!important}
.time-chips,.price-options{display:flex;flex-wrap:wrap;gap:6px}.time-chips span,.price-options span{display:inline-flex;padding:5px 8px;border-radius:999px;background:#fff4ec;color:#7b4226;font-size:13px;font-weight:900}.price-options span{border-radius:12px;background:#f2eadf;color:#3b2f24}
.detail-row small{display:inline-block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.4}


/* v16: 예매를 홈에서 분리하고 별도 탭으로 표시 */
.booking-list-card{flex:auto;width:100%;margin-bottom:12px;padding-right:48px}
.booking-list-card .save-btn{right:12px;top:12px}
.booking-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.mini-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 12px;font-size:12px;font-weight:1000;text-decoration:none}
.watch-btn{border:0;border-radius:999px;background:#2f7d4f;color:#fff;padding:8px 12px;font-size:12px;font-weight:1000}
.watch-btn.watched{background:#3b2f24}

/* v20: 알림 설정 */
.settings-panel{clear:both;padding-top:2px}
.settings-status{margin:0 0 12px;color:var(--muted);font-size:13px;font-weight:800;line-height:1.45}
.settings-permission-help{margin:-4px 0 12px;padding:10px 12px;border:1px solid #e3c48f;border-radius:16px;background:#fff7e8;color:#6b4618;font-size:12px;font-weight:900;line-height:1.45}
.settings-hint{margin:-4px 0 12px;color:#6f6254;font-size:12px;font-weight:800;line-height:1.45}
.settings-block{border-top:1px solid var(--line);padding:14px 0}
.settings-block h4{margin:0 0 10px;font-size:15px;letter-spacing:-.03em}
.settings-toggle{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;min-height:42px;padding:7px 0;font-size:14px;font-weight:900;color:#33291f}
.settings-toggle input{position:absolute;opacity:0;pointer-events:none}
.settings-toggle i{width:46px;height:26px;border-radius:999px;background:#dacbb8;position:relative;transition:.18s ease}
.settings-toggle i::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 3px 8px rgba(20,10,0,.16);transition:.18s ease}
.settings-toggle input:checked + i{background:var(--accent)}
.settings-toggle input:checked + i::after{transform:translateX(20px)}
.settings-toggle input:disabled + i{opacity:.45}
.settings-keywords{width:100%;min-height:74px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:12px 13px;font:inherit;font-size:14px;line-height:1.45;resize:vertical;outline:none}
.settings-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}
.settings-actions button{border:0;border-radius:18px;padding:13px 12px;font-size:14px;font-weight:1000}
