.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#152238;color:#f5f7fb;padding:28px 20px;gap:24px;min-height:100vh}.sidebar,.sidebar-top{display:flex;flex-direction:column}.sidebar-top{gap:20px;flex:1 1;min-height:0}.brand-row{display:flex;align-items:center;gap:10px}.brand{font-size:1.15rem;font-weight:700;letter-spacing:.02em}.nav-toggle{display:none;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:8px;background:rgba(255,255,255,.08);color:#f5f7fb;cursor:pointer;flex-shrink:0}.nav-toggle:hover{background:rgba(255,255,255,.14)}.sidebar-bar{display:contents}.nav{display:flex;flex-direction:column;gap:8px}.nav a{padding:10px 12px;border-radius:8px;color:#d7e0ef}.nav a.active,.nav a:hover{background:rgba(255,255,255,.1);color:#fff}.sidebar-user{position:relative;margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user-trigger{width:100%;display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;background:rgba(255,255,255,.04);color:#f5f7fb;text-align:left}.sidebar-user-trigger:hover{background:rgba(255,255,255,.1)}.sidebar-user-avatar{width:36px;height:36px;border-radius:999px;background:#2f6fed;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0}.sidebar-user-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1}.sidebar-user-name{font-size:.9rem;font-weight:700}.sidebar-user-name,.sidebar-user-role{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:.75rem;color:#9fb0c9;text-transform:uppercase;letter-spacing:.02em}.sidebar-user-chevron{color:#9fb0c9;flex-shrink:0;transition:transform .15s ease}.sidebar-user-chevron.is-open{transform:rotate(180deg)}.sidebar-user-menu{position:absolute;left:0;right:0;bottom:calc(100% + 8px);background:#1d2e4a;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:6px;box-shadow:0 12px 28px rgba(0,0,0,.28);z-index:30;display:flex;flex-direction:column;gap:2px}.sidebar-user-menu-item{width:100%;border:none;background:transparent;color:#d7e0ef;text-align:left;padding:10px 12px;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none;display:block}.sidebar-user-menu-item:hover{background:rgba(255,255,255,.08);color:#fff}.profile-row{display:grid;grid-template-columns:120px 1fr;grid-gap:10px;gap:10px;align-items:baseline}.content{padding:32px;min-width:0;overflow-x:hidden}@media (max-width:900px){.shell{grid-template-columns:1fr;grid-template-rows:auto auto auto;align-content:start;align-items:stretch;min-height:100dvh}.sidebar{position:relative;flex:none;flex-direction:column;align-items:stretch;gap:0;padding:8px 14px;overflow:visible}.sidebar,.sidebar-bar{min-height:-moz-fit-content;min-height:fit-content;height:-moz-fit-content;height:fit-content}.sidebar-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}.sidebar-top{flex-direction:row;align-items:center;flex:0 0 auto;gap:12px;min-width:0}.nav-toggle{display:inline-flex}.nav{display:none;position:absolute;left:12px;right:12px;top:calc(100% + 8px);flex-direction:column;gap:4px;padding:8px;background:#1d2e4a;border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 12px 28px rgba(0,0,0,.28);z-index:40}.sidebar.is-nav-open .nav{display:flex}.sidebar-user{margin-top:0;padding-top:0;border-top:none;min-width:0;flex-shrink:0}.brand{font-size:1rem;line-height:1.2}.sidebar-user-avatar{width:32px;height:32px;font-size:.75rem}.sidebar-user-trigger{width:auto;padding:2px;gap:0}.sidebar-user-chevron,.sidebar-user-meta{display:none}.sidebar-user-menu{bottom:auto;top:calc(100% + 8px);left:auto;right:0;min-width:180px}.content{align-self:start;width:100%;min-height:0;padding:12px 16px calc(20px + 64px + env(safe-area-inset-bottom, 0px))}.shell:not(:has(.purchase-register-layout)):not(:has(.app-task-layout)) .nav-toggle{display:none}.shell:not(:has(.purchase-register-layout)):not(:has(.app-task-layout)) .nav{display:none!important}.shell:has(.app-task-layout) .content,.shell:has(.purchase-register-layout) .content{padding-bottom:0}}button.sidebar-user-menu-item.sidebar-logout{background:rgba(189,10,10,.18);color:#ffd0d0;border:1px solid rgba(255,150,150,.35)}button.sidebar-user-menu-item.sidebar-logout:hover{background:#bd0a0a;color:#ffffff;border-color:#bd0a0a}.app-tab-bar,.app-tab-more-backdrop{display:none}@media (max-width:900px){.shell:not(:has(.purchase-register-layout)):not(:has(.app-task-layout)) .app-tab-bar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:50;background:#152238;border-top:1px solid rgba(255,255,255,.1);padding:6px 8px calc(6px + env(safe-area-inset-bottom, 0px));box-shadow:0 -8px 24px rgba(0,0,0,.18)}.app-tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;padding:4px 2px;border:none;border-radius:10px;background:transparent;color:#9fb0c9;font:inherit;font-size:.68rem;font-weight:700;letter-spacing:.01em;text-decoration:none;cursor:pointer}.app-tab-item svg{width:22px;height:22px}.app-tab-item.is-active,.app-tab-item[aria-current=page]{color:#fff;background:rgba(255,255,255,.1)}.app-tab-more-backdrop{display:block;position:fixed;inset:0;z-index:60;background:rgba(15,23,36,.45);border:none;padding:0}.app-tab-more-sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;max-height:min(72svh,100%);overflow:auto;background:var(--surface,#fff);border-radius:16px 16px 0 0;padding:10px 16px calc(16px + env(safe-area-inset-bottom, 0px));box-shadow:0 -12px 32px rgba(0,0,0,.2);animation:app-tab-sheet-in .28s cubic-bezier(.32,.72,0,1)}.app-tab-more-sheet:before{content:"";display:block;width:36px;height:4px;border-radius:999px;background:color-mix(in srgb,var(--line) 80%,#999);margin:2px auto 14px}.app-tab-more-sheet h3{margin:0 0 10px;font-size:1rem}.app-tab-more-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.app-tab-more-list a,.app-tab-more-list button{width:100%;display:block;text-align:left;padding:14px 12px;border-radius:10px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface,#fff) 92%,var(--line));color:inherit;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.app-tab-more-list a.is-active{border-color:color-mix(in srgb,var(--accent,#2f6fed) 45%,var(--line));background:color-mix(in srgb,var(--accent,#2f6fed) 10%,#fff)}}@keyframes app-tab-sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (max-width:900px) and (prefers-reduced-motion:reduce){.app-tab-more-sheet{animation:none}}