:root{--gc-deep-green:#006b35;--gc-corporate-green:#008c45;--gc-fresh-green:#39ad49;--gc-stevia-lime:#a7ce68;--gc-pale-green:#e9f5eb;--gc-soft-white:#f5f8f5;--gc-white:#fff;--gc-charcoal:#17281e;--gc-border:#dce8de;--gc-success:#16834a;--gc-warning:#e6a23c;--gc-error:#d94b4b;--gc-text-secondary:#4a5d52;--gc-text-muted:#5f7067;--gc-neutral-series:#91a49a;--gc-neutral-bg:#eef2ef;--gc-border-strong:#c3d4c7;--gc-row-hover:#f3f9f4;--color-bg:var(--gc-soft-white);--color-surface:var(--gc-white);--color-surface-muted:#fafcfa;--color-text:var(--gc-charcoal);--color-text-secondary:var(--gc-text-secondary);--color-text-muted:var(--gc-text-muted);--color-border:var(--gc-border);--color-link:var(--gc-deep-green);--color-focus:var(--gc-fresh-green);--sidebar-bg:var(--gc-deep-green);--sidebar-text:#fff;--sidebar-text-muted:#ffffffc7;--sidebar-hover:#ffffff17;--sidebar-active-bg:#39ad493d;--sidebar-active-indicator:var(--gc-fresh-green);--sidebar-width:264px;--sidebar-width-collapsed:72px;--header-height:64px;--btn-primary-bg:var(--gc-corporate-green);--btn-primary-bg-hover:var(--gc-deep-green);--btn-primary-text:#fff;--btn-disabled-bg:#c9d6cd;--btn-disabled-text:#6b7c72;--btn-secondary-border:var(--gc-corporate-green);--btn-secondary-text:var(--gc-deep-green);--btn-secondary-hover:var(--gc-pale-green);--btn-danger-bg:var(--gc-error);--status-success-bg:#e3f3e9;--status-success-text:#0f6a3b;--status-success-dot:var(--gc-success);--status-warning-bg:#fdf3e2;--status-warning-text:#8a5a0b;--status-warning-dot:var(--gc-warning);--status-error-bg:#fbe9e9;--status-error-text:#a8302f;--status-error-dot:var(--gc-error);--status-neutral-bg:#eef1ef;--status-neutral-text:#4a5650;--status-neutral-dot:#8a978f;--status-progress-bg:#eef6e0;--status-progress-text:#3f6a12;--status-progress-dot:var(--gc-stevia-lime);--status-info-bg:#e7f0f8;--status-info-text:#285a85;--status-info-dot:#4f86b8;--chart-1:#008c45;--chart-2:#39ad49;--chart-3:#a7ce68;--chart-4:#006b35;--chart-neutral:#91a49a;--chart-5:#3b7ea1;--chart-6:#e6a23c;--chart-7:#8d6cab;--chart-8:#c8615a;--chart-grid:#e6eee8;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.875rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:1.75rem;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--shadow-xs:0 1px 2px #17281e0d;--shadow-sm:0 1px 3px #17281e0f, 0 1px 2px #17281e0a;--shadow-md:0 4px 12px #17281e14, 0 1px 3px #17281e0d;--shadow-lg:0 16px 40px #17281e29;--focus-ring:0 0 0 3px #39ad4959;--transition:.14s ease}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01", "tnum";margin:0;line-height:1.5}h1,h2,h3,h4{line-height:1.25;font-weight:var(--fw-semibold);color:var(--color-text);margin:0}p{margin:0}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:.92em}.muted{color:var(--color-text-muted)}.text-success{color:var(--gc-success)}.text-error{color:var(--status-error-text)}.text-warning{color:var(--status-warning-text)}.right{text-align:right}.row{align-items:center;gap:var(--space-2);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.stack{gap:var(--space-4);flex-direction:column;display:flex}.wrap{flex-wrap:wrap}.shell{min-height:100vh;display:flex}.sidebar{flex:0 0 var(--sidebar-width);height:100vh;width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);transition:width var(--transition), flex-basis var(--transition);z-index:30;flex-direction:column;display:flex;position:sticky;top:0}.sidebar.collapsed{flex-basis:var(--sidebar-width-collapsed);width:var(--sidebar-width-collapsed)}.sidebar-brand{height:var(--header-height);align-items:center;gap:var(--space-3);padding:0 var(--space-4);border-bottom:1px solid #ffffff1a;display:flex}.brand-logo{background:var(--gc-white);border-radius:var(--radius-md);flex:none;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.brand-logo img{object-fit:contain;width:36px;height:36px}.brand-text{white-space:nowrap;line-height:1.15;overflow:hidden}.brand-text strong{font-size:var(--fs-md);letter-spacing:.01em;display:block}.brand-text span{font-size:var(--fs-xs);color:var(--sidebar-text-muted)}.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-group-title span,.sidebar.collapsed .nav-chevron,.sidebar.collapsed .sidebar-footer-text{display:none}.sidebar-menu-tools{padding:10px var(--space-3) 0 var(--space-4);text-transform:uppercase;letter-spacing:.06em;color:var(--sidebar-text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.sidebar-menu-tools span{font-weight:var(--fw-semibold);margin-right:auto}.sidebar-menu-tools button{color:var(--sidebar-text);border-radius:var(--radius-sm);cursor:pointer;text-transform:none;letter-spacing:0;background:0 0;border:1px solid #ffffff2e;align-items:center;gap:4px;padding:3px 7px;font-size:11px;display:inline-flex}.sidebar-menu-tools button:hover:not(:disabled){background:var(--sidebar-hover);border-color:var(--gc-stevia-lime)}.sidebar-menu-tools button:disabled{opacity:.45;cursor:default}.sidebar.collapsed .sidebar-menu-tools{display:none}.desktop-only{display:grid}.sidebar-nav{padding:var(--space-3) var(--space-2) var(--space-6);scrollbar-width:thin;scrollbar-color:#ffffff40 transparent;flex:1;overflow-y:auto}.nav-group{margin-bottom:var(--space-1)}.nav-group-title{align-items:center;gap:var(--space-3);cursor:pointer;width:100%;color:var(--sidebar-text);padding:9px var(--space-3);border-radius:var(--radius-md);font-size:var(--fs-base);font-weight:var(--fw-medium);text-align:left;background:0 0;border:0;display:flex}.nav-group-title:hover{background:var(--sidebar-hover)}.nav-group-title svg{flex:none}.nav-group-title span{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.nav-chevron{transition:transform var(--transition);opacity:.7}.nav-group.open .nav-chevron{transform:rotate(90deg)}.nav-items{padding:2px 0 var(--space-2)}.nav-link{align-items:center;gap:var(--space-3);color:var(--sidebar-text-muted);padding:7px var(--space-3) 7px 44px;border-radius:var(--radius-md);font-size:var(--fs-sm);white-space:nowrap;display:flex;position:relative}.nav-link.top{padding-left:var(--space-3);color:var(--sidebar-text);font-size:var(--fs-base);font-weight:var(--fw-medium);padding-block:9px}.nav-link:hover{background:var(--sidebar-hover);color:var(--sidebar-text);text-decoration:none}.nav-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-text);font-weight:var(--fw-semibold)}.nav-link.active:before{content:"";background:var(--sidebar-active-indicator);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:0}.nav-link .nav-badge{background:var(--gc-stevia-lime);color:var(--gc-charcoal);font-size:11px;font-weight:var(--fw-bold);border-radius:var(--radius-pill);margin-left:auto;padding:0 7px;line-height:18px}.sidebar.collapsed .nav-link,.sidebar.collapsed .nav-group-title{justify-content:center;padding-left:0;padding-right:0}.sidebar.collapsed .nav-items{display:none}.sidebar.collapsed .nav-link .nav-badge{padding:0 5px;font-size:10px;line-height:15px;position:absolute;top:2px;right:8px}.sidebar-footer{padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-2);font-size:var(--fs-xs);color:var(--sidebar-text-muted);border-top:1px solid #ffffff1a;display:flex}.sidebar-collapse-btn{color:var(--sidebar-text);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #fff3;place-items:center;width:30px;height:30px;margin-left:auto;display:grid}.sidebar.collapsed .sidebar-collapse-btn{margin:0 auto}.sidebar-collapse-btn:hover{background:var(--sidebar-hover)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.header{z-index:20;height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;gap:var(--space-4);padding:0 var(--space-6);display:flex;position:sticky;top:0}.header-title{min-width:0}.header-title .crumb{font-size:var(--fs-xs);color:var(--color-text-muted);white-space:nowrap}.header-title h1{font-size:var(--fs-lg);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.header-search{flex:1;max-width:440px;margin-left:auto;position:relative}.header-search input{background:var(--gc-soft-white);padding-left:36px}.header-search>svg{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.header-actions{align-items:center;gap:var(--space-2);display:flex}.icon-btn{border-radius:var(--radius-md);width:38px;height:38px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:grid;position:relative}.icon-btn:hover{background:var(--gc-pale-green);color:var(--gc-deep-green)}.icon-btn .dot-count{border-radius:var(--radius-pill);background:var(--gc-error);color:#fff;min-width:17px;height:17px;font-size:10px;font-weight:var(--fw-bold);border:2px solid var(--color-surface);place-items:center;padding:0 4px;display:grid;position:absolute;top:4px;right:3px}.mobile-only{display:none}.company-select{align-items:center;gap:var(--space-2);display:flex}.company-select select{width:auto;min-width:170px;height:38px;font-weight:var(--fw-medium)}.user-chip{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;padding:4px 8px 4px 4px;display:flex}.user-chip:hover{border-color:var(--gc-stevia-lime);background:var(--gc-pale-green)}.avatar{background:var(--gc-deep-green);color:#fff;width:30px;height:30px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:50%;flex:none;place-items:center;display:grid}.user-chip .who{text-align:left;line-height:1.15}.user-chip .who strong{font-size:var(--fs-sm);display:block}.user-chip .who span{color:var(--color-text-muted);font-size:11px}.content{padding:var(--space-6);flex:1;width:100%;max-width:1600px;margin:0 auto}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.page-header h2{font-size:var(--fs-xl)}.page-header p{color:var(--color-text-muted);margin-top:2px}.page-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.popover{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:300px;box-shadow:var(--shadow-lg);z-index:50;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.popover-head{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.popover-head h4{font-size:var(--fs-base)}.popover-list{max-height:380px;overflow-y:auto}.popover-item{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0;width:100%;display:flex}.popover-item:last-child{border-bottom:0}.popover-item:hover,.popover-item.active{background:var(--gc-row-hover);text-decoration:none}.popover-item .meta{font-size:var(--fs-xs);color:var(--color-text-muted)}.popover-item.unread{background:var(--gc-pale-green)}.search-type{font-size:11px;font-weight:var(--fw-semibold);color:var(--gc-deep-green);text-transform:uppercase;letter-spacing:.04em}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:0}.card-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.card-header h3{font-size:var(--fs-md)}.card-header .sub{font-size:var(--fs-xs);color:var(--color-text-muted)}.card-body{padding:var(--space-5)}.card-body.flush{padding:0}.grid{gap:var(--space-4);display:grid}.grid-kpi{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-12{grid-template-columns:repeat(12,minmax(0,1fr))}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.kpi{padding:var(--space-4) var(--space-5);flex-direction:column;gap:6px;display:flex;position:relative}.kpi-top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.kpi-label{font-size:var(--fs-sm);color:var(--color-text-secondary);font-weight:var(--fw-medium)}.kpi-icon{border-radius:var(--radius-md);background:var(--gc-pale-green);width:36px;height:36px;color:var(--gc-corporate-green);flex:none;place-items:center;display:grid}.kpi-icon.warning{background:var(--status-warning-bg);color:var(--status-warning-text)}.kpi-icon.error{background:var(--status-error-bg);color:var(--status-error-text)}.kpi-value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--color-text);letter-spacing:-.02em;line-height:1.1}.kpi-foot{font-size:var(--fs-xs);color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.trend{font-weight:var(--fw-semibold);align-items:center;gap:2px;display:inline-flex}.trend.up{color:var(--gc-success)}.trend.down{color:var(--status-error-text)}.kpi.clickable{cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition)}.kpi.clickable:hover{border-color:var(--gc-stevia-lime);box-shadow:var(--shadow-md)}.kpi.selected{border-color:var(--gc-fresh-green);box-shadow:inset 0 -3px 0 var(--gc-fresh-green), var(--shadow-sm)}.btn{justify-content:center;align-items:center;gap:var(--space-2);height:38px;padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--fs-base);font-weight:var(--fw-semibold);cursor:pointer;white-space:nowrap;transition:background var(--transition), border-color var(--transition), color var(--transition);border:1px solid #0000;display:inline-flex;text-decoration:none!important}.btn-sm{height:32px;padding:0 var(--space-3);font-size:var(--fs-sm)}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.btn-primary:hover:not(:disabled){background:var(--btn-primary-bg-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--btn-secondary-border);color:var(--btn-secondary-text)}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-hover)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--gc-pale-green);color:var(--gc-deep-green)}.btn-danger{background:var(--btn-danger-bg);color:#fff}.btn-danger:hover:not(:disabled){background:#b93b3b}.btn-danger-outline{background:var(--color-surface);border-color:var(--gc-error);color:var(--status-error-text)}.btn-danger-outline:hover:not(:disabled){background:var(--status-error-bg)}.btn:disabled{background:var(--btn-disabled-bg);color:var(--btn-disabled-text);cursor:not-allowed;border-color:#0000}.btn .spinner{border-width:2px;width:14px;height:14px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-text)}.field .req{color:var(--status-error-text);margin-left:2px}.field .hint{font-size:var(--fs-xs);color:var(--color-text-muted)}.field .error-msg{font-size:var(--fs-xs);color:var(--status-error-text);align-items:center;gap:4px;display:flex}.input,.select,.textarea{width:100%;height:38px;padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--gc-border-strong);border-radius:var(--radius-md);color:var(--color-text);transition:border-color var(--transition), box-shadow var(--transition)}.textarea{height:auto;min-height:84px;padding:var(--space-2) var(--space-3);resize:vertical}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234a5d52' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;padding-right:32px}.input::placeholder,.textarea::placeholder{color:#84948b}.input:hover,.select:hover,.textarea:hover{border-color:var(--gc-stevia-lime)}.input:focus,.select:focus,.textarea:focus{border-color:var(--gc-corporate-green);box-shadow:var(--focus-ring);outline:none}.input:disabled,.select:disabled,.textarea:disabled{background:var(--gc-neutral-bg);color:var(--color-text-muted);cursor:not-allowed}.field.invalid .input,.field.invalid .select,.field.invalid .textarea{border-color:var(--gc-error)}.field.invalid .input:focus,.field.invalid .select:focus{box-shadow:0 0 0 3px #d94b4b33}.form-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-grid .full{grid-column:1/-1}.check{align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--fs-base);display:inline-flex}.check input{accent-color:var(--gc-corporate-green);width:16px;height:16px}input[type=date].input{padding-right:var(--space-2)}.tabs{gap:var(--space-1);border-bottom:1px solid var(--color-border);scrollbar-width:none;display:flex;overflow-x:auto}.tab{padding:10px var(--space-3);color:var(--color-text-muted);font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:0 0;border:0;align-items:center;gap:6px;display:inline-flex;position:relative}.tab:hover{color:var(--color-text);background:var(--gc-row-hover)}.tab.active{color:var(--gc-deep-green);font-weight:var(--fw-semibold)}.tab.active:after{content:"";background:var(--gc-fresh-green);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:8px;right:8px}.tab .count{background:var(--gc-neutral-bg);color:var(--color-text-secondary);border-radius:var(--radius-pill);font-size:11px;line-height:18px;font-weight:var(--fw-semibold);padding:0 7px}.tab.active .count{background:var(--gc-pale-green);color:var(--gc-deep-green)}.badge{border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:var(--fw-semibold);white-space:nowrap;align-items:center;gap:6px;padding:2px 9px;line-height:18px;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge.success{background:var(--status-success-bg);color:var(--status-success-text)}.badge.success:before{background:var(--status-success-dot)}.badge.warning{background:var(--status-warning-bg);color:var(--status-warning-text)}.badge.warning:before{background:var(--status-warning-dot)}.badge.error{background:var(--status-error-bg);color:var(--status-error-text)}.badge.error:before{background:var(--status-error-dot)}.badge.neutral{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.badge.neutral:before{background:var(--status-neutral-dot)}.badge.progress{background:var(--status-progress-bg);color:var(--status-progress-text)}.badge.progress:before{background:var(--status-progress-dot)}.badge.info{background:var(--status-info-bg);color:var(--status-info-text)}.badge.info:before{background:var(--status-info-dot)}.tag{border-radius:var(--radius-sm);background:var(--gc-neutral-bg);color:var(--color-text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:1px 8px;display:inline-block}.table-toolbar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.table-toolbar .search{flex:1;min-width:200px;max-width:360px;position:relative}.table-toolbar .search input{padding-left:34px}.table-toolbar .search svg{color:var(--color-text-muted);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.table-wrap{min-height:200px;max-height:calc(100vh - 330px);overflow:auto}.table-wrap.auto{min-height:0;max-height:none}table.table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-sm)}.table thead th{z-index:2;background:var(--gc-pale-green);color:var(--color-text-secondary);text-align:left;font-weight:var(--fw-semibold);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;padding:10px var(--space-4);border-bottom:1px solid var(--color-border);white-space:nowrap;position:sticky;top:0}.table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table thead th.sortable:hover{color:var(--gc-deep-green)}.table thead th .sort-ind{vertical-align:middle;color:var(--gc-corporate-green);margin-left:4px;display:inline-flex}.table td{padding:11px var(--space-4);vertical-align:middle;white-space:nowrap;border-bottom:1px solid #edf3ee}.table tbody tr{transition:background var(--transition)}.table tbody tr:hover{background:var(--gc-row-hover)}.table tbody tr.clickable{cursor:pointer}.table tbody tr.selected{background:var(--gc-pale-green);box-shadow:inset 3px 0 0 var(--gc-fresh-green)}.table td.primary-cell{font-weight:var(--fw-semibold);color:var(--color-text)}.table td.link-cell{color:var(--color-link);font-weight:var(--fw-semibold)}.table .num,.table th.num{text-align:right}.table tfoot td{font-weight:var(--fw-semibold);background:var(--color-surface-muted);position:sticky;bottom:0}.row-action{color:var(--gc-corporate-green)}.table-footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);font-size:var(--fs-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.pager{align-items:center;gap:var(--space-1);display:flex}.pager button{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;min-width:32px;height:32px;color:var(--color-text-secondary);place-items:center;display:grid}.pager button:hover:not(:disabled){border-color:var(--gc-corporate-green);color:var(--gc-deep-green)}.pager button.current{background:var(--gc-corporate-green);border-color:var(--gc-corporate-green);color:#fff;font-weight:var(--fw-semibold)}.pager button:disabled{opacity:.45;cursor:not-allowed}.bar{border-radius:var(--radius-pill);background:var(--gc-neutral-bg);min-width:60px;height:6px;overflow:hidden}.bar>span{background:var(--gc-corporate-green);border-radius:inherit;height:100%;display:block}.bar.warning>span{background:var(--gc-warning)}.bar.error>span{background:var(--gc-error)}.overlay{z-index:100;padding:var(--space-4);background:#17281e73;justify-content:center;align-items:center;animation:.12s fade;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:640px;max-height:calc(100vh - 32px);display:flex}.modal.lg{max-width:880px}.modal-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.modal-head h3{font-size:var(--fs-lg)}.modal-body{padding:var(--space-5);overflow-y:auto}.modal-foot{padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);justify-content:flex-end;gap:var(--space-2);background:var(--color-surface-muted);border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex}.drawer-overlay{justify-content:flex-end;align-items:stretch;padding:0}.drawer{background:var(--color-surface);width:100%;max-width:520px;height:100%;box-shadow:var(--shadow-lg);flex-direction:column;animation:.16s slide;display:flex}.drawer .modal-body{flex:1}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{opacity:.6;transform:translate(24px)}}.detail-list{gap:10px var(--space-4);font-size:var(--fs-sm);grid-template-columns:150px 1fr;display:grid}.detail-list dt{color:var(--color-text-muted)}.detail-list dd{font-weight:var(--fw-medium);word-break:break-word;margin:0}.section-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-weight:var(--fw-semibold);margin:var(--space-5) 0 var(--space-3)}.alert{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--fs-sm);border:1px solid;align-items:flex-start;display:flex}.alert svg{flex:none;margin-top:1px}.alert.success{background:var(--status-success-bg);color:var(--status-success-text);border-color:#bfe0cb}.alert.warning{background:var(--status-warning-bg);color:var(--status-warning-text);border-color:#f2d6a6}.alert.error{background:var(--status-error-bg);color:var(--status-error-text);border-color:#f0c4c4}.alert.info{background:var(--gc-pale-green);border-color:var(--color-border);color:var(--gc-deep-green)}.toasts{bottom:var(--space-5);right:var(--space-5);z-index:200;gap:var(--space-2);flex-direction:column;width:min(380px,100vw - 32px);display:flex;position:fixed}.toast{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--gc-corporate-green);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-3) var(--space-4);gap:var(--space-3);font-size:var(--fs-sm);align-items:flex-start;animation:.16s slide;display:flex}.toast.success{border-left-color:var(--gc-success)}.toast.success svg{color:var(--gc-success)}.toast.error{border-left-color:var(--gc-error)}.toast.error svg{color:var(--gc-error)}.toast.warning{border-left-color:var(--gc-warning)}.toast.warning svg{color:var(--status-warning-text)}.toast strong{display:block}.toast .close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:0;margin-left:auto;padding:0}.spinner{border:3px solid var(--gc-pale-green);border-top-color:var(--gc-corporate-green);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-10);color:var(--color-text-muted);display:flex}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#edf2ee 25%,#f5f8f5 37%,#edf2ee 63%) 0 0/400% 100%;animation:1.3s infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.empty{text-align:center;padding:var(--space-10) var(--space-4);color:var(--color-text-muted)}.empty .empty-icon{width:52px;height:52px;margin:0 auto var(--space-3);background:var(--gc-pale-green);color:var(--gc-corporate-green);border-radius:50%;place-items:center;display:grid}.empty h4{color:var(--color-text);font-size:var(--fs-md);margin-bottom:4px}.splash{background:var(--color-bg);place-items:center;height:100vh;display:grid}.chart{width:100%;display:block;overflow:visible}.chart text{font-family:var(--font-sans);fill:var(--color-text-muted);font-size:11px}.chart .grid-line{stroke:var(--chart-grid);stroke-width:1px}.chart .axis-line{stroke:var(--gc-border-strong)}.chart-tooltip{pointer-events:none;background:var(--gc-charcoal);color:#fff;border-radius:var(--radius-sm);font-size:var(--fs-xs);box-shadow:var(--shadow-md);white-space:nowrap;z-index:5;padding:6px 10px;position:absolute;transform:translate(-50%,-110%)}.chart-tooltip strong{font-size:var(--fs-sm);display:block}.legend{gap:var(--space-2) var(--space-4);font-size:var(--fs-xs);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.legend-swatch{border-radius:3px;flex:none;width:10px;height:10px}.hbar-list{gap:var(--space-3);flex-direction:column;display:flex}.hbar-row{gap:var(--space-3);font-size:var(--fs-sm);grid-template-columns:minmax(120px,1.2fr) 2fr auto;align-items:center;display:grid}.hbar-row .label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hbar-track{background:var(--gc-neutral-bg);border-radius:var(--radius-pill);height:10px;overflow:hidden}.hbar-fill{border-radius:inherit;height:100%}.donut-wrap{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.donut-legend{gap:var(--space-2);font-size:var(--fs-sm);flex-direction:column;flex:1;min-width:160px;display:flex}.donut-legend .row-between span:last-child{font-weight:var(--fw-semibold)}.login{background:var(--color-surface);grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);min-height:100vh;display:grid}.login-brand{background:var(--gc-deep-green);color:#fff;padding:var(--space-10);flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.login-brand:after{content:"";border:60px solid #a7ce681f;border-radius:50%;width:460px;height:460px;position:absolute;bottom:-160px;right:-160px}.login-brand .brand-logo{width:64px;height:64px}.login-brand .brand-logo img{width:56px;height:56px}.login-brand h1{color:#fff;margin:var(--space-8) 0 var(--space-3);letter-spacing:-.02em;max-width:520px;font-size:2.25rem}.login-brand p{color:#ffffffd1;max-width:480px;font-size:var(--fs-md)}.login-points{gap:var(--space-3);max-width:520px;margin-top:var(--space-8);z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:relative}.login-points div{gap:var(--space-2);font-size:var(--fs-sm);color:#ffffffe6;align-items:center;display:flex}.login-points svg{color:var(--gc-stevia-lime);flex:none}.login-form-side{padding:var(--space-8);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:400px}.login-card .card-body{padding:var(--space-8)}.login-card h2{font-size:var(--fs-xl);margin-bottom:4px}.line-grid{gap:var(--space-2);grid-template-columns:minmax(200px,3fr) 100px 120px 120px 40px;align-items:center;display:grid}.line-grid.head{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:var(--fw-semibold);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.summary-row{font-size:var(--fs-sm);justify-content:space-between;padding:6px 0;display:flex}.summary-row.total{border-top:1px solid var(--color-border);margin-top:var(--space-2);padding-top:var(--space-3);font-size:var(--fs-lg);font-weight:var(--fw-bold)}.check-list{gap:var(--space-2);font-size:var(--fs-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.check-list li{gap:var(--space-2);align-items:center;display:flex}.check-list .ok{color:var(--gc-success)}.check-list .bad{color:var(--gc-error)}.check-list .pending{color:var(--color-text-muted)}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline li{padding:0 0 var(--space-4) var(--space-6);font-size:var(--fs-sm);position:relative}.timeline li:before{content:"";background:var(--color-border);width:2px;position:absolute;top:6px;bottom:-6px;left:6px}.timeline li:last-child:before{display:none}.timeline li:after{content:"";background:var(--color-surface);border:3px solid var(--gc-fresh-green);border-radius:50%;width:12px;height:12px;position:absolute;top:4px;left:1px}.stepper{gap:0;display:flex;overflow-x:auto}.step{text-align:center;min-width:110px;font-size:var(--fs-xs);color:var(--color-text-muted);flex:1;padding-top:28px;position:relative}.step:before{content:"";background:var(--gc-neutral-bg);height:3px;position:absolute;top:10px;left:0;right:0}.step:after{content:"";background:var(--color-surface);border:3px solid var(--gc-border-strong);border-radius:50%;width:16px;height:16px;position:absolute;top:4px;left:calc(50% - 8px)}.step.done{color:var(--color-text)}.step.done:before{background:var(--gc-fresh-green)}.step.done:after{background:var(--gc-fresh-green);border-color:var(--gc-fresh-green)}.step.current{color:var(--gc-deep-green);font-weight:var(--fw-semibold)}.step.current:before{background:linear-gradient(90deg, var(--gc-fresh-green) 50%, var(--gc-neutral-bg) 50%)}.step.current:after{border-color:var(--gc-corporate-green);box-shadow:var(--focus-ring)}@media (width<=1200px){.span-4,.span-5,.span-7,.span-8{grid-column:span 6}.company-select{display:none}}@media (width<=960px){.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}.sidebar{transition:transform var(--transition);box-shadow:var(--shadow-lg);position:fixed;top:0;left:0;transform:translate(-100%);width:var(--sidebar-width)!important}.sidebar.mobile-open{transform:none}.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-group-title span,.sidebar.collapsed .nav-chevron{display:initial}.sidebar-collapse-btn{display:none}.mobile-only{display:grid}.desktop-only{display:none}.sidebar-menu-tools{display:flex!important}.scrim{z-index:25;background:#17281e66;position:fixed;inset:0}.header{padding:0 var(--space-4)}.user-chip .who{display:none}.login{grid-template-columns:1fr}.login-brand{display:none}.table-wrap{max-height:none}}@media (width<=640px){.content{padding:var(--space-4)}.header-search{display:none}.header-title h1{font-size:var(--fs-md)}.form-grid{grid-template-columns:1fr}.grid-kpi{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:var(--space-3)}.kpi-value{font-size:var(--fs-xl)}.kpi-icon{display:none}.detail-list{grid-template-columns:1fr;gap:2px}.detail-list dd{margin-bottom:var(--space-2)}.line-grid{grid-template-columns:1fr 70px 90px 36px}.line-grid .line-total{display:none}}@media print{.sidebar,.header,.page-actions,.table-toolbar,.table-footer,.no-print,.toasts{display:none!important}body{background:#fff}.content{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid;border-color:#ccc}.table-wrap{max-height:none;overflow:visible}.table thead th{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#e9f5eb!important}.print-header{display:flex!important}}.print-header{border-bottom:3px solid var(--gc-deep-green);padding-bottom:var(--space-3);margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:none}.print-header img{height:56px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
