@font-face{font-family:'Century Gothic';src:url('/static/fonts/CenturyGothic.woff2') format('woff2');font-display:swap;font-weight:400}
@font-face{font-family:'Century Gothic';src:url('/static/fonts/CenturyGothic-Bold.woff2') format('woff2');font-display:swap;font-weight:700}
@font-face{font-family:'Bebas Neue';src:url('/static/fonts/BebasNeue.woff2') format('woff2');font-display:swap;font-weight:400}
:root{--wine:#8b1711;--ink:#302c28;--gold:#f4df90;--paper:#f6f4f0;--surface:#fff;--muted:#736c64;--line:#e4dfd8;--radius:22px;--danger:#a02019;--shadow:0 8px 32px #302c2809;font-family:'Century Gothic',CenturyGothic,AppleGothic,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;-webkit-tap-highlight-color:transparent}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit}button,input,select,a{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b9762b}h1,h2,h3,p{margin:0}button svg,.button svg{width:20px;height:20px;flex:none}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}img{max-width:100%;object-fit:cover}a{text-decoration:none}p{line-height:1.6}.muted{color:var(--muted)}.small{font-size:.875rem;line-height:1.6}.skip{position:fixed;left:12px;top:-80px;background:var(--gold);padding:14px;z-index:100}.skip:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.topbar{background:var(--ink);color:white;padding:calc(14px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 14px;position:sticky;top:0;z-index:10}.top-inner{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;border:0;background:none;color:inherit;text-align:left;padding:0;min-height:48px}.brand img{width:43px;height:43px;border-radius:11px}.brand strong{font-size:1.2rem;letter-spacing:-.035em}.brand small{display:block;font-size:.75rem;color:#d6d0c6;margin-top:3px}.desktop-nav{display:flex;align-items:center;gap:6px}.nav-btn{display:flex;align-items:center;gap:8px;border:0;background:none;color:#d6d0c6;border-radius:12px;padding:12px 15px;min-height:46px;font-size:.875rem}.nav-btn:hover{background:#ffffff0b}.nav-btn.active{background:#ffffff13;color:var(--gold)}.nav-btn svg{width:19px;height:19px}.profile-chip{width:42px;height:42px;border:1px solid #ffffff32;background:#ffffff0a;color:var(--gold);border-radius:50%;font-weight:700}
.workspace{max-width:1228px;margin:auto;padding:38px 24px 65px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--wine);margin-bottom:10px}h1{font-size:2.25rem;letter-spacing:-.06em;line-height:1.15}h2{font-size:1.15rem;letter-spacing:-.025em;line-height:1.4}.page-head p{color:var(--muted);font-size:.875rem;margin-top:9px}.head-actions{display:flex;gap:10px;align-items:center}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:12px 18px;border:1px solid var(--line);border-radius:13px;font-weight:700;font-size:.875rem;background:white;color:var(--ink);text-align:center}.button:hover{filter:brightness(.97)}.primary{background:var(--wine);color:white;border-color:var(--wine)}.secondary{background:transparent}.gold{background:var(--gold);border-color:var(--gold)}.text-button{background:none;border:0;min-height:44px;color:var(--wine);font-weight:700;padding:10px 0;font-size:.875rem}.danger{color:var(--danger);border-color:#e9c6c3}.full{width:100%}.icon-button{background:none;border:0;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:inherit}.icon-button:hover{background:#302c2809}
.overview{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:26px}.metric{border:1px solid var(--line);border-radius:18px;background:#fff;padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px}.metric.featured{background:var(--wine);color:white;border-color:var(--wine)}.metric-label{font-size:.8125rem;color:var(--muted);display:block;margin-bottom:8px}.featured .metric-label{color:#efc7c3}.metric strong{font-size:2rem;font-weight:700;line-height:1;letter-spacing:-.045em}.metric small{display:block;font-size:.75rem;margin-top:8px;color:var(--muted)}.featured small{color:#efc7c3}.metric-icon{display:flex;align-items:center;justify-content:center;border-radius:14px;background:var(--paper);color:var(--wine);width:44px;height:44px}.metric-icon svg{width:23px;height:23px}.featured .metric-icon{background:#ffffff12;color:var(--gold)}
.sync-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px;font-size:.8125rem;color:var(--muted);line-height:1.6}.sync-label{display:flex;align-items:center;gap:8px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#577955;flex:none}.dot.warn{background:#ac7416}.notice{border:1px solid #e9d59f;border-radius:14px;padding:14px 16px;background:#fcf5df;font-size:.875rem;line-height:1.6;margin:0 0 20px;color:#665021}.notice.error{border-color:#e9c6c3;background:#fff0ed;color:var(--wine)}.notice svg{width:18px;height:18px;vertical-align:middle;margin-right:6px}
.show-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.show-card{display:block;border:1px solid var(--line);background:white;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;position:relative}.show-card:hover{transform:translateY(-3px);box-shadow:0 12px 35px #302c2810}.show-date{display:flex;justify-content:space-between;align-items:center;padding:17px 22px;background:#faf9f6;border-bottom:1px solid var(--line);font-size:.8125rem;gap:8px}.show-date strong{font-size:.875rem}.show-date time{font-weight:700;color:var(--wine);white-space:nowrap}.show-body{padding:22px}.film{display:flex;align-items:flex-start;gap:17px;margin-bottom:23px;min-height:113px}.poster{width:75px;height:113px;border-radius:8px;background:var(--paper);flex:none}.film-details{padding-top:2px;flex:1;min-width:0}.film h3{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.9rem;line-height:1.02;font-weight:400;letter-spacing:.005em;overflow-wrap:anywhere;margin-bottom:10px}.film .subtitle{font-size:.75rem;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:700;line-height:1.3;border-radius:7px;background:#f5edcf;color:#6c591c;padding:6px 8px;margin-top:9px}.badge.medium{background:#e9efdf;color:#4b6432}.badge.high{background:#fae6d3;color:#8a4c12}.badge.full{width:auto;background:#f8ddd9;color:var(--wine)}.badge.unknown{background:#eeeae5;color:var(--muted)}.occupancy{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px}.occupancy .count{font-size:.875rem;color:var(--muted)}.occupancy .count strong{font-size:1.5rem;color:var(--ink);letter-spacing:-.04em;margin-right:3px}.occupancy .percent{font-size:1.5rem;color:var(--wine);font-weight:700;letter-spacing:-.04em}progress{display:block;appearance:none;-webkit-appearance:none;border:0;border-radius:8px;height:9px;width:100%;overflow:hidden;background:#eeeae3}progress::-webkit-progress-bar{background:#eeeae3;border-radius:8px}progress::-webkit-progress-value{background:var(--wine);border-radius:8px}progress::-moz-progress-bar{background:var(--wine);border-radius:8px}.card-bottom{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--muted);gap:10px;margin-top:12px}.card-bottom .open{display:flex;align-items:center;gap:4px;color:var(--wine)}.card-bottom svg{width:15px;height:15px}.stale-note{font-size:.75rem;color:#946a16;margin-top:12px;line-height:1.5}.dashboard-note{display:flex;align-items:flex-start;gap:9px;font-size:.75rem;line-height:1.7;color:var(--muted);margin-top:25px;max-width:780px}.dashboard-note svg{width:17px;height:17px;flex:none;margin-top:2px}.empty{border:1px dashed #cfc7bc;padding:50px 24px;border-radius:20px;text-align:center;background:#fff9}.empty svg{width:36px;height:36px;color:var(--wine);margin-bottom:18px}.empty p{margin-top:12px;color:var(--muted);font-size:.875rem}.empty .button{margin-top:20px}.footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:38px;padding-top:20px;color:var(--muted);font-size:.75rem;gap:15px}.footer span:last-child{white-space:nowrap}.bottom-nav{display:none}
.login-shell{background:var(--ink);min-height:100svh;display:grid;grid-template-columns:1fr 1fr;color:#fff}.login-brand{padding:70px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(ellipse at 10% 30%,#8b1711 0,transparent 70%),#302c28}.login-wordmark{display:flex;align-items:center;gap:14px;font-size:1.5rem;font-weight:700;letter-spacing:-.045em}.login-wordmark img{height:53px;width:53px;border-radius:14px}.brand-picture{width:100%;max-width:480px;border-radius:6px;align-self:center;margin:60px 0;box-shadow:0 24px 80px #0002}.login-brand p{color:#dbcdc0;font-size:.875rem;max-width:400px}.login-content{display:flex;align-items:center;justify-content:center;padding:50px 36px;background:var(--paper);color:var(--ink)}.login-form-wrap{width:100%;max-width:375px}.login-form-wrap h1{font-size:2.25rem;margin-bottom:12px}.login-form-wrap>.muted{font-size:.875rem;line-height:1.7;margin-bottom:30px}.mobile-logo{display:none}.field{display:block;margin-bottom:18px}.field>span,.field-label{display:block;font-size:.875rem;font-weight:700;margin-bottom:8px}input:not([type=checkbox]),select{min-height:50px;width:100%;border:1px solid #d8d1c7;border-radius:12px;background:white;color:var(--ink);padding:12px 14px;font-size:1rem}input::placeholder{color:#928b82}input[type=checkbox]{width:20px;height:20px;accent-color:var(--wine);margin:0;flex:none}.check{display:flex;align-items:center;gap:10px;font-size:.875rem;min-height:44px;cursor:pointer;margin:0 0 20px}.password-field{position:relative}.password-field input{padding-right:50px}.password-field .icon-button{position:absolute;right:4px;top:3px}.divider{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:.75rem;margin:23px 0}.divider:before,.divider:after{content:'';height:1px;flex:1;background:var(--line)}.login-help{font-size:.75rem;line-height:1.8;text-align:center;color:var(--muted);margin-top:24px}.form-error{color:var(--wine);font-size:.875rem;line-height:1.5;margin-bottom:16px}.form-error:empty{display:none}.form-hint{font-size:.8125rem;color:var(--muted);line-height:1.65;margin-top:-8px;margin-bottom:22px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}.panel h2{margin-bottom:10px}.panel>p{font-size:.875rem;color:var(--muted);margin-bottom:24px}.panels{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.panel .button{margin-top:4px}.account-head{display:flex;align-items:center;gap:16px;margin-bottom:25px}.avatar{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:17px;background:var(--wine);color:var(--gold);font-size:1.2rem;font-weight:700}.account-head h2{margin:0}.account-head p{font-size:.8125rem;color:var(--muted);margin-top:5px}.passkey-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:14px 0;gap:10px}.passkey-row strong{display:block;font-size:.875rem}.passkey-row small{display:block;font-size:.75rem;color:var(--muted);margin-top:5px}.install-box{margin-top:24px;border-top:1px solid var(--line);padding-top:22px}.install-box h3{font-size:.9rem;margin-bottom:9px}.install-box p{font-size:.8125rem;color:var(--muted)}.settings-form{max-width:680px}.user-list{display:grid;gap:12px}.user-row{background:white;border:1px solid var(--line);border-radius:17px;padding:20px;display:flex;align-items:center;gap:16px}.user-info{flex:1;min-width:0}.user-info strong{font-size:1rem;overflow-wrap:anywhere}.user-info p{font-size:.8125rem;color:var(--muted);margin-top:4px}.user-actions{display:flex;gap:10px}.user-actions .button{min-height:44px;padding:10px 13px}.status-label{font-size:.75rem;border-radius:6px;background:#eeeae5;padding:4px 7px;display:inline-block;margin:6px 6px 0 0}.status-label.admin{background:#f5edcf;color:#6c591c}.disabled{opacity:.65}.launch{min-height:100svh;padding:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center;background:var(--ink);color:#fff}.launch img{border-radius:23px}.launch h1{font-size:2rem}.launch p{max-width:430px;color:#d2cbbf}.launch a{margin-top:10px}
dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:0 30px 100px #0003;padding:28px;width:min(500px,calc(100% - 32px));max-height:calc(100svh - 40px);overflow:auto}dialog::backdrop{background:#2118128c;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}.dialog-head h2{font-size:1.25rem}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:24px}.dialog-actions .danger{margin-right:auto}#toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:50;background:var(--ink);color:white;padding:15px 20px;border-radius:14px;box-shadow:0 8px 40px #0003;max-width:calc(100% - 36px);font-size:.875rem;line-height:1.5;transition:.2s;width:max-content}#toast.visible{opacity:1;transform:translate(-50%,0)}.spin svg{animation:spin 1.5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1400px){.workspace{padding-top:48px}.show-body{padding:26px}.film{gap:20px}.film h3{font-size:2.05rem}.show-card{min-height:342px}}
@media(max-width:1000px){.show-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-brand{padding:40px}.desktop-nav .nav-btn{padding:12px}.desktop-nav .nav-btn svg{display:none}.metric{padding:18px}.metric-icon{display:none}}
@media(max-width:700px){.topbar{padding:calc(11px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 11px}.brand img{width:39px;height:39px;border-radius:10px}.brand strong{font-size:1.1rem}.brand small{font-size:.75rem}.desktop-nav{display:none}.workspace{padding:28px 20px calc(105px + env(safe-area-inset-bottom))}.page-head{margin-bottom:23px;align-items:center}.page-head h1{font-size:2rem}.eyebrow{font-size:.75rem;letter-spacing:.1em;margin-bottom:8px}.page-head p{font-size:.8125rem;margin-top:7px}.head-actions .button{width:46px;height:46px;padding:0;min-height:46px;border-radius:50%}.head-actions .button .btn-text{display:none}.overview{gap:8px;margin-bottom:21px}.metric{padding:15px 12px;border-radius:15px;align-items:flex-start;min-width:0}.metric-label{font-size:.75rem;margin-bottom:11px}.metric strong{font-size:1.65rem}.metric small{font-size:.75rem;line-height:1.4}.show-grid{grid-template-columns:1fr;gap:16px}.show-date{padding:14px 20px}.show-body{padding:20px}.film{margin-bottom:20px;min-height:99px;gap:16px}.poster{width:67px;height:101px}.film h3{font-size:1.9rem;line-height:1.04;margin-bottom:5px}.film .subtitle{font-size:.75rem}.badge{margin-top:9px}.occupancy{margin-bottom:11px}.occupancy .count strong{font-size:1.4rem}.occupancy .percent{font-size:1.4rem}.sync-bar{font-size:.75rem;margin-bottom:19px;flex-wrap:wrap;gap:4px}.sync-bar>span:last-child{font-size:.75rem}.dashboard-note{font-size:.75rem;margin-top:22px}.footer{margin-top:28px;font-size:.75rem;line-height:1.7;flex-wrap:wrap;gap:4px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:15;background:#fbfaf8ef;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-top:1px solid #ded7cc;padding:8px 10px calc(8px + env(safe-area-inset-bottom));justify-content:space-around}.bottom-nav .nav-btn{display:flex;flex-direction:column;gap:5px;min-height:48px;padding:6px 12px;font-size:.75rem;color:var(--muted);flex:1;max-width:130px}.bottom-nav .nav-btn.active{color:var(--wine);background:#8b171108}.bottom-nav .nav-btn svg{width:22px;height:22px}.panels{grid-template-columns:1fr;gap:18px}.panel{padding:22px 20px}.login-shell{display:block;background:var(--paper)}.login-brand{display:none}.login-content{padding:calc(42px + env(safe-area-inset-top)) 28px calc(35px + env(safe-area-inset-bottom));min-height:100svh;align-items:flex-start}.login-form-wrap{max-width:380px}.mobile-logo{display:flex;align-items:center;gap:12px;margin-bottom:44px;font-weight:700;font-size:1.1rem;letter-spacing:-.04em}.mobile-logo img{width:49px;height:49px;border-radius:13px}.mobile-logo small{display:block;font-size:.75rem;font-weight:400;color:var(--muted);letter-spacing:0;margin-top:4px}.login-form-wrap h1{font-size:2rem}.login-form-wrap>.muted{margin-bottom:28px}.login-help{margin-top:22px}.user-row{flex-wrap:wrap;padding:17px;gap:12px}.user-row .avatar{width:44px;height:44px;border-radius:13px;font-size:1rem}.user-actions{width:100%;padding-left:56px;gap:8px}.user-actions .button{font-size:.75rem;padding:10px}.user-info strong{font-size:.9375rem}.user-info p{font-size:.75rem}.user-info .status-label{font-size:.75rem}.notice{font-size:.8125rem}.card-bottom{font-size:.75rem}dialog{padding:23px 20px;border-radius:22px}#toast{bottom:calc(86px + env(safe-area-inset-bottom))}}
@media(max-width:360px){.workspace{padding-left:15px;padding-right:15px}.metric{padding:13px 10px}.metric strong{font-size:1.4rem}.metric-label{font-size:.75rem}.film h3{font-size:1.7rem}.login-content{padding-left:23px;padding-right:23px}.bottom-nav .nav-btn{padding:6px}.sync-bar>span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Compact dashboard, film information and floating glass navigation. */
.topbar{padding-top:calc(8px + env(safe-area-inset-top));padding-bottom:8px}
.brand{min-height:44px;gap:10px;flex:none}.brand img{width:38px;height:38px;border-radius:10px}
.brand small{font-size:.6875rem;letter-spacing:-.02em;margin-top:2px;white-space:nowrap}
.header-controls{display:flex;align-items:center;gap:8px;flex:none}
.profile-chip{width:44px;height:44px;font-size:.875rem;flex:none}
.sync-button{color:#e9dfcb;border:1px solid #ffffff25}
.sync-button:hover{background:#ffffff14}
.dashboard-workspace{padding-top:23px}
.dashboard-head{align-items:center;margin-bottom:18px;gap:16px}
.dashboard-head h1{font-size:2rem}
.dashboard-sync{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--muted);font-size:.8125rem;text-align:right;line-height:1.5}
.dashboard-sync small{display:block;color:#946a16;font-size:.75rem}
.dashboard-workspace .overview{margin-bottom:18px}
.dashboard-workspace .metric{padding:16px 20px}
.dashboard-workspace .metric-label{margin-bottom:8px}
.film-heading{display:flex;align-items:flex-start;gap:9px;margin-bottom:10px}
.film-heading h3{flex:1;min-width:0;margin-bottom:0;font-size:1.55rem;line-height:1.08}
.film-format,.film-meta{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-weight:700;line-height:1.2;border:0;box-shadow:none}
.film-format{flex:none;border-radius:6px;font-size:.8125rem;padding:5px 7px;margin-top:1px}
.format-2d{color:var(--ink);background:var(--gold)}
.format-3d,.film-meta.duration{color:white;background:var(--wine)}
.fsk-0{background:#fff;color:#151515;outline:1px solid #d5d5d5;outline-offset:-1px}
.fsk-6{background:#ffed00;color:#151515}.fsk-12{background:#1da638;color:#101910}
.fsk-16{background:#00a4db;color:#10151a}.fsk-18{background:#ed0017;color:#fff}
.film-metadata{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.film-meta{font-size:.75rem;padding:6px 8px;border-radius:5px;letter-spacing:.005em}
.film-status{margin-top:8px}.film-status .badge{margin:0;font-size:.75rem;padding:6px 8px}
.movie-summary{margin:0 0 18px;padding:16px 20px;width:100%;overflow:hidden}
.summary-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.summary-heading h2{margin:0}.summary-heading>span{font-size:.8125rem;color:var(--muted);white-space:nowrap}
.movie-summary table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left}
.movie-summary th,.movie-summary td{padding:8px 0;border-bottom:1px solid var(--line);vertical-align:middle}
.movie-summary thead th{font-size:.75rem;font-weight:400;color:var(--muted);padding-top:0;padding-bottom:8px}
.movie-summary th:first-child{width:58%;padding-right:18px}
.movie-summary th:nth-child(2),.movie-summary td:nth-child(2){width:21%;text-align:center;padding:0 8px}
.movie-summary th:last-child,.movie-summary td:last-child{width:21%;text-align:right}
.movie-summary tbody tr:last-child th,.movie-summary tbody tr:last-child td{border-bottom:0}
.summary-film-title{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.25rem;font-weight:400;line-height:1.2;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.movie-summary tbody small{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-top:5px;line-height:1.5}
.summary-count{font-size:1rem;font-weight:700}
.summary-percent{font-size:1rem;white-space:nowrap;font-weight:700;color:var(--wine)}
.compact-label{display:none}
@media(max-width:900px){
  .desktop-nav{display:none}.workspace{padding-bottom:calc(105px + env(safe-area-inset-bottom))}
  .topbar{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
  .top-inner{gap:12px}.brand strong{font-size:1.125rem}
  .header-controls{gap:6px}.sync-button{border:0}
  .dashboard-workspace{padding-top:18px}
  .dashboard-head{margin-bottom:16px;gap:10px;align-items:center}
  .dashboard-head h1{font-size:1.6rem;letter-spacing:-.055em;flex:none}
  .dashboard-sync{font-size:.75rem;gap:6px;max-width:155px;line-height:1.45}
  .dashboard-sync .dot{width:6px;height:6px}
  .dashboard-workspace .metric{padding:13px 11px}
  .dashboard-workspace .metric strong{font-size:1.5rem}
  .dashboard-workspace .metric-label{font-size:.75rem;letter-spacing:-.035em;margin-bottom:9px}
  .dashboard-workspace .overview{margin-bottom:17px}
  .film-heading{gap:7px;margin-bottom:9px}
  .film-heading h3{margin-bottom:0;font-size:1.45rem}
  .film-format{font-size:.75rem;padding:5px 6px}
  .film-meta{font-size:.75rem;padding:6px 8px}
  .film-metadata{gap:7px}
  .movie-summary{padding:15px 17px;margin-top:0}
  .summary-heading{gap:10px;margin-bottom:10px}
  .summary-heading h2{font-size:1rem}.summary-heading>span{font-size:.75rem}
  .movie-summary th:first-child{width:51%;padding-right:10px}
  .movie-summary th:nth-child(2),.movie-summary td:nth-child(2){width:21%;padding-left:4px;padding-right:4px}
  .movie-summary th:last-child,.movie-summary td:last-child{width:28%}
  .movie-summary thead th{font-size:.75rem}
  .summary-film-title{font-size:1.2rem}.summary-count{font-size:.9375rem}.summary-percent{font-size:.9375rem}
  .wide-label{display:none}.compact-label{display:inline}
  .bottom-nav{display:flex;position:fixed;z-index:15;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));max-width:510px;margin:0 auto;border:1px solid #ffffffef;border-radius:32px;padding:6px;background:#f9f8f3;box-shadow:0 8px 32px #302c2825,0 2px 8px #302c280a,inset 0 1px 0 #fff,inset 0 -1px 0 #ffffff80;isolation:isolate}
  .bottom-nav::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(160deg,#ffffff65 0%,#ffffff00 40%,#ffffff20 70%,#ffffff66 100%);z-index:-1}
  .bottom-nav .nav-btn{display:flex;flex-direction:column;flex:1;min-width:0;max-width:none;min-height:52px;padding:6px 4px;gap:4px;border-radius:26px;font-size:.6875rem;letter-spacing:-.025em;color:#625a50;transition:background .2s,transform .18s}
  .bottom-nav .nav-btn.active{color:var(--wine);background:linear-gradient(145deg,#fff9,#f4df9038);box-shadow:0 2px 8px #302c280b,inset 0 1px 0 #ffffffaa;font-weight:700}
  .bottom-nav .nav-btn:active{transform:scale(.96)}
  .bottom-nav .nav-btn svg{width:22px;height:22px}.bottom-nav .nav-btn span{white-space:nowrap}
  #toast{bottom:calc(96px + env(safe-area-inset-bottom))}
  @supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
    .bottom-nav{background:linear-gradient(150deg,#fff9,#fbfaf870);backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8)}
  }
}
@media(max-width:360px){.dashboard-head h1{font-size:1.4rem}.dashboard-sync{max-width:125px}.movie-summary{padding:14px}.summary-heading h2{font-size:.9375rem}.summary-film-title{font-size:1.125rem}.movie-summary thead th{letter-spacing:-.04em}.brand{gap:8px}.brand small{font-size:.625rem}.top-inner{gap:6px}.header-controls{gap:2px}}
@media(prefers-reduced-transparency:reduce){.bottom-nav{background:#fbfaf8;backdrop-filter:none;-webkit-backdrop-filter:none}.bottom-nav::before{display:none}}
@media(prefers-contrast:more){.bottom-nav{background:#fbfaf8;border-color:var(--ink);backdrop-filter:none;-webkit-backdrop-filter:none}.bottom-nav .nav-btn{color:var(--ink)}.bottom-nav .nav-btn.active{outline:2px solid var(--wine);outline-offset:-2px}}

/* Closed booking keeps the last seat count as information, with no dead link. */
.booking-closed:hover{transform:none;box-shadow:var(--shadow)}
.booking-note{display:flex;align-items:flex-start;gap:8px;background:var(--paper);border-radius:10px;padding:12px;margin-top:14px;color:var(--ink)}
.booking-note svg{width:17px;height:17px;flex:none;margin-top:1px}
.booking-note strong{display:block;font-size:.75rem;line-height:1.45}
.booking-note p,.booking-note small{font-size:.6875rem;line-height:1.6;color:var(--muted);display:block}
.booking-note p{margin-top:3px}.booking-note small{margin-top:5px}
.fsk-guide{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.fsk-secondary{display:grid;gap:20px;min-width:0}.fsk-sources{grid-column:1/-1}
.fsk-guide .panel>p{margin-bottom:16px}
.fsk-rating-row{display:grid;grid-template-columns:62px minmax(0,1fr);gap:14px;padding:18px 0;border-top:1px solid var(--line);align-items:start}
.fsk-rating-row:last-child{padding-bottom:0}
.fsk-rating-row .fsk{min-height:36px;font-size:.875rem;padding:8px 6px}
.fsk-rating-row h3{font-size:.9375rem;line-height:1.5;margin-bottom:5px}
.fsk-rating-row p,.fsk-guide details p,.fsk-times dd{font-size:.8125rem;line-height:1.7;color:var(--muted)}
.fsk-exception{padding:10px 12px;margin-top:12px;background:#eff6ee;border-radius:10px}
.fsk-exception strong{font-size:.75rem;line-height:1.5;display:block;margin-bottom:5px}
.fsk-times{margin:0}.fsk-times>div{border-top:1px solid var(--line);padding:14px 0}.fsk-times>div:last-child{padding-bottom:0}
.fsk-times dt{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between;align-items:baseline;font-size:.8125rem}
.fsk-times dt strong{color:var(--wine)}.fsk-times dd{margin:6px 0 0}
.fsk-guide summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:.875rem;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.fsk-guide details{border-top:1px solid var(--line)}.fsk-guide details p{padding-bottom:14px}
.fsk-guide .fsk-key-rule{font-size:.8125rem;line-height:1.7;color:var(--ink);margin:18px 0 0;padding:14px;background:#f8f2db;border-radius:10px}
.fsk-sources details{border:0}.fsk-sources summary{padding:0;min-height:24px}.fsk-sources details[open] summary{margin-bottom:14px}
.fsk-sources ul{list-style:none;padding:0;margin:0}.fsk-sources a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;font-size:.8125rem;line-height:1.6;padding:8px 0;color:var(--wine);text-decoration:underline;text-underline-offset:3px}
.fsk-sources a svg{width:16px;height:16px;flex:none}
@media(max-width:900px){.fsk-guide{grid-template-columns:minmax(0,1fr);gap:18px}.fsk-secondary{gap:18px}.fsk-rating-row{gap:12px}.show-date strong{font-size:.8125rem}}
@media(min-width:901px) and (max-width:1100px){.desktop-nav .nav-btn{padding:12px 9px}.desktop-nav .nav-btn svg{display:none}}

/* Shared information badges, expandable film dates and selectable programme view. */
:root{--badge-radius:6px}
.film-format,.film-meta,.film-status .badge{border-radius:var(--badge-radius)}
.brand{min-width:0;flex:0 1 auto}.brand>span{min-width:0}
.header-alert-slot{display:flex}.header-alert-slot:empty{display:none}
.occupancy-alert{color:var(--gold);position:relative}
.occupancy-alert:hover{background:#ffffff14}
.occupancy-alert svg{width:23px;height:23px}
.alert-count{position:absolute;right:1px;top:0;display:flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:9px;font-size:.625rem;line-height:1;font-weight:700;color:var(--ink);background:var(--gold);border:2px solid var(--ink)}
.dashboard-workspace .overview{grid-template-columns:minmax(0,1fr) minmax(0,1.65fr) minmax(0,1fr)}
.next-show-metric{display:grid;grid-template-columns:minmax(0,1fr) auto;min-width:0;gap:12px 14px;background:var(--wine);border-color:var(--wine);color:#fff}
.next-show-metric .metric-label,.next-show-metric small{color:#f5dedb}
.next-show-copy{min-width:0}
.next-show-heading{display:flex;align-items:center;gap:7px;min-width:0;margin-bottom:6px}
.next-show-title{display:block;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:'Bebas Neue',Impact,sans-serif;font-size:1.35rem;line-height:1.2;font-weight:400;margin:0}
.next-show-copy time{display:block;font-size:.75rem;line-height:1.5;color:var(--gold)}
.next-show-copy small{font-size:.6875rem;margin-top:5px}
.next-show-empty{font-size:.8125rem;line-height:1.5;color:#f5dedb}
.next-show-figures{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex:none}
.next-show-seats{display:flex;align-items:center;gap:6px;color:var(--gold)}
.next-show-seats svg{width:23px;height:23px;flex:none}
.dashboard-workspace .next-show-seats strong{font-size:1.65rem}
.next-show-figures>span:last-child{font-size:.75rem;color:var(--gold);white-space:nowrap}
.summary-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;text-align:left;background:none;border:0;padding:0;color:var(--ink)}
.summary-toggle:hover{color:var(--wine)}
.summary-toggle .summary-film-title{flex:1;min-width:0}
.summary-toggle svg{width:15px;height:15px;flex:none;color:var(--muted);transition:transform .2s}
.summary-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.movie-summary .summary-movie>th{padding-top:0;padding-bottom:0}
.movie-summary .summary-dates>td{width:auto;text-align:left;padding:0 0 10px}
.summary-dates ul{list-style:none;margin:0;padding:5px 10px;background:var(--paper);border-radius:12px}
.summary-dates li+li{border-top:1px solid var(--line)}
.summary-dates .programme-row{grid-template-columns:minmax(0,1fr) 24px 48px;gap:6px 8px;padding:9px 3px}
.summary-dates .programme-row>.film-format{grid-column:2;justify-self:center}
.summary-dates .programme-row>.row-seats{grid-column:3;grid-row:1}
.summary-dates .programme-row time{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.summary-dates .programme-row .row-date{font-size:.75rem;color:var(--muted)}
.summary-dates .programme-row time strong{font-size:.8125rem}
.programme-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 14px}
.programme-toolbar h2{font-size:.9375rem;min-width:0}
.display-toggle{display:flex;flex:none;gap:3px;padding:3px;border:1px solid var(--line);border-radius:14px;background:#ebe7e0}
.display-toggle button{display:flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;background:transparent;color:var(--muted);min-height:44px;padding:9px 12px;font-size:.8125rem}
.display-toggle button svg{width:16px;height:16px}
.display-toggle button[aria-pressed=true]{background:#fff;color:var(--wine);box-shadow:0 2px 6px #302c2810;font-weight:700}
.compact-programme{display:grid;gap:18px}
.week-panel{padding:18px 22px}
.week-panel h2{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:5px 12px;font-size:.875rem;margin-bottom:18px}
.week-panel h2>span{font-size:.75rem;font-weight:400;color:var(--muted)}
.programme-day+.programme-day{margin-top:19px}
.programme-day h3{padding-bottom:7px;border-bottom:1px solid var(--line);font-size:.75rem;font-weight:700;color:var(--wine);line-height:1.5}
.programme-day ul,.alert-shows{list-style:none;margin:0;padding:0}
.programme-day li+li,.alert-shows li+li{border-top:1px solid var(--line)}
.programme-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:5px 12px;min-height:52px;padding:12px 0;min-width:0}
a.programme-row:hover .list-film-title{color:var(--wine)}
.programme-row time{font-size:.8125rem;line-height:1.5;color:var(--ink);white-space:nowrap}
.programme-row .row-date{display:block;font-size:.6875rem;color:var(--muted)}
.row-film{display:flex;align-items:center;gap:7px;min-width:0}
.list-film-title{font-family:'Bebas Neue',Impact,sans-serif;font-weight:400;font-size:1.25rem;line-height:1.2;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.programme-row .film-format{padding:4px 5px;font-size:.6875rem;margin:0}
.row-seats{display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap;color:var(--wine);font-size:.875rem}
.row-seats svg{width:19px;height:19px;flex:none}
.row-note{grid-column:1/-1;font-size:.6875rem;color:var(--muted);line-height:1.5}
.row-note.stale-note{margin:0;color:#946a16}
.alert-explanation{font-size:.875rem;line-height:1.6;margin-bottom:5px}
.alert-updated{font-size:.75rem;color:var(--muted);margin-bottom:15px}
.alert-shows .programme-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:16px 0}
.alert-shows .programme-row time{grid-column:1/-1;display:flex;align-items:baseline;gap:10px}
.alert-shows .programme-row .row-date{font-size:.75rem}
.alert-shows .list-film-title{white-space:normal;overflow-wrap:anywhere;font-size:1.4rem}
.alert-shows .row-film{align-items:flex-start}
@media(max-width:700px){
  .dashboard-workspace .overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .next-show-metric{grid-column:1/-1;grid-row:2;align-items:center}
  .average-metric{grid-column:2;grid-row:1}
  .dashboard-workspace .metric-label{margin-bottom:6px}
  .dashboard-workspace .next-show-metric{padding:13px 15px}
  .next-show-title{font-size:1.25rem}.next-show-heading{margin-bottom:4px}
  .dashboard-workspace .next-show-seats strong{font-size:1.5rem}
  .programme-toolbar{gap:8px;margin-top:20px}.programme-toolbar h2{font-size:.875rem}
  .display-toggle button{padding:8px 10px;font-size:.75rem}
  .week-panel{padding:16px}.programme-row{gap:5px 9px}
}
@media(max-width:400px){
  .topbar{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
  .top-inner{gap:6px}.header-controls{gap:2px}
  .brand{gap:7px}.brand img{width:30px;height:30px;border-radius:8px;flex:none}
  .brand strong{font-size:1rem;white-space:nowrap}
  .brand small{font-size:.625rem;white-space:normal;line-height:1.35}
  .programme-toolbar h2{font-size:.8125rem}.display-toggle button{padding:8px;font-size:.6875rem;gap:4px}
  .display-toggle button svg{width:14px;height:14px}
  .week-panel{padding:14px}.programme-row{grid-template-columns:38px minmax(0,1fr) auto;gap:5px 8px}
  .list-film-title{font-size:1.125rem}.row-seats{font-size:.8125rem;gap:4px}.row-seats svg{width:17px;height:17px}
}

/* Consolidated settings, a flat compact schedule and occupancy statistics. */
.dashboard-workspace .overview{grid-template-columns:minmax(0,1fr)}
.dashboard-workspace .overview .next-show-metric{grid-column:auto;grid-row:auto;align-items:center}
.movie-summary th:first-child{width:auto;padding-right:12px}
.movie-summary th:nth-child(2),.movie-summary td:nth-child(2){width:60px;text-align:right;padding:0 12px 0 0}
.movie-summary th:last-child,.movie-summary td:last-child{width:80px;text-align:right}
.movie-summary thead th{white-space:nowrap}
.settings-back{display:inline-flex;align-items:center;gap:8px;margin-top:-12px;margin-bottom:12px}
.settings-back svg{width:16px;height:16px;transform:rotate(90deg)}
.settings-hub{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}
.settings-links{padding:8px 22px}
.settings-link{display:flex;align-items:center;gap:14px;width:100%;min-height:88px;padding:16px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--ink)}
.settings-link:last-child{border:0}.settings-link>span:nth-child(2){flex:1;min-width:0}
.settings-link strong{display:block;font-size:1rem;line-height:1.5}
.settings-link small{display:block;color:var(--muted);font-size:.75rem;line-height:1.6;margin-top:3px}
.settings-link>svg{width:17px;height:17px;transform:rotate(-90deg);color:var(--muted)}
.settings-link-icon{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:13px;background:var(--paper);color:var(--wine)}
.settings-link-icon svg{width:23px;height:23px}
.percent-input{display:flex;align-items:center;gap:12px;max-width:170px}
.percent-input>span{font-size:1.1rem;font-weight:700}
.schedule-panel{padding:15px 18px}
.schedule-panel h2{font-size:.8125rem;color:var(--muted);font-weight:400;margin:0 0 10px}
.compact-programme{display:block;list-style:none;padding:0;margin:0}
.compact-programme li+li{border-top:1px solid var(--line)}
.compact-row{position:relative;display:grid;grid-template-columns:115px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;min-height:48px;border:0;background:transparent;padding:10px 0;text-align:left;color:var(--ink)}
.compact-row time{display:grid;grid-template-columns:minmax(0,1fr) 5ch;align-items:baseline;gap:6px;white-space:nowrap;font-size:.6875rem;line-height:1.5;font-variant-numeric:tabular-nums}
.compact-row time>span{color:var(--muted)}.compact-row time strong{font-size:.75rem;text-align:right}
.compact-row .row-film{gap:6px;min-width:0}.compact-row .list-film-title{white-space:nowrap;font-size:1.2rem}
.compact-row .film-format{font-size:.625rem;padding:4px;margin:0;flex:none}
.compact-info{display:inline-flex;color:var(--muted);flex:none}.compact-info svg{width:14px;height:14px}
.compact-row:hover .list-film-title{color:var(--wine)}
.closed-film-title{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.6rem;font-weight:400;margin-bottom:8px}
.closed-explanation{margin:16px 0}
.statistics-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}
.statistics-updated{font-size:.75rem;line-height:1.6;color:var(--muted);text-align:right}
.statistics-context{font-size:.8125rem;line-height:1.6;color:var(--muted);margin-bottom:18px;max-width:780px}
.statistics-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}
.stat-card{padding:19px 20px;border:1px solid var(--line);border-radius:18px;background:white;min-width:0}
.stat-card-label{display:flex;align-items:center;gap:7px;font-size:.75rem;color:var(--muted);line-height:1.5;margin-bottom:12px}
.stat-card-label svg{width:18px;height:18px;flex:none;color:var(--wine)}
.stat-card>strong{font-size:1.8rem;letter-spacing:-.045em;line-height:1.2;display:block;color:var(--wine)}
.stat-card small{display:block;font-size:.6875rem;color:var(--muted);line-height:1.6;margin-top:7px}
.statistics-charts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}
.stat-chart{min-width:0;padding:22px}.stat-chart h2{font-size:1.0625rem;margin-bottom:7px}
.chart-caption,.stat-chart>.chart-caption{font-size:.75rem;line-height:1.6;color:var(--muted);margin:0 0 20px}
.stat-chart .chart-caption:last-child{margin:12px 0 0}
.chart-empty,.stat-chart>.chart-empty{font-size:.8125rem;line-height:1.8;color:var(--muted);margin:20px 0}
.stat-bar-list,.stat-distribution{list-style:none;margin:0;padding:0}
.stat-bar-list li+li{margin-top:20px}.stat-distribution li+li{margin-top:15px}
.stat-bar-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:.8125rem;line-height:1.5}
.stat-bar-heading>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stat-bar-heading>strong{flex:none;color:var(--wine);font-size:.875rem}
.stat-bar-heading .stat-film-title{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.3rem;font-weight:400;line-height:1.2}
.stat-bar{width:100%;height:7px;display:block;overflow:visible}
.stat-bar rect{stroke:none}.bar-track{fill:#eeeae3}.bar-value{fill:var(--wine)}
.stat-bar-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:3px 10px;font-size:.6875rem;color:var(--muted);line-height:1.6;margin-top:7px}
.stat-partial{display:block;font-size:.6875rem;line-height:1.6;color:#946a16;margin-top:3px}
.occupancy-chart{display:flex;align-items:center;justify-content:space-around;gap:22px;margin:18px 0 14px}
.stat-ring{width:175px;max-width:48%;height:auto;flex:none}
.stat-ring circle{fill:none;stroke-width:14}.ring-track{stroke:var(--gold)}.ring-value{stroke:var(--wine);stroke-linecap:butt}
.stat-ring text{stroke:none;fill:var(--ink)}.ring-number{font-size:24px;font-weight:700;letter-spacing:-1px}.ring-label{font-size:11px;fill:var(--muted)!important}
.ring-legend{margin:0;flex:1;max-width:200px;min-width:0}.ring-legend>div{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.8125rem;padding:10px 0}
.ring-legend dt{display:flex;align-items:center;gap:6px;color:var(--muted)}.ring-legend dd{margin:0;font-weight:700;white-space:nowrap}
.legend-dot{height:7px;width:7px;border-radius:50%;flex:none}.legend-dot.occupied{background:var(--wine)}.legend-dot.free{background:var(--gold)}
.ring-legend>div:last-child{border-top:1px solid var(--line);margin-top:3px;font-size:.6875rem}
.stat-trend{grid-column:1/-1}.stat-trend .field{margin-top:20px;max-width:640px}
.stat-trend .field>span{font-size:.75rem}.stat-trend select{font-size:.875rem;text-overflow:ellipsis}
.trend-summary{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:.8125rem;margin:24px 0 5px}
.trend-summary strong{color:var(--wine);font-size:1.2rem}.trend-change{font-size:.75rem;color:var(--muted)}
.stat-line-chart{display:block;width:100%;max-width:740px;margin:0 auto}
.chart-gridline{stroke:var(--line);stroke-width:1}.chart-axis{font-family:'Century Gothic',sans-serif;font-size:13px;fill:var(--muted);stroke:none}
.trend-line{fill:none;stroke:var(--wine);stroke-width:2.5;vector-effect:non-scaling-stroke}
.trend-point{fill:var(--wine);stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}
.trend-values{max-width:650px}.trend-values table{width:100%;border-collapse:collapse;font-size:.75rem}
.trend-values th,.trend-values td{text-align:left;padding:11px 0;border-bottom:1px solid var(--line)}
.trend-values th:last-child,.trend-values td:last-child{text-align:right}
.statistics-quality{margin-top:22px}.statistics-quality p{font-size:.75rem;line-height:1.8;margin:9px 0 0;max-width:900px}
@media(max-width:900px){.statistics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{padding:16px}.statistics-charts{gap:18px}.occupancy-chart{gap:14px}.ring-legend>div{font-size:.75rem;gap:8px}}
@media(max-width:700px){
  .settings-hub,.statistics-charts{grid-template-columns:minmax(0,1fr)}
  .settings-links{padding:6px 18px}.settings-link{min-height:80px}
  .statistics-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.statistics-updated{text-align:left}
  .stats-scope{width:100%}.stats-scope button{flex:1}
  .stat-card-label{font-size:.6875rem;gap:5px;margin-bottom:10px}.stat-card-label svg{width:16px;height:16px}
  .stat-card>strong{font-size:1.55rem}.statistics-metrics{gap:10px;margin-bottom:18px}
  .stat-chart{padding:19px}.stat-chart h2{font-size:1rem}.stat-trend{grid-column:auto}
  .schedule-panel{padding:13px 15px}.compact-row{grid-template-columns:106px minmax(0,1fr) auto;gap:8px;min-height:44px}
  .compact-row .row-seats{font-size:.8125rem;gap:4px}.compact-row .row-seats svg{width:17px;height:17px}
  .compact-row .list-film-title{font-size:1.125rem}.schedule-panel h2{font-size:.75rem}
  .occupancy-chart{gap:20px}.stat-ring{width:155px;max-width:46%}
  .movie-summary th:nth-child(2),.movie-summary td:nth-child(2){width:54px;padding-right:10px}
  .movie-summary th:last-child,.movie-summary td:last-child{width:75px}
}
@media(max-width:360px){.schedule-panel{padding:11px 12px}.compact-row{grid-template-columns:100px minmax(0,1fr) auto;gap:6px}.compact-row time{gap:4px;font-size:.625rem}.compact-row time strong{font-size:.6875rem}.compact-row .row-film{gap:4px}.compact-row .list-film-title{font-size:1.05rem}.stat-card{padding:13px}.stat-chart{padding:16px}.occupancy-chart{gap:12px}.ring-legend>div{font-size:.6875rem;gap:6px}}

.stat-ring.is-empty .ring-track{stroke:#eeeae3}

/* Keep the table headings level and the fill indicator inside existing row padding. */
.movie-summary thead th{padding-top:0;padding-bottom:8px;vertical-align:baseline;line-height:1.5}
.movie-summary .summary-count,.movie-summary .summary-percent{line-height:1.5;font-variant-numeric:tabular-nums}
.compact-row>.compact-progress{position:absolute;left:0;right:0;bottom:2px;height:3px;width:100%;margin:0;pointer-events:none;border-radius:3px}
.compact-progress.unknown{background:#eeeae3;border:1px dashed #c3baac}

/* A stable viewport-level navigation layer, independent of the current page. */
body,#app{min-height:100vh;min-height:100svh}
.bottom-nav[hidden]{display:none}
.user-list{grid-template-columns:minmax(0,1fr);min-width:0}
.user-row,.user-actions{min-width:0}
.user-info p{overflow-wrap:anywhere}
.user-actions{flex-wrap:wrap}
.dashboard-overview>.movie-summary{margin:0}
.dashboard-workspace .dashboard-overview{align-items:start}
.compact-row{grid-template-columns:104px minmax(0,1fr) auto}
.compact-row time{grid-template-columns:64px max-content;gap:4px}
.compact-row .compact-date{font-size:inherit;font-weight:700;text-align:left;color:var(--ink)}
.compact-row .compact-time{font-size:.75rem;font-weight:400;color:var(--ink)}
@media(min-width:901px){
  .dashboard-workspace .dashboard-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .dashboard-workspace .dashboard-overview .next-show-metric:only-child{grid-column:1/-1}
}
@media(max-width:700px){
  .user-actions{padding-left:0}
  .user-row .avatar{flex:none}
  .bottom-nav{top:auto;bottom:max(14px,env(safe-area-inset-bottom))}
}
@media(max-width:360px){
  .compact-row{grid-template-columns:96px minmax(0,1fr) auto}
  .compact-row time{grid-template-columns:58px max-content;gap:3px}
  .compact-row .compact-date{font-size:.625rem}
  .compact-row .compact-time{font-size:.6875rem}
}

.statistics-filters{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.statistics-year{display:flex;align-items:center;gap:9px;font-size:.8125rem;color:var(--muted)}
.statistics-year select{width:auto;min-width:125px;min-height:44px;padding:8px 12px;font-size:1rem}
.compact-row{grid-template-columns:98px minmax(0,1fr) auto}
.compact-row time{grid-template-columns:58px max-content;gap:2px}
@media(max-width:700px){
  /* Pin the shell; page height changes only affect its inner scrolling surface. */
  html{height:100%;overflow:hidden}
  body{position:fixed;inset:0;height:100%;height:100svh;height:100dvh;min-height:0;overflow:hidden}
  #app{height:100%;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain}
  body>.bottom-nav{position:fixed;top:auto;bottom:max(14px,env(safe-area-inset-bottom))}
  .statistics-filters{width:100%;align-items:stretch}
  .statistics-year{justify-content:space-between;width:100%}
}
@media(max-width:360px){
  .compact-row{grid-template-columns:90px minmax(0,1fr) auto}
  .compact-row time{grid-template-columns:52px max-content;gap:2px}
}

.compact-row .compact-date{text-align:left}

/* Measured on an installed iPhone: the layout viewport is 793px while
   100vh/body is the full 852px. Anchor to that full-height fixed shell; fixed
   positioning would instead use the shortened viewport (59px too high).
   Only #app scrolls, so this absolute child stays still on every app page. */
@media(max-width:700px) and (display-mode:standalone), (max-width:700px) and (display-mode:fullscreen){
  html,body{height:100vh}
  body>.bottom-nav{position:absolute}
}

.next-show-progress{grid-column:1/-1;height:6px;border-radius:3px;background:#ffffff26;margin:0}
.next-show-progress::-webkit-progress-bar{background:#ffffff26;border-radius:3px}
.next-show-progress::-webkit-progress-value{background:var(--gold);border-radius:3px}
.next-show-progress::-moz-progress-bar{background:var(--gold);border-radius:3px}
.next-show-progress.unknown{display:block;border:1px dashed #f4df9080}
.next-show-heading .format-3d{border:1px solid #ffffff66}

.next-show-followups{grid-column:1/-1;list-style:none;display:grid;gap:6px;min-width:0;margin:0;padding:8px 0 0;border-top:1px solid #ffffff26;color:#d7d2cc;font-size:.6875rem;line-height:1.6}
.next-show-followups li{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center;gap:8px;min-width:0}
.next-show-followups time{white-space:nowrap;font-variant-numeric:tabular-nums}
.next-show-followup-film{display:flex;align-items:center;gap:5px;min-width:0}
.next-show-followup-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Bebas Neue',Impact,sans-serif;font-size:.9375rem;line-height:1.2}
.next-show-followups .film-format{flex:none;background:transparent;color:inherit;border:1px solid currentColor;padding:0 3px;font-size:.5625rem;line-height:1.5}
.next-show-followup-figures,.next-show-followup-figures>span{display:flex;align-items:center;white-space:nowrap;font-variant-numeric:tabular-nums}
.next-show-followup-figures{gap:7px}.next-show-followup-figures>span{gap:3px}.next-show-followup-figures svg{width:14px;height:14px;flex:none}
@media(max-width:360px){.next-show-followups{font-size:.625rem}.next-show-followups li{gap:6px}.next-show-followup-figures{gap:5px}.next-show-followup-title{font-size:.875rem}}

/* Compact rows retain 44px on mobile / 48px on desktop: the 24px poster fits
   inside the existing content area and never changes row padding or height. */
.compact-row.is-weekend{background:rgba(48,44,40,.035);border-radius:4px}
.compact-row .compact-poster{display:block;flex:0 0 16px;width:16px;height:24px;min-width:16px;max-width:16px;object-fit:cover;border-radius:2px;background:#eeeae3;overflow:hidden}


/* Monthly calendar: every screening stays in its Berlin calendar day. */
.calendar-workspace{padding-top:23px}
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.calendar-head h1{font-size:2rem}
.calendar-today{min-height:44px;padding:10px 17px}
.calendar-panel{padding:0;overflow:hidden;border-radius:18px}
.calendar-toolbar{display:grid;grid-template-columns:44px minmax(0,240px) 44px;align-items:center;justify-content:center;gap:12px;padding:16px;border-bottom:1px solid var(--line)}
.calendar-heading{text-align:center;min-width:0}
.calendar-heading h2{margin:0;font-size:1.125rem;font-weight:700}
.calendar-count{display:block;margin-top:3px;color:var(--muted);font-size:.6875rem}
.calendar-prev svg{transform:rotate(90deg)}.calendar-next svg{transform:rotate(-90deg)}
.calendar-toolbar button:disabled{cursor:default}
.calendar-grid{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0}
.calendar-grid th{height:32px;padding:6px 0;background:#f4f1ec;font-weight:400;font-size:.6875rem;color:var(--muted);border-bottom:1px solid var(--line)}
.calendar-grid abbr{text-decoration:none}
.calendar-grid td{padding:0;vertical-align:top;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.calendar-grid td:last-child{border-right:0}.calendar-grid tbody tr:last-child td{border-bottom:0}
.calendar-blank{background:#f7f5f1}
.calendar-day.is-weekend{background:#302c2805}
.calendar-day-content{min-height:126px;min-width:0;padding:6px 7px 10px}
.calendar-day-number{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;margin:0 0 3px;font-size:.6875rem;color:var(--muted);font-variant-numeric:tabular-nums}
.calendar-day.is-today .calendar-day-number{color:#fff;background:var(--wine);border-radius:50%;font-weight:700}
.calendar-event{display:flex;align-items:center;gap:5px;width:100%;min-width:0;min-height:28px;margin:3px 0 0;padding:5px 5px;border:0;border-left:3px solid var(--wine);border-radius:4px;background:#8b17110d;color:var(--wine);text-align:left;outline-offset:-2px}
.calendar-event:hover{background:#8b171118}
.calendar-event-time{flex:none;white-space:nowrap;font-size:.625rem;font-variant-numeric:tabular-nums}
.calendar-event-title{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Bebas Neue',Impact,sans-serif;font-size:1rem;font-weight:400;line-height:1.1;color:var(--ink)}
.calendar-event-format{flex:none;margin-left:auto;border-radius:3px;background:var(--wine);color:#fff;font-size:.5rem;font-weight:700;line-height:1.4;padding:1px 3px}
.calendar-event.is-past{background:#302c2808;border-left-color:#92867e;color:var(--muted)}
.calendar-event.is-past .calendar-event-title{color:#736c64}
.calendar-panel>.calendar-status,.calendar-panel>.calendar-empty{font-size:.8125rem;line-height:1.6;margin:0;padding:10px 18px;border-bottom:1px solid var(--line);color:var(--muted)}
.calendar-status .text-button{margin-left:6px}
.calendar-note{font-size:.75rem;line-height:1.7;margin-top:14px;color:var(--muted)}
dialog:has(.calendar-event-detail) .dialog-head h2{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.75rem;font-weight:400;line-height:1.1;overflow-wrap:anywhere}
dialog:has(.calendar-event-detail) .dialog-head .icon-button{flex:none}
.calendar-event-detail>p{font-size:.8125rem;line-height:1.6}
.calendar-event-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:14px}
.calendar-event-meta .film-format{margin:0;border-radius:6px;font-size:.75rem;padding:6px 8px}
.calendar-event-occupancy,.calendar-event-occupancy>span{display:flex;align-items:center;gap:8px}
.calendar-event-occupancy{justify-content:space-between;margin:24px 0 12px;color:var(--wine);font-variant-numeric:tabular-nums}
.calendar-event-occupancy strong{font-size:2rem;line-height:1}
.calendar-event-occupancy svg{width:26px;height:26px}
.calendar-event-occupancy>span:last-child{font-size:1.5rem;font-weight:700}
.calendar-event-detail>progress{margin-bottom:10px}
.calendar-event-detail .calendar-event-note{margin-top:18px;color:var(--muted)}
.calendar-event-detail>.small.muted{margin-top:12px}
.calendar-booking-link{margin-top:22px;width:100%}
@media(min-width:901px) and (max-width:1200px){
  .desktop-nav{gap:3px}.desktop-nav .nav-btn{padding:10px 8px;font-size:.75rem;white-space:nowrap}
  .desktop-nav .nav-btn svg{display:none}.top-inner{gap:14px}
}
@media(max-width:700px){
  .calendar-workspace{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));padding-top:18px}
  .calendar-head{margin:0 10px 16px}.calendar-head h1{font-size:1.6rem}
  .calendar-panel{border-radius:14px}
  .calendar-toolbar{gap:8px;padding:10px 8px;grid-template-columns:44px minmax(0,200px) 44px}
  .calendar-heading h2{font-size:1rem}
  .calendar-grid th{font-size:.625rem;height:28px;padding:5px 0}
  .calendar-day-content{min-height:90px;padding:3px 2px 6px}
  .calendar-day-number{min-width:22px;height:22px;font-size:.625rem;margin-bottom:1px}
  .calendar-event{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 1px;align-content:center;min-height:44px;padding:4px 2px;margin-top:3px;border-left-width:2px}
  .calendar-event-time{grid-column:1;grid-row:1;font-size:.5625rem;line-height:1.2;letter-spacing:-.02em}
  .calendar-event-title{grid-column:1/-1;grid-row:2;font-size:.75rem;line-height:1.15}
  .calendar-event-format{grid-column:2;grid-row:1;font-size:.4375rem;padding:1px 2px;margin:0}
  .calendar-panel>.calendar-status,.calendar-panel>.calendar-empty{font-size:.75rem;padding:8px 12px}
  .calendar-note{margin-left:10px;margin-right:10px}
  .bottom-nav .nav-btn{padding:6px 2px;font-size:.625rem}
  .bottom-nav .nav-btn span{max-width:100%;overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:360px){
  .bottom-nav .nav-btn{font-size:.5625rem}
  .calendar-event{grid-template-columns:minmax(0,1fr)}
  .calendar-event-format{grid-column:1;grid-row:3;justify-self:start}
}
@media(pointer:coarse) and (min-width:701px){.calendar-event{min-height:44px}}
@media(prefers-contrast:more){.calendar-event{background:#f5e3df}.calendar-event.is-past{background:#eee9e2;color:var(--ink)}.calendar-grid td,.calendar-grid th{border-color:#a39a90}}

/* Film archive overview: familiar filters and sortable rows with seat-data context. */
.film-overview-toolbar{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:20px;padding:18px 20px}
.film-overview-toolbar .field{margin:0}.film-overview-toolbar .field:first-child{width:min(100%,340px)}
.film-overview-toolbar .field:nth-child(2){width:170px}.film-overview-toolbar .field>span{font-size:.75rem}
.film-overview-toolbar .film-overview-mobile-sort{display:none}
.film-overview-export-short{display:none}
.film-overview-panel{padding:0;overflow:hidden}.film-overview-count{padding:15px 20px;font-size:.75rem;color:var(--muted);border-bottom:1px solid var(--line)}
.film-overview-scroll{overflow:visible}.film-overview-table{border-collapse:collapse;width:100%;table-layout:auto;font-size:.8125rem}
.film-overview-table th{text-align:left;background:#faf8f5;padding:13px 8px;border-bottom:1px solid var(--line)}
.film-overview-table th:not(:last-child){width:1%}.film-overview-table th:first-child{width:320px;min-width:320px}.film-overview-table th:last-child{min-width:160px}
.film-overview-table th button{border:0;background:none;color:var(--ink);padding:4px 0;font-size:.625rem;font-weight:700;line-height:1.3;text-align:left;text-transform:uppercase;white-space:nowrap}
.film-overview-table th button:hover{color:var(--wine)}.film-overview-table td{padding:15px 8px;border-bottom:1px solid var(--line);vertical-align:middle;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
@media(min-width:1201px){
  .film-overview-table th:first-child,.film-overview-table td:first-child{padding-left:20px}
  .film-overview-table th:last-child,.film-overview-table td:last-child{padding-right:20px}
  .film-overview-table th:nth-child(n+2):nth-child(-n+8),.film-overview-table td:nth-child(n+2):nth-child(-n+8){text-align:center}
  .film-overview-table th:nth-child(n+2):nth-child(-n+8) button{text-align:center}
}
.film-overview-table tr:last-child td{border-bottom:0}.film-overview-table td:nth-child(5){white-space:nowrap}
.film-overview-title{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.2rem;font-weight:400;line-height:1.15}
.film-overview-fsk,.film-overview-format{display:inline-block;white-space:nowrap;border-radius:8px;padding:4px 7px;font-size:.6875rem;font-weight:700;margin:2px 2px 2px 0}
.film-overview-fsk{display:inline-flex;align-items:center;justify-content:center;min-width:42px;border:1px solid #aaa39b;border-radius:999px;font-size:9px;font-weight:900;line-height:1.1;color:#202020;background:#ece8e2}
.film-overview-fsk--0{color:#161616;background:#fff;border-color:#9b9b9b}
.film-overview-fsk--6{color:#211c00;background:#f4d330;border-color:#caa900}
.film-overview-fsk--12{color:#0b2e12;background:#4fbd5f;border-color:#278438}
.film-overview-fsk--16{color:#071d2c;background:#55a9d7;border-color:#2c7eae}
.film-overview-fsk--18{color:#fff;background:#d83a3e;border-color:#a91f24}
.film-overview-fsk--unknown{color:#443f3a;background:#ece8e2;border-color:#b9b1a8}
.film-overview-format{background:var(--gold);color:#493b12}
.film-overview-table td small{display:block;color:#946a16;font-size:.625rem;margin-top:3px}
.film-overview-occupancy{display:grid;gap:5px}.film-overview-progress{display:block;width:100%;height:7px;margin:0;border:0;border-radius:999px;background:#eeeae3;overflow:hidden;accent-color:var(--wine)}
.film-overview-progress::-webkit-progress-bar{background:#eeeae3;border-radius:999px}.film-overview-progress::-webkit-progress-value{background:var(--wine);border-radius:999px}.film-overview-progress::-moz-progress-bar{background:var(--wine);border-radius:999px}
.film-overview-empty{text-align:center;color:var(--muted);padding:35px!important}.film-overview-note{font-size:.75rem;color:var(--muted);max-width:920px;margin:16px 3px 0}
@media(max-width:1200px){
  .film-overview-toolbar{align-items:stretch;padding:16px;gap:10px;flex-wrap:wrap}.film-overview-toolbar .field:first-child{flex:1;min-width:0}.film-overview-toolbar .field:nth-child(2){width:125px;flex:none}
  .film-overview-toolbar .film-overview-mobile-sort{display:block}.film-overview-toolbar label.film-overview-mobile-sort{flex:1;min-width:0}.film-overview-toolbar button.film-overview-mobile-sort{align-self:end;min-height:44px}
  .film-overview-toolbar input,.film-overview-toolbar select{font-size:.8125rem;padding:9px;min-height:44px}
  .film-overview-scroll{max-height:none;overflow:visible}.film-overview-table{display:block}.film-overview-table thead{display:none}.film-overview-table tbody{display:block}
  .film-overview-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;padding:16px;border-bottom:1px solid var(--line)}
  .film-overview-table td{display:block;padding:0;border:0;min-width:0!important;white-space:normal!important;font-size:.75rem}
  .film-overview-table td:before{content:attr(data-label);display:block;color:var(--muted);font-size:.625rem;margin-bottom:4px}
  .film-overview-table td:first-child{grid-column:1/-1}.film-overview-table td:first-child:before{display:none}.film-overview-title{font-size:1.45rem}
  .film-overview-empty{grid-column:1/-1}
  .film-overview-note{margin-bottom:12px}
}
@media(max-width:700px){
  .film-overview-workspace .page-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:12px;row-gap:0}
  .film-overview-workspace .page-head>div:first-child{display:contents}
  .film-overview-workspace .page-head .eyebrow{grid-column:1;grid-row:1}
  .film-overview-workspace .page-head h1{grid-column:1;grid-row:2;font-size:clamp(1.65rem,8vw,2rem)}
  .film-overview-workspace .page-head p{grid-column:1/-1;grid-row:3}
  .film-overview-workspace .head-actions{grid-column:2;grid-row:1/3;align-self:start}
  .film-overview-workspace .head-actions #film-export{width:auto;height:44px;min-height:44px;padding:0 14px;border-radius:10px;font-size:.75rem;white-space:nowrap}
  .film-overview-export-long{display:none}.film-overview-export-short{display:inline}
  .film-overview-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;align-items:end;gap:12px 10px}
  .film-overview-toolbar .field:first-child{grid-column:1/-1;width:100%}
  .film-overview-toolbar .field:nth-child(2){grid-column:1;width:auto;min-width:0}
  .film-overview-toolbar label.film-overview-mobile-sort{grid-column:2;min-width:0}
  .film-overview-toolbar button.film-overview-mobile-sort{grid-column:3;width:44px;padding:0}
}
@media(max-width:360px){
  .film-overview-toolbar{grid-template-columns:minmax(0,1fr) 44px}
  .film-overview-toolbar .field:nth-child(2){grid-column:1/-1}
  .film-overview-toolbar label.film-overview-mobile-sort{grid-column:1}
  .film-overview-toolbar button.film-overview-mobile-sort{grid-column:2}
}

/* Installed iPhone PWAs can receive a system blur at the top. Keep every
   header control below it while retaining the existing 8px and one safe area. */
@supports (-webkit-touch-callout:none){
  @media (max-width:900px) and (display-mode:standalone){
    .topbar{padding-top:calc(8px + 24px + env(safe-area-inset-top,0px));background:#302c28}
  }
  /* Wide iPhones exceed the regular mobile breakpoint in landscape. */
  @media (max-height:500px) and (orientation:landscape) and (display-mode:standalone){
    .topbar{padding-top:calc(8px + 24px + env(safe-area-inset-top,0px));background:#302c28}
  }
}

/* First-login guide and one-time administrator password handoff. */
.issued-hint{font-size:.875rem;color:var(--muted);line-height:1.6;margin-bottom:20px}
#new-user-password{font-family:'Century Gothic',sans-serif;font-weight:700;letter-spacing:.09em;font-size:1.15rem;user-select:all;-webkit-user-select:all}
.dialog-actions.confirm-actions .danger{margin-right:0;background:var(--danger);border-color:var(--danger);color:#fff}
.guide-shell{min-height:100svh;background:radial-gradient(circle at 90% 0,#f4df9030,transparent 36%),var(--paper)}
.guide-main{max-width:1160px;margin:0 auto;padding:calc(28px + env(safe-area-inset-top)) 24px calc(36px + env(safe-area-inset-bottom))}
.guide-brand{display:flex;align-items:center;gap:12px;font-size:1.22rem;font-weight:700;letter-spacing:-.04em}
.guide-brand img{border-radius:12px}.guide-brand small{display:block;color:var(--muted);font-size:.7rem;font-weight:400;letter-spacing:0;margin-top:3px}
.guide-intro{max-width:740px;margin:48px 0 28px}.guide-intro h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:12px}.guide-intro>p{font-size:.95rem;color:var(--muted);line-height:1.65}
.guide-intro .guide-installed{display:inline-block;background:#e9efdf;color:#3d603d;padding:9px 12px;border-radius:10px;margin-top:14px;font-size:.8125rem}
.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.guide-step{background:#fff;border:1px solid var(--line);border-radius:21px;overflow:hidden;box-shadow:var(--shadow)}
.guide-art{height:185px;background:linear-gradient(145deg,#f2ebe0,#f9f7f2);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:14px}
.guide-step-copy{padding:20px}.guide-number{display:inline-block;color:var(--wine);font-size:.7rem;font-weight:700;letter-spacing:.12em;margin-bottom:8px}
.guide-step h2,.guide-passkey h2{font-size:1.16rem;margin-bottom:8px}.guide-step p,.guide-passkey p{font-size:.8125rem;color:var(--muted);line-height:1.7}
.guide-step strong,.guide-passkey strong{color:var(--ink)}
.guide-phone{width:146px;height:172px;border:5px solid var(--ink);border-bottom:0;border-radius:21px 21px 0 0;background:#fff;position:relative;overflow:hidden;box-shadow:0 8px 18px #302c2822}
.guide-phone-top{height:12px;width:48px;background:var(--ink);border-radius:0 0 8px 8px;margin:auto}.guide-site{display:flex;align-items:center;gap:5px;padding:18px 9px 0;font-size:.64rem}
.guide-site img{width:21px;height:21px;border-radius:5px}.guide-lines{position:absolute;top:65px;left:10px;right:12px;height:28px;background:linear-gradient(#e9e4dc 0 6px,transparent 6px 12px,#e9e4dc 12px 18px,transparent 18px 24px,#e9e4dc 24px 28px)}
.guide-browserbar{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:4px;padding:9px 6px;background:#eee9e1;font-size:.5rem;color:#625a50}
.guide-browserbar>span:first-child{background:#fff;border-radius:6px;padding:6px 5px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.guide-share{color:var(--wine);width:26px;height:26px;border:2px solid var(--wine);border-radius:7px;display:grid;place-items:center}.guide-share svg{width:16px;height:16px}
.guide-share-sheet{width:min(100%,258px);background:#fff;border-radius:16px;padding:13px;box-shadow:0 12px 32px #302c2820;transform:rotate(-3deg)}
.guide-sheet-handle{display:block;width:34px;height:4px;background:#d6d0c8;border-radius:5px;margin:0 auto 12px}
.guide-sheet-title{font-size:.75rem;font-weight:700;line-height:1.4;padding:0 5px 12px;border-bottom:1px solid var(--line)}.guide-sheet-title small{display:block;font-weight:400;color:var(--muted);font-size:.6rem}
.guide-sheet-option{display:flex;align-items:center;gap:9px;background:#f4df9066;color:var(--wine);border-radius:8px;margin-top:12px;padding:10px;font-size:.66rem}.guide-sheet-option svg{width:18px;height:18px}
.guide-add-sheet{width:min(100%,225px);background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;display:grid;grid-template-columns:33px 1fr;gap:10px;align-items:center;box-shadow:0 12px 32px #302c281a;font-size:.78rem}
.guide-add-sheet img{width:33px;height:33px;border-radius:8px}.guide-toggle-row{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;font-size:.65rem;padding:8px 0;border-top:1px solid var(--line)}
.guide-toggle-row i{width:29px;height:17px;border-radius:15px;background:#3f9e5c;position:relative}.guide-toggle-row i:after{content:'';position:absolute;width:13px;height:13px;border-radius:50%;right:2px;top:2px;background:#fff}
.guide-add-button{grid-column:1/-1;text-align:center;color:var(--wine);background:#f4df9070;border-radius:7px;padding:8px;font-size:.7rem;font-weight:700}
.guide-passkey{display:flex;align-items:center;gap:28px;background:#302c28;color:white;border-radius:22px;padding:26px 32px;margin-top:18px}.guide-passkey .guide-number{color:var(--gold)}
.guide-passkey h2{font-size:1.45rem}.guide-passkey p{color:#e6ded3;max-width:720px}.guide-passkey strong{color:#fff}.guide-passkey-art{flex:none;width:138px;height:138px;display:grid;place-items:center;position:relative}
.guide-face{width:93px;height:103px;border:3px solid var(--gold);border-radius:20px;position:relative}.guide-face span{position:absolute;top:36px;width:7px;height:7px;border-radius:50%;background:var(--gold)}.guide-face span:first-child{left:23px}.guide-face span:nth-child(2){right:23px}
.guide-face i{position:absolute;left:29px;top:60px;width:30px;height:13px;border-bottom:3px solid var(--gold);border-radius:0 0 50% 50%}
.guide-key{position:absolute;right:-2px;bottom:7px;background:var(--wine);color:white;border:3px solid var(--ink);border-radius:50%;width:42px;height:42px;display:grid;place-items:center}.guide-key svg{width:23px;height:23px}
.guide-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.guide-actions .button{min-height:48px}.guide-actions .button:not(.primary){background:#fff;color:var(--ink)}
.guide-footer{display:flex;align-items:center;justify-content:space-between;margin-top:20px;gap:12px;font-size:.75rem}.guide-footer a{color:var(--wine);text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){
  .guide-main{padding:calc(22px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom))}
  .guide-intro{margin:35px 0 22px}.guide-intro h1{font-size:2rem}.guide-grid{grid-template-columns:1fr;gap:12px}
  .guide-step{display:grid;grid-template-columns:116px minmax(0,1fr);min-height:165px}.guide-art{height:100%;min-height:165px;padding:6px}.guide-step-copy{padding:15px 13px}
  .guide-phone{transform:scale(.68);transform-origin:center;flex:none}.guide-share-sheet{transform:scale(.76) rotate(-3deg);min-width:200px}.guide-add-sheet{transform:scale(.78);min-width:185px}
  .guide-step h2{font-size:1rem}.guide-step p{font-size:.75rem;line-height:1.55}
  .guide-passkey{display:block;padding:20px}.guide-passkey-art{display:none}
  .guide-passkey .guide-number,.guide-passkey h2{display:block;max-width:none}.guide-passkey h2{font-size:1.15rem}.guide-passkey p{margin-top:12px}.guide-actions .button{width:100%}.guide-footer{padding-bottom:8px}
}
@media(max-width:380px){.guide-step{grid-template-columns:90px minmax(0,1fr)}.guide-step-copy{padding:13px 10px}.guide-art{padding:0}.guide-passkey-art{display:none}}
