.shell{display:grid;grid-template-rows:52px 5px 1fr;grid-template-columns:52px 1fr;height:100vh;overflow:hidden}.shell__header{grid-column:1 / -1;grid-row:1;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-6) 0 var(--space-4);gap:var(--space-3);z-index:10}.shell__header-brand{display:flex;align-items:center;gap:var(--space-2);flex:1}.shell__logo-mark{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer}.shell__product{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--color-text)}.shell__breadcrumb-sep{color:var(--color-border-strong);font-size:var(--font-size-base);-webkit-user-select:none;user-select:none}.shell__module-name,.shell__page-name{color:var(--color-text-subtle);font-size:var(--font-size-base)}.shell__header-right{display:flex;align-items:center;gap:var(--space-3)}.shell__company-pill{font-size:var(--font-size-sm);color:var(--color-text-subtle);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:3px 12px;font-weight:var(--font-weight-medium)}.shell__avatar{width:32px;height:32px;background:var(--color-navy);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;flex-shrink:0}.shell__logout-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-subtle);cursor:pointer;transition:background .1s,color .1s;flex-shrink:0}.shell__logout-btn svg{width:15px;height:15px}.shell__logout-btn:hover{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger)}.shell__gradient{grid-column:1 / -1;grid-row:2;background:linear-gradient(90deg,transparent 0%,#D94828 18%,#E86030 50%,#D94828 82%,transparent 100%)}.shell__sidebar{grid-column:1;grid-row:3;position:relative;z-index:50;background:var(--color-surface);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);border-radius:0 0 var(--radius-xl) 0;align-self:start;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 57px);scrollbar-width:none;-ms-overflow-style:none;width:52px;padding:10px 0 14px;gap:4px;transition:width .22s cubic-bezier(.4,0,.2,1),box-shadow .22s cubic-bezier(.4,0,.2,1)}.shell__sidebar::-webkit-scrollbar{width:0}.shell__sidebar:hover{width:220px;box-shadow:4px 0 24px #0000001a;scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.shell__sidebar:hover::-webkit-scrollbar{width:4px}.shell__sidebar:hover::-webkit-scrollbar-track{background:transparent}.shell__sidebar:hover::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:2px}.mod-group{flex-shrink:0}.mod-group+.mod-group{margin-top:4px;padding-top:4px;border-top:1px solid var(--color-border)}.mod-header{display:flex;align-items:center;gap:10px;padding:3px 6px;cursor:pointer;-webkit-user-select:none;user-select:none;border-left:2px solid transparent;transition:background .12s}.mod-header:hover{background:var(--color-navy-subtle)}.mod-header:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.shell__sidebar:hover .mod-header--active{border-left-color:var(--color-accent)}.mod-icon{width:38px;height:38px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-subtle);transition:background .12s,color .12s}.mod-icon svg{width:18px;height:18px}.mod-header:hover .mod-icon{background:var(--color-navy-subtle);color:var(--color-text)}.mod-icon--active{color:var(--color-accent)}.mod-header:hover .mod-icon--active{background:var(--color-navy-subtle);color:var(--color-accent)}.mod-text{flex:1;min-width:0;overflow:hidden}.mod-name{font-size:13px;font-weight:600;color:var(--color-text-subtle);white-space:nowrap;display:block}.mod-name--active{color:var(--color-text)}.mod-chevron{width:14px;height:14px;flex-shrink:0;color:var(--color-text-subtle);opacity:.45;transition:transform .18s;pointer-events:none}.mod-chevron svg{width:14px;height:14px}.mod-chevron--open{transform:rotate(90deg)}@media (prefers-reduced-motion: reduce){.shell__sidebar,.mod-chevron,.mod-nav{transition:none}}.mod-nav{max-height:0;overflow:hidden;transition:max-height .25s cubic-bezier(.4,0,.2,1)}.mod-nav--open{max-height:600px}.nav-item{display:flex;align-items:center;gap:10px;padding:3px 6px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.nav-item:hover{background:var(--color-navy-subtle)}.nav-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.nav-item-icon{width:38px;height:38px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-subtle);transition:background .1s,color .1s}.nav-item-icon svg{width:18px;height:18px}.nav-item:hover .nav-item-icon{background:var(--color-navy-subtle);color:var(--color-text)}.nav-item--active .nav-item-icon,.nav-item--active:hover .nav-item-icon{background:var(--color-accent);color:#fff}.nav-item-label{font-size:13px;font-weight:400;color:var(--color-text-subtle);white-space:nowrap;overflow:hidden}.nav-item--active .nav-item-label{color:var(--color-text);font-weight:500}.sidebar-footer{padding:8px 6px;border-top:1px solid var(--color-border)}.sidebar-company{font-size:11px;color:var(--color-text-subtle);white-space:nowrap;padding:0 6px;max-height:0;opacity:0;overflow:hidden;transition:max-height .22s cubic-bezier(.4,0,.2,1),opacity .15s}.shell__sidebar:hover .sidebar-company{max-height:24px;opacity:1;margin-bottom:4px}.sidebar-signout{display:flex;align-items:center;gap:10px;padding:3px 6px;border-radius:var(--radius-lg);cursor:pointer;background:transparent;border:none;color:var(--color-text-subtle);font-size:12px;font-family:inherit;transition:background .1s,color .1s;width:100%}.sidebar-signout:hover,.sidebar-signout:hover .nav-item-icon{background:var(--color-danger-bg);color:var(--color-danger)}.shell__page{grid-column:2;grid-row:3;overflow:auto;background:var(--color-page-bg);padding:var(--space-6);min-width:0}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}.spinner--sm{width:16px;height:16px}.spinner--md{width:24px;height:24px}.spinner--lg{width:40px;height:40px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}:root{--color-navy: #1B2B47;--color-navy-dark: #142038;--color-navy-subtle: rgba(27,43,71,.08);--color-primary: #1B2B47;--color-primary-hover: #142038;--color-primary-text: #ffffff;--color-accent: #3575D4;--color-accent-hover: #2B68C8;--color-page-bg: #F2F4F7;--color-surface: #ffffff;--color-surface-raised: #F8F9FB;--color-border: #E1E5ED;--color-border-strong: #C8CFDC;--color-text: #1B2B47;--color-text-subtle: #5A6580;--color-text-disabled: #9BA8BB;--color-danger: #C0392B;--color-danger-bg: #FEF2F2;--color-success: #166534;--color-success-bg: #F0FDF4;--color-warning: #92400E;--color-warning-bg: #FFFBEB;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 28px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-page-bg);-webkit-font-smoothing:antialiased}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.page-loading{display:flex;align-items:center;justify-content:center;height:240px}.page-error{color:var(--color-danger);background:var(--color-danger-bg);border:1px solid #FCA5A5;border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);font-size:var(--font-size-sm)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-5)}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1.3}.page-subtitle{color:var(--color-text-subtle);font-size:var(--font-size-sm);margin-top:var(--space-1);line-height:1.5}.btn{display:inline-flex;align-items:center;gap:var(--space-2);border:1px solid transparent;border-radius:var(--radius-md);padding:7px var(--space-4);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background .12s,color .12s,border-color .12s,box-shadow .12s;white-space:nowrap;font-family:inherit}.btn--primary{background:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn--secondary:hover{background:var(--color-surface-raised)}.btn--ghost{background:transparent;color:var(--color-text);border-color:var(--color-border)}.btn--ghost:hover{background:var(--color-surface-raised)}.btn--danger-ghost{background:transparent;color:var(--color-danger);border-color:var(--color-danger)}.btn--danger-ghost:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn--danger-ghost:disabled{opacity:.4;cursor:not-allowed}.btn--success-ghost{background:transparent;color:var(--color-success);border-color:var(--color-success)}.btn--success-ghost:hover:not(:disabled){background:var(--color-success);color:#fff}.btn--success-ghost:disabled{opacity:.4;cursor:not-allowed}.btn--sm{padding:4px var(--space-3);font-size:var(--font-size-sm)}.btn--lg{padding:10px var(--space-5);font-size:var(--font-size-lg)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.02em}.badge--success{background:var(--color-success-bg);color:var(--color-success)}.badge--neutral{background:var(--color-surface-raised);color:var(--color-text-subtle);border:1px solid var(--color-border)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge--danger{background:var(--color-danger-bg);color:var(--color-danger)}.form-error-banner{background:var(--color-danger-bg);border:1px solid #FCA5A5;color:var(--color-danger);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--font-size-sm)}.mono{font-family:ui-monospace,SF Mono,Cascadia Mono,monospace;font-size:var(--font-size-sm)}.table-scroll,.table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.data-table th{text-align:left;padding:10px 16px;background:var(--color-surface);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-subtle);border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);white-space:nowrap;-webkit-user-select:none;user-select:none}.data-table th:last-child{border-right:none}.data-table td{padding:11px 16px;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);color:var(--color-text);vertical-align:middle}.data-table td:last-child{border-right:none}.data-table tbody tr:last-child td{border-bottom:none}.data-table__row{cursor:pointer;transition:background .08s}.data-table__row:hover{background:#f5f7ff}.data-table__row--inactive{opacity:.55}.col-header{display:inline-flex;align-items:center;gap:4px}.col-header svg{opacity:.3;transition:opacity .12s;flex-shrink:0}.data-table th:hover .col-header svg{opacity:.65}.table-empty{text-align:center;color:var(--color-text-subtle);padding:40px!important;font-size:var(--font-size-sm)}.col-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.col-muted{color:var(--color-text-subtle)}.list-toolbar{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.list-toolbar__search-wrap{position:relative;display:flex;align-items:center;flex:1;min-width:200px;max-width:360px}.list-toolbar__search-wrap svg{position:absolute;left:10px;color:var(--color-text-subtle);pointer-events:none}.list-toolbar__search{width:100%;padding:6px 10px 6px 32px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--color-page-bg);color:var(--color-text);font-family:inherit}.list-toolbar__search:focus{outline:2px solid var(--color-accent);outline-offset:1px;background:var(--color-surface)}.list-toolbar__tabs{display:flex;gap:var(--space-1)}.list-toolbar__actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.toolbar-btn{display:inline-flex;align-items:center;gap:5px;padding:5px var(--space-3);border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-accent);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;font-family:inherit;transition:background .1s,border-color .1s;white-space:nowrap}.toolbar-btn:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.list-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.list-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-text-subtle);background:var(--color-surface-raised)}
