:root{--color-bg:#f8fafc;--color-surface:#fff;--color-text:#334155;--color-text-muted:#64748b;--color-border:#e2e8f0;--color-primary:#2563eb;--color-danger:#dc2626;--space-page:1rem;--radius:8px;--nav-height:3.5rem;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);margin:0;font-size:16px;line-height:1.5}#root{min-height:100dvh}a{color:var(--color-primary)}button,.btn{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:44px;color:var(--color-text);font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:0 1rem;display:inline-flex}button.primary,.btn-primary{border-color:var(--color-primary);background:var(--color-primary);color:#fff}button.block,.btn-block{width:100%}.app-frame{background:var(--color-bg);width:100%;max-width:28rem;min-height:100dvh;margin:0 auto}.page{min-height:100dvh;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));flex-direction:column;display:flex}.page--no-nav{padding-bottom:env(safe-area-inset-bottom,0px)}.page-header{z-index:10;min-height:3rem;padding:0 var(--space-page);padding-top:env(safe-area-inset-top,0px);background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;gap:.5rem;display:flex;position:sticky;top:0}.page-header h1{margin:0;font-size:1.125rem;font-weight:600}.page-header .back{min-height:44px;color:var(--color-primary);background:0 0;border:none;padding:0 .5rem}.page-body{padding:var(--space-page);flex:1}.placeholder{color:var(--color-text-muted);margin:0}.card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:1rem}.list-rows{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.list-row{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:44px;color:inherit;justify-content:space-between;align-items:center;padding:.75rem 1rem;text-decoration:none;display:flex}.bottom-nav{z-index:20;width:100%;max-width:28rem;height:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav a{color:var(--color-text-muted);flex:1;justify-content:center;align-items:center;font-size:.875rem;text-decoration:none;display:flex}.bottom-nav a.active{color:var(--color-primary);font-weight:600}.login-page{min-height:100dvh;padding:var(--space-page);padding-top:calc(var(--space-page) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--space-page) + env(safe-area-inset-bottom,0px));flex-direction:column;justify-content:center;display:flex}.login-page h1{text-align:center;margin:0 0 .5rem;font-size:1.5rem}.login-page .tagline{color:var(--color-text-muted);text-align:center;margin:0 0 2rem}.login-actions{flex-direction:column;gap:.75rem;display:flex}.more-footer,.me-footer{margin:2rem 0 0}.profile-card{text-align:center;flex-direction:column;align-items:center;gap:.375rem;margin-bottom:1.5rem;display:flex}.profile-avatar{object-fit:cover;border-radius:50%;width:72px;height:72px;margin-bottom:.5rem}.profile-avatar--placeholder{background:var(--color-border);color:var(--color-text-muted);justify-content:center;align-items:center;font-size:1.75rem;font-weight:600;display:flex}.profile-name{margin:0;font-size:1.25rem;font-weight:600}.profile-email{color:var(--color-text-muted);word-break:break-all;margin:0;font-size:.9375rem}.profile-meta{color:var(--color-text-muted);margin:.25rem 0 0;font-size:.875rem}.profile-meta--muted{font-size:.8125rem}.profile-roles{color:var(--color-primary);margin:.5rem 0 0;font-size:.8125rem}.me-section-title{color:var(--color-text-muted);margin:0 0 .75rem;font-size:.875rem;font-weight:600}.me-section{margin-bottom:.5rem}.admin-card-grid{grid-template-columns:1fr;gap:.75rem;display:grid}.admin-entry-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:inherit;flex-direction:column;gap:.375rem;padding:.875rem 1rem;text-decoration:none;display:flex}.profile-sync-btn{width:100%;margin-top:.75rem}.form-stack{flex-direction:column;gap:.75rem;display:flex}.form-hint{color:var(--color-text-muted);margin:0;font-size:.875rem}.form-error{color:var(--color-danger);margin:0;font-size:.875rem}.field{flex-direction:column;gap:.375rem;font-size:.875rem;display:flex}.field span{color:var(--color-text-muted)}.field input,.field select{border:1px solid var(--color-border);border-radius:var(--radius);min-height:44px;font:inherit;background:var(--color-surface);padding:.5rem .75rem}.field-inline{flex-direction:row;justify-content:space-between;align-items:center}.field-inline select{flex:1;max-width:12rem}.checkbox-row{align-items:flex-start;gap:.5rem;font-size:.9375rem;display:flex}.checkbox-row input{margin-top:.25rem}.section-stack{margin-top:1.5rem}.section-title{margin:0 0 .75rem;font-size:1rem;font-weight:600}.card-stack{flex-direction:column;gap:.5rem;display:flex}.card-title{margin:0;font-weight:600}.card-meta{color:var(--color-text-muted);margin:0;font-size:.875rem}.card-meta-inline{color:var(--color-text-muted);margin-left:.5rem;font-size:.8125rem;font-weight:400}.badge{border-radius:999px;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-verified{color:#166534;background:#dcfce7}.btn-row{gap:.5rem;margin-top:.5rem;display:flex}.btn-danger{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-surface)}.page-actions{margin:0 0 1rem}.link-btn{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:none;min-height:auto;margin-left:.5rem;padding:0;text-decoration:underline}.field-sub{color:var(--color-text-muted);margin-top:.25rem;font-size:.8125rem;font-weight:400;display:block}.time-range{align-items:center;gap:.5rem;display:flex}.time-range input[type=time]{flex:1;min-width:0}.time-range-sep{color:var(--color-text-muted);flex-shrink:0;font-size:.875rem}.license-preview{border-radius:var(--radius-sm);border:1px solid var(--color-border);object-fit:contain;background:var(--color-surface-muted);max-width:100%;max-height:12rem;margin-top:.5rem;display:block}.card--in-queue{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.page-body--with-sticky{padding-bottom:calc(var(--nav-height) + 3.5rem + env(safe-area-inset-bottom,0px))}.play-sticky-bar{left:50%;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));z-index:15;border:1px solid var(--color-primary);border-radius:var(--radius);color:#1e40af;width:calc(100% - 2rem);max-width:26rem;font:inherit;text-align:center;cursor:pointer;background:#eff6ff;margin:0;padding:.75rem 1rem;font-size:.875rem;font-weight:600;position:fixed;transform:translate(-50%);box-shadow:0 -2px 12px #2563eb1f}.bottom-sheet-root{z-index:30;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet-backdrop{cursor:pointer;background:#0f172a66;border:none;margin:0;padding:0;position:absolute;inset:0}.bottom-sheet-panel{z-index:1;border-radius:var(--radius) var(--radius) 0 0;background:var(--color-surface);width:100%;max-width:28rem;max-height:min(85dvh,32rem);padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;margin:0 auto;display:flex;position:relative;box-shadow:0 -8px 32px #0f172a1f}.bottom-sheet-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.bottom-sheet-title{margin:0;font-size:1rem;font-weight:600}.bottom-sheet-close{width:2.75rem;height:2.75rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;font-size:1.5rem;line-height:1;display:flex}.bottom-sheet-body{-webkit-overflow-scrolling:touch;padding:1rem;overflow-y:auto}.list-cards{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.list-cards .card-desc{color:var(--color-text-muted);margin:.5rem 0 0;font-size:.875rem}.card-actions{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.card-actions.stack{gap:.5rem}.error{color:var(--color-danger);margin:0 0 .75rem}.notice{border-radius:var(--radius);color:#1e40af;background:#eff6ff;margin:0 0 .75rem;padding:.75rem;font-size:.875rem}.seat-card{text-align:center}.seat-table-no{color:var(--color-primary);margin:0;font-size:2rem;font-weight:700}.seat-store{margin:.5rem 0 0;font-size:1.125rem}
