.shell{grid-template-columns:var(--shell-sidebar-w) 1fr;grid-template-rows:var(--shell-topbar-h) 1fr;background:var(--bg-app);grid-template-areas:"sidebar topbar""sidebar content";height:100vh;display:grid}.shell.is-collapsed{grid-template-columns:var(--shell-sidebar-w-collapsed) 1fr}.sidebar{background:var(--brand-green);color:#b7c5bd;border-right:1px solid #021d17;flex-direction:column;grid-area:sidebar;display:flex;overflow:hidden}.sidebar-head{height:var(--shell-topbar-h);background:0 0;border-bottom:1px solid #ffffff14;justify-content:center;align-items:center;gap:10px;padding:0 14px;display:flex;position:relative}.sidebar-brand{color:#fff;font-weight:700;font-size:var(--fs-15);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;display:flex;overflow:hidden}.sidebar-brand .mark{border-radius:var(--radius);background:var(--color-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:flex}.sidebar-brand .brand-logo-full{width:auto;max-width:172px;height:40px;display:block}.sidebar-brand .brand-logo-mark{flex-shrink:0;width:36px;height:36px;display:none}.shell.is-collapsed .sidebar-brand .brand-logo-full,.shell.is-collapsed .sidebar-brand .brand-logo-mark{display:none}.sidebar-collapse-btn{color:#8fa59b;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.sidebar-collapse-btn:hover{color:#fff;background:#ffffff14}.shell.is-collapsed .sidebar-head{justify-content:center;padding:0 10px}.sidebar-section-label{text-transform:uppercase;letter-spacing:.08em;color:#748b81;padding:14px 20px 6px;font-size:11px;font-weight:600}.shell.is-collapsed .sidebar-section-label{opacity:0;height:8px;padding:0;overflow:hidden}.sidebar-nav{flex:1;padding:8px 10px;overflow:auto}.nav-item{border-radius:var(--radius);color:#bccac2;font-size:var(--fs-14);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);align-items:center;gap:12px;margin-bottom:2px;padding:9px 12px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item .ico{flex-shrink:0;width:18px;height:18px}.nav-item .label{white-space:nowrap;overflow:hidden}.nav-item .nav-count{border-radius:var(--radius-pill);color:#c9d3cd;background:#ffffff1a;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:500}.nav-item.is-active{color:#fff;background:#ffffff1a}.nav-item.is-active:before{content:"";background:var(--color-primary);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:-10px}.nav-item.is-active .nav-count{background:var(--color-primary);color:var(--color-on-primary)}.shell.is-collapsed .nav-item{justify-content:center;padding:9px 0}.shell.is-collapsed .nav-item .label,.shell.is-collapsed .nav-item .nav-count,.shell.is-collapsed .sidebar-brand span{display:none}.sidebar-foot{color:#748b81;border-top:1px solid #ffffff14;align-items:center;gap:8px;padding:12px 16px;font-size:11px;display:flex}.sidebar-foot .status-dot{background:var(--ok);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #1e9e6a2e}.shell.is-collapsed .sidebar-foot{justify-content:center}.shell.is-collapsed .sidebar-foot .version-text{display:none}.topbar{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:5;grid-area:topbar;align-items:center;gap:16px;padding:0 24px;display:flex;position:relative}.tenant-block{border-right:1px solid var(--border);align-items:center;gap:12px;height:36px;padding-right:16px;display:flex}.tenant-crest{background:var(--color-primary-soft);width:36px;height:36px;font-family:var(--font-mono);color:var(--color-primary-ink);letter-spacing:.05em;border:1px solid var(--color-primary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.tenant-name{font-size:var(--fs-14);font-weight:600;line-height:1.1}.tenant-sub{color:var(--text-muted);margin-top:2px;font-size:11px}.topbar-search{width:520px;max-width:38vw;position:absolute;left:50%;transform:translate(-50%)}.topbar-search input{background:var(--bg-sunken);border-radius:var(--radius);width:100%;height:38px;font-size:var(--fs-14);transition:background var(--t-fast), border-color var(--t-fast);border:1px solid #0000;padding:0 12px 0 38px}.topbar-search input:focus{background:var(--bg-surface);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.topbar-search .ico{width:16px;height:16px;color:var(--text-faint);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.topbar-search .kbd{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:11px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.topbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.year-select{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-surface);height:36px;font-size:var(--fs-13);cursor:pointer;align-items:center;gap:6px;padding:0 10px;font-weight:500;display:flex}.year-select:hover{background:var(--bg-muted)}.year-select .ico{color:var(--text-muted)}.icon-btn{border-radius:var(--radius);cursor:pointer;width:36px;height:36px;color:var(--text-muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex;position:relative}.icon-btn:hover{background:var(--bg-sunken);color:var(--text)}.icon-btn .badge-count{background:var(--danger);color:#fff;border:2px solid var(--bg-surface);border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;display:flex;position:absolute;top:4px;right:4px}.user-pill{border-radius:var(--radius-pill);cursor:pointer;align-items:center;gap:10px;height:36px;padding:0 12px 0 4px;display:flex}.user-pill:hover{background:var(--bg-sunken)}.user-pill .name{font-size:var(--fs-13);font-weight:500;line-height:1.1}.user-pill .role{color:var(--text-muted);margin-top:1px;font-size:11px}.content{grid-area:content;padding:20px 28px 40px;overflow:auto}.page-head{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.page-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-title-block .title{font-size:var(--fs-24);letter-spacing:-.01em;font-weight:600;line-height:1.2}.page-title-block .sub{font-size:var(--fs-14);color:var(--text-muted);margin-top:4px}.page-actions{align-items:center;gap:8px;display:flex}.notif-pop{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:360px;box-shadow:var(--shadow-lg);z-index:30;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-pop .head{border-bottom:1px solid var(--divider);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.notif-item{border-bottom:1px solid var(--divider);cursor:pointer;gap:10px;padding:12px 16px;display:flex}.notif-item:last-child{border-bottom:0}.notif-item:hover{background:var(--bg-muted)}.notif-item .dot{background:var(--color-primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.notif-item.read .dot{background:0 0}.notif-item .title{font-size:var(--fs-13);font-weight:500}.notif-item .body{font-size:var(--fs-12);color:var(--text-muted);margin-top:2px}.notif-item .time{color:var(--text-faint);margin-top:4px;font-size:11px}
