/* Mobile-first workspace structure. Existing visual tokens remain authoritative. */
body{--dock-height:80px}.shell{display:block;padding-bottom:0;min-height:100dvh}.sidebar{display:none}.stage{min-width:0}.topbar{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-height:64px;padding:var(--space-2) var(--space-4);padding-top:calc(var(--space-2) + env(safe-area-inset-top));background:var(--color-surface);gap:var(--space-2)}.topbar>.icon-btn{justify-self:end}.lobby-back{display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;justify-self:start;white-space:nowrap}.workspace-name{font:600 var(--type-card-size)/var(--type-card-leading) var(--font-ui);text-align:center;overflow-wrap:anywhere}.shell-wordmark{grid-column:1 / 3;font-size:var(--type-card-size);font-weight:600}main{padding:var(--space-6) var(--space-4);max-width:1200px;min-width:0}.page-head{margin-bottom:var(--space-6);align-items:center}.page-head p{margin-top:var(--space-1)}.page-head h1{margin:0}.menu-list{display:flex;flex-direction:column}.menu-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-1);min-height:48px;text-align:left;width:100%;font:500 var(--type-control-size)/var(--type-control-leading) var(--font-ui)}.menu-row>span:first-child{flex:1}.menu-row+.menu-row{border-top:1px solid var(--color-separator)}.menu-row[aria-pressed=true]{color:var(--color-accent-text)}.menu-section{margin-top:var(--space-6)}dialog .dialog-head{margin-bottom:var(--space-3)}.task-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-3) var(--space-6)}.active-filter{min-height:44px;padding:var(--space-2) 0;color:var(--color-accent-text);margin-bottom:var(--space-3)}.lobby-intro{padding:var(--space-6) 0 var(--space-8)}.lobby-grid{display:grid;gap:var(--space-3)}.lobby-card{display:grid;grid-template-columns:48px minmax(0,1fr) 20px;align-items:center;gap:var(--space-4);min-height:112px;padding:var(--space-6) var(--space-4);border:1px solid var(--color-separator);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text)}.workspace-symbol{display:grid;place-items:center;width:48px;height:48px;background:var(--color-accent-tint);border-radius:var(--radius-md);color:var(--color-accent-text)}.lobby-card h2{font-size:var(--type-card-size);line-height:var(--type-card-leading);overflow-wrap:anywhere}.lobby-card>.icon{color:var(--color-text-secondary)}body[data-workspace=lobby] main{max-width:840px}body[data-workspace=planner] main{max-width:900px;padding-bottom:calc(var(--dock-height) + var(--space-6) + env(safe-area-inset-bottom))}.planner-grid{display:block}.planner-grid .group{overflow:visible}.planner-grid .task{padding:var(--space-2) var(--space-2);gap:var(--space-1);min-height:80px}.task-title{font-weight:500;overflow-wrap:anywhere}.task .grow p{margin-top:var(--space-1)}.task-context{color:var(--color-text-secondary);flex-shrink:0}.planner-primary{position:fixed;bottom:0;left:0;right:0;border-radius:0;min-height:var(--dock-height);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));padding-top:var(--space-4);z-index:7;border:0!important;border-top:1px solid var(--color-separator)!important;background:var(--color-surface)!important;color:var(--color-accent-text)!important;justify-content:flex-start;padding-left:var(--space-6)}.planner-primary .icon{background:var(--color-accent-text)}.completed-tasks{margin-top:var(--space-4)}.completed-tasks summary{padding:var(--space-3) 0;min-height:44px;cursor:pointer;color:var(--color-text-secondary);font-size:var(--type-secondary-size)}.completed-tasks .group{margin-top:var(--space-2)}.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-workspace=reader]{background:var(--reader-bg)}body[data-workspace=reader] main{padding:var(--space-8) var(--space-6) calc(var(--dock-height) + var(--space-8) + env(safe-area-inset-bottom));max-width:880px}.reader-grid{display:block}.reading-paper{border:0;border-radius:0;padding:0;background:none}.article-meta{margin-bottom:var(--space-8)}.article-meta h1{margin-top:0!important}.article-meta h1 br{display:none}.article-meta p{margin-top:var(--space-3)!important}.reading-body{font-size:var(--reader-size);line-height:var(--reader-leading)}.reading-summary{padding:var(--space-4)}.reading-dock{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;gap:var(--space-2);padding:var(--space-2) var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom));min-height:64px;z-index:7;background:var(--color-surface);border-top:1px solid var(--color-separator)}.dock-action{min-width:64px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-accent-text);border-radius:var(--radius-md)}body[data-workspace=reference] main{padding:var(--space-3) var(--space-3) calc(var(--space-6) + env(safe-area-inset-bottom))}.library-context{display:flex;align-items:center;gap:var(--space-3);min-height:56px;padding:0 var(--space-1);margin-bottom:var(--space-2)}.library-context h1{font-size:var(--type-section-size);line-height:var(--type-section-leading);margin-right:auto}.reference-grid{columns:2;column-gap:var(--space-2)}.reference-card{margin-bottom:var(--space-2);border:0;border-radius:var(--radius-md);position:relative}.reference-card[aria-pressed=true]::after{content:' ';position:absolute;inset:0;border:3px solid var(--color-accent-text);border-radius:var(--radius-md);pointer-events:none}.reference-card[aria-pressed=true]{outline:0}.reference-preview{display:block;width:100%;height:auto;max-height:60dvh;object-fit:contain;border-radius:var(--radius-md)}body[data-workspace=pos] main{padding:var(--space-3) var(--space-4) calc(96px + var(--space-6) + env(safe-area-inset-bottom))}.status-strip{padding:0;min-height:32px;border:0;background:none;border-radius:0;margin-bottom:var(--space-3);gap:var(--space-2)}.connection{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--color-success);font-size:var(--type-secondary-size);font-weight:500}.connection.offline{color:var(--color-warning)}.pos-grid{display:block;padding:0}.pos-search{margin-bottom:var(--space-4)}.pos-search .search{width:100%}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.product{border:1px solid var(--color-separator);border-radius:var(--radius-lg)}.product-info{padding:var(--space-3)}.product-info h3{font-size:var(--type-body-size);line-height:var(--type-body-leading);font-weight:500;overflow-wrap:anywhere}.product-info p{margin-top:var(--space-2)}.product img{aspect-ratio:1;object-fit:cover}.checkout-dock{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-separator);z-index:7;min-height:88px}.cart-open{display:flex;align-items:center;gap:var(--space-2);min-height:56px;text-align:left;flex:1;min-width:0}.cart-open>span:not(.icon){display:flex;flex-direction:column;gap:var(--space-1)}.cart-open strong{font-size:var(--type-card-size);line-height:var(--type-card-leading);overflow-wrap:anywhere}.checkout-dock>.btn{min-width:128px;min-height:48px}.cart-sheet .quantity .icon-btn{min-width:44px}.toast{bottom:calc(var(--dock-height) + var(--space-4) + env(safe-area-inset-bottom))}body[data-workspace=lobby] .toast,body[data-workspace=reference] .toast{bottom:calc(var(--space-6) + env(safe-area-inset-bottom))}.skip{min-height:44px}.prototype-note,.mobile-cart-bar{display:none!important}dialog{margin:auto;border-radius:var(--radius-lg);padding:var(--space-4);max-height:calc(100dvh - var(--space-8) - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain}dialog .dialog-head h2{overflow-wrap:anywhere}dialog button{white-space:normal}.dialog-actions .btn{flex-shrink:0}
@media(max-width:760px){dialog{margin:auto auto 0;width:100%;max-width:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-4) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom))}.shell{padding-bottom:0}.topbar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.sidebar{display:none!important}.stat-grid{grid-template-columns:1fr}.day-cell{min-height:128px}.page-head{flex-wrap:nowrap}.page-head>.btn{margin:0}.library-context h1{font-size:var(--type-section-size)}.reference-grid{columns:2}.reference-card{margin-bottom:var(--space-2)}}
@media(min-width:600px){.lobby-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-card{min-height:160px}.lobby-intro{padding-top:var(--space-12)}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reference-grid{columns:3}dialog{padding:var(--space-6)}}
@media(min-width:1100px){.shell{display:grid;grid-template-columns:208px minmax(0,1fr)}.sidebar{display:flex;position:sticky;top:0;height:100dvh;padding:var(--space-8) var(--space-4);gap:var(--space-8);background:var(--color-surface-secondary);border-right:1px solid var(--color-separator);border-top:0}.sidebar nav{display:flex;flex-direction:column;gap:var(--space-2)}.nav-item{flex-direction:row;text-align:left;justify-content:flex-start;font-size:var(--type-control-size);line-height:var(--type-control-leading);gap:var(--space-3);padding:var(--space-3)}.sidebar .brand,.sidebar-bottom{display:flex}.sidebar .brand{padding:0}.sidebar-bottom .identity{display:none}.sidebar-bottom{margin-top:auto;flex-direction:column}.topbar{padding:var(--space-2) var(--space-8)}.topbar>.workspace-name{font-size:var(--type-card-size)}main{padding:var(--space-8)}body[data-workspace=lobby] .shell{display:block}body[data-workspace=lobby] .topbar{max-width:1200px;margin:auto;border-bottom:0;background:none}body[data-workspace=lobby] main{padding-top:var(--space-8)}.planner-primary{position:static;min-height:44px;border:0!important;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-accent-text)!important;color:white!important;justify-content:center}.planner-primary .icon{background:white}.planner-grid{display:block}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.reading-dock,.checkout-dock{left:208px}.product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}body[data-workspace=pos] main{padding:var(--space-6) var(--space-8) calc(96px + var(--space-6))}.reference-grid{columns:4}body[data-workspace=reference] main{padding:var(--space-4) var(--space-8)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
