.app{min-height:100vh;min-height:100dvh}:root{--nav-bottom: 0px;--nav-left: 0px}@media(max-width:899px){:root{--nav-bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom))}}@media(max-width:899px)and (max-height:520px)and (orientation:landscape){:root{--nav-bottom: 0px;--nav-left: calc(72px + env(safe-area-inset-left)) }}body:has(.app.bare){--nav-bottom: 0px;--nav-left: 0px}.side{position:fixed;inset:0 auto 0 0;width:var(--nav-w);z-index:20;display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-5) var(--sp-3) var(--sp-4);background:var(--bg);border-right:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;padding:0 var(--sp-3);font-size:15px;color:var(--text-2);white-space:nowrap}.brand b{color:var(--text);font-weight:600}.brand .logo{width:32px;height:32px}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:var(--sp-3);height:40px;padding:0 var(--sp-3);border-radius:var(--r-sm);color:var(--text-2);font-weight:500;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-item:hover{background:var(--s1);color:var(--text)}.nav-item[aria-current=page]{background:var(--s2);color:var(--text)}.nav-item[aria-current=page] .ico{color:var(--accent)}.nav-item.create{margin-top:var(--sp-3);border:1px dashed var(--border-2);color:var(--text)}.nav-item.create .ico{color:var(--accent)}.side-foot{margin-top:auto;display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-1) 0 var(--sp-2)}.side-foot .who{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:6px;border-radius:var(--r-sm);color:var(--text-2);font-weight:500}.side-foot .who:hover{background:var(--s1);color:var(--text)}.srv{display:grid;place-items:center;width:24px;height:24px}.main{margin-left:var(--nav-w);min-height:100vh;outline:none}.tabbar{display:none}@media(max-width:899px){.side{display:none}.main{margin-left:0;padding-bottom:var(--nav-bottom)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#0a0e1af0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:500;color:var(--text-3);-webkit-tap-highlight-color:transparent}.tab .ti{display:grid;place-items:center;width:44px;height:28px;border-radius:14px;transition:background var(--dur) var(--ease)}.tab[aria-current=page]{color:var(--text)}.tab[aria-current=page] .ti{background:var(--s2)}.tab[aria-current=page] .ico{color:var(--accent)}.tab.create .ti{background:var(--accent-soft);color:var(--accent)}}@media(max-width:899px)and (max-height:520px)and (orientation:landscape){.main{margin-left:var(--nav-left);padding-bottom:env(safe-area-inset-bottom)}.tabbar{top:0;right:auto;width:var(--nav-left);height:auto;grid-template-columns:1fr;grid-template-rows:repeat(5,minmax(0,64px));align-content:center;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom) env(safe-area-inset-left);border-top:0;border-right:1px solid var(--border)}}.app.bare .side,.app.bare .tabbar{display:none}.app.bare .main{margin-left:0;padding-bottom:0}.page{max-width:880px;margin:0 auto;padding:var(--sp-6) var(--sp-6) var(--sp-7)}.page.narrow{max-width:640px}@media(max-width:899px){.page{padding:var(--sp-5) var(--sp-4) var(--sp-6)}}.page-h{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5);min-height:40px}.page-h h1{flex:1;min-width:0}.page-h .sub{color:var(--text-2);margin-top:4px;font-size:var(--fs-14)}@media(max-width:599px){.page-h h1{font-size:24px}}.sec-h{display:flex;align-items:baseline;gap:var(--sp-3);margin:var(--sp-6) 0 var(--sp-3)}.sec-h h2{flex:1;font-size:var(--fs-16);font-weight:600}.actionbar{position:sticky;bottom:0;z-index:30;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) calc(var(--sp-3) + env(safe-area-inset-bottom));background:#0a0e1af0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border)}.fatal{padding:64px 16px;text-align:center;color:var(--danger)}
