/* Timetable v3: canonical semantic tokens, shared controls retained in styles.css. */
body{background:var(--background);font-family:var(--font-body)}button,input,textarea,select{border-radius:9px}button{font-size:13px}.studio{grid-template-columns:200px minmax(0,1fr);max-width:1380px;padding:0 36px;gap:52px;min-height:100vh}.rail{top:0;padding:40px 26px 24px 0;border-right:1px solid var(--outline);position:sticky;align-self:start;height:100vh;overflow-y:auto;scrollbar-width:thin}.brand{flex-wrap:nowrap;gap:10px;font-size:25px;line-height:30px;letter-spacing:-.7px;font-family:var(--font-display)}.brand small{display:block;font:11px/20px var(--font-body);color:var(--onSurfaceVariant);letter-spacing:1px;margin-top:3px}.brand-symbol{background:var(--heroSurface);color:var(--accent);padding:9px;border-radius:9px}.brand-symbol svg{width:23px;height:23px}.rail-divider{border-top:1px solid var(--outline);margin:30px 0 26px}.nav-label{font-size:12px;letter-spacing:1px;color:var(--onSurfaceVariant);margin:0 0 13px 12px}#explore{gap:5px}#explore button{position:relative;font-size:14px;border-radius:8px;min-height:46px;gap:13px;padding:11px 12px;font-weight:400}#explore button svg{width:19px;height:19px}#explore button.active{background:var(--surface);color:var(--onSurface);font-weight:600}#explore button.active:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;background:var(--accent);border-radius:3px}.theme-section{margin:30px 12px 0}.theme-section h2{font-size:12px;letter-spacing:1px;margin-bottom:13px}.themes{gap:7px}.theme-dot{min-height:32px;border-radius:7px;padding:5px}.theme-dot span{width:18px;height:18px;border-radius:4px}.rail-foot{display:flex;gap:8px;align-items:flex-start;margin:32px 12px 4px}.rail-foot p{font-size:12px;color:var(--onSurfaceVariant);line-height:1.9}.demo-indicator{height:6px;width:6px;background:var(--primary);border-radius:50%;margin-top:7px;flex-shrink:0}.rail .reset{margin-left:12px;font-size:12px}.rail .license{margin-left:16px;margin-top:4px;font-size:12px}.experience{padding:28px 0 32px;min-width:0}.demo-bar{border-bottom:1px solid var(--outline);padding:0 0 17px;margin:0 0 24px;font-size:12px;letter-spacing:.3px;min-height:30px}.demo-bar>span{display:flex;align-items:center;gap:8px}.demo-bar i{display:inline-block;height:5px;width:5px;border-radius:50%;background:var(--primary)}.demo-bar .quiet{display:inline-flex!important;font-size:12px;min-height:26px;padding:0}.app{border:0;box-shadow:none;border-radius:0;background:transparent;min-height:0;overflow:visible}.toolbar{padding:0;min-height:64px;margin:0 0 25px;gap:12px}.toolbar h2{font-family:var(--font-display);font-size:28px;line-height:38px;font-weight:700}.toolbar .subtitle{font-size:12px;margin-top:3px}.toolbar .icon-button{border:1px solid var(--outline);background:var(--surface);border-radius:50%;width:42px;min-height:42px;padding:10px}.toolbar .publish-button{background:var(--heroSurface);color:var(--onHero);padding:11px 17px;gap:6px;border-radius:8px;min-height:42px}.toolbar .publish-button svg{width:17px!important;height:17px!important}.content{padding:0;min-height:0}.bottom-nav{display:none}.prototype-foot{border-top:1px solid var(--outline);margin-top:38px;padding-top:16px;font-size:12px;color:var(--onSurfaceVariant);display:flex;justify-content:space-between;gap:10px}.card{border-radius:12px;box-shadow:none;padding:22px}.notice{border-radius:8px}.section-heading{margin:28px 0 15px}.section-heading h2{font-family:var(--font-display);font-size:18px;line-height:26px}.section-heading .quiet{font-size:12px;min-height:28px;padding:2px 0}.section-heading .caption{font-size:12px}.home-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px;align-items:start}.home-main,.home-aside{min-width:0}.home-aside .section-heading:first-child{margin-top:0}.boarding-pass{background:var(--heroSurface);color:var(--onHero);border-radius:12px;overflow:hidden;position:relative;margin-bottom:22px}.pass-top{padding:23px 25px 20px;position:relative}.pass-top:before{content:"";position:absolute;right:0;top:0;width:6px;height:100%;background:var(--accent)}.pass-eyebrow{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:1.2px;opacity:.8}.pass-eyebrow svg{width:16px!important;height:16px!important}.boarding-pass h3{font-family:var(--font-display);font-size:28px;line-height:1.6;font-weight:600;margin:11px 0 13px;letter-spacing:1px}.pass-route{display:flex;align-items:center;gap:12px;font-size:12px}.pass-route .route-name{font-weight:600}.route-line{width:56px;position:relative;height:1px;border-top:1px dashed color-mix(in srgb,var(--onHero) 50%,transparent)}.route-line:before,.route-line:after{position:absolute;content:"";width:5px;height:5px;border:1px solid var(--onHero);border-radius:50%;top:-3px}.route-line:before{left:0}.route-line:after{right:0;background:var(--accent);border-color:var(--accent)}.pass-stub{border-top:1px dashed color-mix(in srgb,var(--onHero) 30%,transparent);padding:13px 25px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;position:relative}.pass-stub:before,.pass-stub:after{content:"";width:14px;height:14px;border-radius:50%;background:var(--background);position:absolute;top:-7px}.pass-stub:before{left:-7px}.pass-stub:after{right:-7px}.pass-stub strong{font-weight:500;font-size:12px}.pass-stub b{font-size:16px;font-weight:600;margin:0 3px;font-variant-numeric:tabular-nums}.valid-stamp{border:1px solid var(--accent);color:var(--accent);font-size:12px;letter-spacing:1px;line-height:17px;padding:3px 7px;border-radius:3px;transform:rotate(-5deg)}.shortcuts{margin:0 0 25px;gap:12px;padding:0}.shortcuts button{font-size:12px;gap:8px;min-height:68px}.shortcut-icon{border:0;background:var(--surfaceVariant);border-radius:12px;padding:12px}.shortcut-icon svg{height:20px!important;width:20px!important}.feed-stack{position:relative;padding-left:20px}.feed-stack:before{content:"";border-left:1px dashed var(--outline);left:4px;top:12px;bottom:0;position:absolute}.feed-card{position:relative;padding:20px;margin-bottom:18px;background:var(--surface);border-radius:10px;border:1px solid var(--outline)}.feed-card:before{content:"";position:absolute;top:25px;left:-22px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:2px solid var(--background);box-shadow:0 0 0 1px var(--outline)}.author{margin-bottom:12px;gap:9px}.author strong{font-size:12px}.author .caption{font-size:12px;line-height:17px}.avatar{background:var(--surfaceVariant);font-size:12px;width:32px;height:32px}.feed-text{font-size:14px;line-height:1.9}.feed-art{margin-top:16px;position:relative;overflow:hidden;border-radius:6px;background:var(--background)}.feed-art>svg{display:block;width:100%;height:auto;max-height:230px}.art-label{position:absolute;right:10px;bottom:8px;background:var(--surface);color:var(--onSurfaceVariant);padding:2px 6px;border-radius:3px;font-size:12px}.feed-actions{margin-top:14px;padding-top:9px;gap:18px}.feed-actions button{font-size:12px;min-height:32px}.comments{border-radius:5px;font-size:12px;line-height:1.8}.side-panel{background:var(--surface);border:1px solid var(--outline);border-radius:10px;padding:18px;margin-bottom:22px}.side-panel h3{font-family:var(--font-display);font-size:16px;margin-bottom:4px}.side-panel .task{padding:13px 0;gap:9px}.side-panel .task:last-child{border-bottom:0;padding-bottom:3px}.side-panel .task h3{font-family:var(--font-body);font-size:13px;line-height:21px;margin:0}.side-panel .task .caption{font-size:12px;line-height:18px;margin-top:4px}.side-panel .task-toggle{width:20px;min-height:20px;height:20px;padding:2px;border-radius:5px;margin-top:2px}.side-panel .task-toggle svg{width:13px!important;height:13px!important}.agenda{align-items:flex-start;padding:13px 0;gap:12px}.agenda:last-child{border-bottom:0}.date-tag{display:flex;flex-direction:column;align-items:center;min-width:34px;font-size:18px;font-weight:600;line-height:24px;font-variant-numeric:tabular-nums}.date-tag small{font-size:12px;font-weight:400;color:var(--onSurfaceVariant);line-height:16px}.agenda h3{font-family:var(--font-body);font-size:12px;line-height:21px;margin:0}.agenda .caption{font-size:12px;line-height:18px;margin-top:3px}.agenda .icon-button{width:22px;min-height:24px;padding:2px}.aside-link{display:flex;gap:12px;align-items:center;background:transparent;padding:15px 0;border-top:1px solid var(--outline);color:var(--onSurface);text-align:left;width:100%;border-radius:0;justify-content:flex-start;font-size:13px}.aside-link svg{color:var(--primary);width:19px!important;height:19px!important}.aside-link .caption{font-weight:400;font-size:12px}.receipt-line{border-top:1px dashed var(--outline);margin-top:18px;padding-top:13px;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.4px;color:var(--onSurfaceVariant)}.mini-label{font-size:12px;color:var(--onSurfaceVariant);letter-spacing:.8px;margin-bottom:9px}.kitchen-intro{border-bottom:1px solid var(--outline);padding-bottom:23px;align-items:flex-start;margin:0 0 22px}.kitchen-intro h2{font-family:var(--font-display);font-size:26px;line-height:40px}.cart-button{background:var(--heroSurface);color:var(--onHero);border-radius:9px;min-height:48px;padding:12px 16px}.kitchen-links{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.kitchen-links button{background:transparent;color:var(--onSurfaceVariant);border:1px solid var(--outline);font-size:12px;min-height:36px;padding:7px 13px;gap:7px;font-weight:400}.kitchen-links svg{width:15px!important;height:15px!important}.search{max-width:420px;height:46px}.chips{gap:7px;margin-bottom:22px}.chip{min-height:36px;font-size:12px;border:0;background:transparent;padding:7px 15px;border-radius:6px}.chip.selected{background:var(--heroSurface);color:var(--onHero)}.dish-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.dish{border-radius:10px;padding:0;background:var(--surface)}.dish-cover{padding:0;display:block;border-radius:0;width:100%;background:var(--surfaceVariant);color:var(--primary);position:relative;aspect-ratio:1.25;overflow:hidden}.dish-cover>svg{width:100%;height:100%;stroke-width:1.5}.dish-cover .art-label{font-size:8px}.dish-info{padding:15px}.dish-info h3{font-size:15px;line-height:23px}.dish-info .caption{font-size:12px;min-height:38px;margin:4px 0 12px}.dish-bottom{border-top:1px dashed var(--outline);padding-top:12px}.points{font-size:12px;font-variant-numeric:tabular-nums}.add-button{background:var(--heroSurface);color:var(--onHero);width:32px;min-height:32px;padding:7px}.page-cart,.page-orders,.page-letters,.page-tickets,.page-account,.page-couple,.page-points{max-width:760px}.resource{margin-bottom:18px}.resource h3{font-family:var(--font-display);font-size:19px;line-height:29px}.resource-actions{border-top:1px dashed var(--outline);padding-top:11px;margin-top:16px;gap:20px}.resource-actions button{font-size:12px;min-height:32px}.status{font-size:12px;border-radius:3px;background:var(--surfaceVariant);padding:3px 7px;letter-spacing:.3px}.letter{border-top:3px solid var(--primary);position:relative;padding:22px 25px;border-radius:5px 5px 10px 10px}.letter:after{content:"";position:absolute;right:22px;top:38px;width:31px;height:39px;border:1px dashed var(--outline);transform:rotate(6deg);pointer-events:none}.letter>.row{padding-right:49px}.letter .notice{background:transparent;border-top:1px solid var(--outline);border-bottom:1px solid var(--outline);border-radius:0;margin-bottom:0;padding:18px 0;font-family:var(--font-display);font-size:15px;line-height:28px}.ticket{border-left:0;border-radius:9px;padding:0;overflow:hidden}.ticket>.row,.ticket>.caption,.ticket>.feed-text{margin-left:23px;margin-right:23px}.ticket>.row{padding-top:20px}.ticket .resource-actions{padding:12px 23px;margin-top:20px;position:relative}.ticket .resource-actions:before,.ticket .resource-actions:after{content:"";height:14px;width:14px;border-radius:50%;position:absolute;top:-7px;background:var(--background);border:1px solid var(--outline)}.ticket .resource-actions:before{left:-8px}.ticket .resource-actions:after{right:-8px}.profile{display:grid;grid-template-columns:1fr auto;align-items:center;padding:22px 0 30px;border-bottom:1px solid var(--outline);margin-bottom:28px}.profile-head h3{font-family:var(--font-display);font-size:28px}.profile-head .avatar{border-radius:14px;background:var(--heroSurface);color:var(--onHero);width:64px;height:64px;font-family:var(--font-display);font-size:26px}.stats{min-width:260px;margin:0}.stats button{padding:10px 23px}.stats strong{font-size:26px;font-family:var(--font-display);line-height:36px}.stats span{font-size:12px}.group-label{font-size:12px;letter-spacing:.7px;margin:24px 0 10px}.group{border-radius:10px}.settings-row{min-height:70px;padding:17px 21px}.settings-row .caption{font-size:12px;margin-top:3px}.theme-grid{max-width:700px;gap:18px}.theme-tile{border-radius:10px;padding:16px;min-height:144px}.theme-sample{border-radius:5px;height:62px;margin-bottom:13px}.theme-sample i{border-radius:3px}.theme-tile .caption{font-size:12px}.task{padding:21px 0;gap:13px}.task-toggle{border-radius:6px;width:23px;min-height:23px;height:23px;margin-top:2px}.task h3{font-size:15px;line-height:23px}.task .caption{margin-top:3px}.task.done h3{text-decoration:none}.task.done .grow{opacity:.65}.task.done .task-toggle{background:var(--heroSurface);color:var(--onHero);border-color:var(--heroSurface)}.task-summary{display:flex;align-items:baseline;gap:8px;margin:0 0 22px;color:var(--onSurfaceVariant);font-size:12px}.task-summary strong{font-family:var(--font-display);font-size:30px;line-height:40px;color:var(--onSurface)}.calendar-controls{max-width:760px;padding:16px 0;border-top:2px solid var(--onSurface);margin-bottom:13px}.calendar-controls strong{font-family:var(--font-display);font-size:24px}.calendar-controls button{border-radius:5px;background:var(--surfaceVariant);min-height:36px}.calendar-grid,.calendar-years{max-width:760px;background:var(--surface);padding:15px;border:1px solid var(--outline);border-radius:9px}.calendar-grid button{min-height:58px;font-size:15px;border-radius:7px}.calendar-grid button.selected{background:var(--heroSurface);color:var(--onHero)}.calendar-grid button.has-event:after{background:var(--accent)}.calendar-years button{border-radius:7px;border:1px solid var(--outline)}.page-calendar>.section-heading,.page-calendar>.resource{max-width:760px}.cart-item{background:var(--surface);padding:20px;margin-bottom:12px;border:1px solid var(--outline);border-radius:9px}.cart-item h3{font-size:15px}.quantity button{background:var(--surfaceVariant);color:var(--onSurface);border-radius:5px}.total{border-top:1px dashed var(--outline);margin-top:22px;padding:22px 0}.total strong{font-family:var(--font-display);font-size:30px;color:var(--onSurface)}.full-button{max-width:760px}.hero{background:var(--heroSurface);color:var(--onHero);border-radius:10px;padding:26px}.hero .caption{color:var(--onHero);opacity:.8}.hero h3{font-family:var(--font-display);font-size:32px;line-height:42px;margin:8px 0}.hero>.pair span{background:transparent;border-color:var(--onHero);color:var(--onHero)}.hero>svg{color:var(--accent)}.line-item{padding:18px 0;font-size:14px}.line-item strong{font-variant-numeric:tabular-nums}.letter-body{font-family:var(--font-display);font-size:17px;line-height:2;background:repeating-linear-gradient(transparent 0,transparent 33px,var(--outline) 33px,var(--outline) 34px)}.modal-header h2{font-family:var(--font-display);font-size:23px;line-height:32px}.form-actions button[type=submit]{background:var(--heroSurface);color:var(--onHero)}dialog{border-radius:12px;max-width:480px;padding:26px}.modal-header .icon-button{width:36px;min-height:36px}#toast{border-radius:8px;font-size:12px;background:var(--heroSurface);color:var(--onHero);bottom:30px}.empty h3{font-family:var(--font-display);font-size:20px}
@media(max-width:1120px){.studio{grid-template-columns:180px minmax(0,1fr);padding:0 26px;gap:30px;max-width:1200px}.rail{padding-right:20px}.home-layout{grid-template-columns:minmax(0,1fr) 220px;gap:22px}.pass-top{padding:21px}.boarding-pass h3{font-size:25px}.pass-stub{padding:12px 21px}.dish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile{display:block}.stats{margin-top:24px;min-width:0;max-width:400px}.home-aside .side-panel{padding:15px}}
@media(max-width:900px){.studio{grid-template-columns:156px minmax(0,1fr);gap:24px;padding:0 20px}.brand{font-size:22px;gap:8px}.brand-symbol{padding:7px}.brand small{font-size:12px;letter-spacing:.5px}.rail{padding-right:16px}.home-layout{grid-template-columns:1fr}.home-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;grid-row:2}.home-aside .side-panel{margin-bottom:0}.home-aside>.aside-link,.home-aside>.mini-label{display:none}.home-main{display:contents}.boarding-pass{grid-row:1}.shortcuts{grid-row:3;margin:0}.home-stream{grid-row:4}.toolbar h2{font-size:26px}.prototype-foot{font-size:12px}}
@media(max-width:650px){.studio{display:block;padding:0}.rail{display:none}.experience{padding:0}.demo-bar{margin:0;padding:8px 20px;background:var(--surfaceVariant);border:0;font-size:12px;min-height:34px}.demo-bar .quiet{font-size:12px;min-height:20px}.app{padding:24px 20px 110px;min-height:calc(100dvh - 34px)}.toolbar{min-height:52px;margin-bottom:23px;gap:10px}.toolbar h2{font-size:25px;line-height:35px}.toolbar .subtitle{font-size:12px;line-height:19px;max-width:230px}.toolbar .icon-button{width:38px;min-height:38px;padding:9px}.toolbar .publish-button{min-height:38px;padding:9px 12px;font-size:12px}.home-layout{display:flex;flex-direction:column;gap:0}.boarding-pass{width:100%;margin-bottom:22px}.pass-top{padding:22px}.boarding-pass h3{font-size:27px;line-height:1.65;margin:10px 0 14px}.pass-eyebrow{font-size:12px;letter-spacing:.8px}.pass-stub{padding:12px 22px;font-size:12px}.pass-stub strong{font-size:12px}.valid-stamp{font-size:8px;line-height:15px}.shortcuts{order:1;width:100%;margin-bottom:25px;gap:10px}.shortcuts button{min-height:62px;font-size:12px}.shortcut-icon{padding:11px;border-radius:10px}.home-aside{order:2;width:100%;grid-template-columns:1fr;gap:16px;margin-bottom:4px}.home-aside .side-panel{padding:16px 18px}.home-aside .side-panel:nth-child(2){display:none}.home-aside .section-heading{margin-bottom:5px}.home-aside .task{padding:11px 0}.home-stream{order:3;width:100%}.home-stream .section-heading{margin-top:25px}.feed-card{padding:17px;border-radius:9px}.feed-stack{padding-left:17px}.feed-stack:before{left:3px}.feed-card:before{left:-20px;top:24px}.feed-art>svg{max-height:210px}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;margin:0;border:0;border-top:1px solid var(--outline);border-radius:0;background:var(--surface);padding:7px 12px max(8px,env(safe-area-inset-bottom));gap:4px;box-shadow:none;z-index:5}.bottom-nav button{background:transparent;color:var(--onSurfaceVariant);padding:7px 4px;gap:4px;min-height:52px;border-radius:0;font-size:12px;position:relative;font-weight:400;line-height:16px}.bottom-nav button svg{width:20px!important;height:20px!important}.bottom-nav button.active{color:var(--onSurface);background:transparent;font-weight:600}.bottom-nav button.active:before{content:"";position:absolute;width:27px;height:3px;top:0;border-radius:3px;background:var(--accent)}.prototype-foot{display:none}.kitchen-intro{padding-bottom:20px;margin-bottom:17px}.kitchen-intro h2{font-size:24px;line-height:34px}.kitchen-intro .caption{font-size:12px;max-width:210px}.cart-button{padding:11px;min-height:42px}.cart-button svg{width:19px!important;height:19px!important}.cart-button span{font-size:12px}.kitchen-links{gap:6px;margin-bottom:18px}.kitchen-links button{font-size:12px;min-height:33px;padding:5px 9px;gap:5px}.search{margin-bottom:14px;max-width:none}.chips{gap:5px;margin-bottom:18px}.chip{padding:7px 11px;min-height:34px}.dish-grid{gap:13px}.dish-info{padding:12px}.dish-info h3{font-size:14px;line-height:22px}.dish-info .caption{font-size:12px;line-height:18px;min-height:36px;margin-bottom:10px}.dish-bottom{padding-top:10px;gap:5px}.points{font-size:12px}.add-button{width:28px;min-height:28px;padding:6px}.add-button svg{height:16px!important;width:16px!important}.resource{padding:18px;border-radius:9px}.resource h3{font-size:18px;line-height:27px}.ticket{padding:0}.ticket .resource-actions{padding:10px 20px}.letter{padding:20px}.profile{padding:4px 0 24px;display:block}.profile-head .avatar{width:56px;height:56px;font-size:23px}.profile-head h3{font-size:25px}.stats{max-width:none;margin:21px 0 0}.stats button{padding:5px 20px}.settings-row{padding:15px 16px;min-height:67px;font-size:13px}.settings-row .caption{font-size:12px}.theme-grid{gap:13px}.theme-tile{padding:12px;min-height:130px}.theme-tile .caption{font-size:12px}.calendar-grid{padding:9px;gap:2px}.calendar-grid button{min-height:42px;font-size:14px}.calendar-controls strong{font-size:23px}.calendar-years{padding:12px;gap:9px}.calendar-years button{min-height:65px}.task{padding:17px 0}.task h3{font-size:14px}.task .caption{font-size:12px}.task-toggle{width:22px;min-height:22px;height:22px}.hero{padding:23px}.hero h3{font-size:29px}#toast{bottom:90px;max-width:calc(100% - 32px)}.card{padding:18px}.dish{padding:0}.feed-card{padding:17px}.side-panel{padding:16px 18px}.resource.ticket{padding:0}dialog{padding:22px}.modal-header h2{font-size:21px}}
@media(max-width:350px){.app{padding-left:16px;padding-right:16px}.demo-bar{padding-left:16px;padding-right:16px;font-size:12px}.toolbar h2{font-size:23px}.toolbar .publish-button{font-size:12px;padding:8px 10px;gap:4px}.boarding-pass h3{font-size:24px}.pass-top{padding:20px}.pass-stub{padding:11px 20px}.pass-eyebrow{font-size:8px}.dish-grid{gap:10px}.dish-info{padding:10px}.dish-info h3{font-size:13px}.points{font-size:12px}.kitchen-intro h2{font-size:21px}.kitchen-links button{font-size:12px;padding:5px 8px}.cart-button span{font-size:12px}.calendar-grid button{min-height:38px}}
.rail{scrollbar-width:none}
@media(max-width:650px){.kitchen-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.kitchen-links button{justify-content:flex-start}}
