body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-shell,.auth-page{--color-bg:#f9fafb;--color-surface:#fff;--color-surface-sunken:#f3f4f6;--color-border:#e5e7eb;--color-border-strong:#d1d5db;--color-text:#413c41;--color-text-muted:#6b7280;--color-text-subtle:#9ca3af;--color-accent:#b49646;--color-accent-hover:#9c8239;--color-accent-soft:#b496461a;--color-success:#059669;--color-success-soft:#ecfdf5;--color-success-border:#a7f3d0;--color-warning:#d97706;--color-warning-soft:#fffbeb;--color-warning-border:#fde68a;--color-danger:#dc2626;--color-danger-soft:#fef2f2;--color-danger-border:#fecaca;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--shadow-sm:0 1px 2px #12131c0d;--shadow-md:0 8px 20px #12131c12;--shadow-lg:0 20px 48px #12131c24;color:var(--color-text);color-scheme:light}.app-shell[data-theme=dark],.auth-page[data-theme=dark]{--color-bg:#1c1c20;--color-surface:#242428;--color-surface-sunken:#2e2e36;--color-border:#36363e;--color-border-strong:#424248;--color-text:#e8e6e8;--color-text-muted:#a0a0a8;--color-text-subtle:#606068;--color-accent:#ccb778;--color-accent-hover:#d8c48f;--color-accent-soft:#ccb77824;--color-success:#34d399;--color-success-soft:#10b98124;--color-success-border:#34d39959;--color-warning:#fbbf24;--color-warning-soft:#d9770629;--color-warning-border:#fbbf2452;--color-danger:#f87171;--color-danger-soft:#dc262629;--color-danger-border:#f8717159;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 20px #00000059;--shadow-lg:0 24px 56px #00000080;color-scheme:dark}*{box-sizing:border-box}.app-shell{background:var(--color-bg);display:flex;min-height:100vh}.sidebar{background:linear-gradient(190deg,#242428,#1c1c20 70%,#17171a);color:#a0a0a8;display:flex;flex-direction:column;flex-shrink:0;gap:6px;height:100vh;padding:22px 16px;position:-webkit-sticky;position:sticky;top:0;width:264px;z-index:10}.sidebar-brand{gap:12px;padding:8px 10px 22px}.brand-mark,.sidebar-brand{align-items:center;display:flex}.brand-mark{background:linear-gradient(135deg,#ccb778,#b49646);border-radius:var(--radius-sm);box-shadow:0 4px 14px #b4964666;flex-shrink:0;height:38px;justify-content:center;overflow:hidden;width:38px}.brand-mark img{height:62%;object-fit:contain;width:62%}.brand-title{color:#e8e6e8;font-size:14.5px;font-weight:650;line-height:1.2}.brand-subtitle{color:#606068;font-size:11.5px;margin-top:1px}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:2px}.sidebar-nav-item{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:#a0a0a8;cursor:pointer;display:flex;font-size:13.5px;font-weight:550;gap:11px;padding:10px 12px;text-align:left;transition:background .15s,color .15s;width:100%}.sidebar-nav-item svg{flex-shrink:0;height:17px;opacity:.85;width:17px}.sidebar-nav-item:hover{background:#ffffff0d;color:#e8e6e8}.sidebar-nav-item--active{background:#ccb77829;box-shadow:inset 2px 0 0 #ccb778;color:#e8e6e8}.sidebar-nav-item--active svg{opacity:1}.sidebar-footer{border-top:1px solid #ffffff12;display:flex;flex-direction:column;gap:10px;padding-top:14px}.theme-toggle{align-items:center;background:#ffffff0a;border:none;border-radius:var(--radius-sm);color:#a0a0a8;cursor:pointer;display:flex;font-size:12.5px;font-weight:550;gap:10px;padding:9px 12px;transition:background .15s,color .15s;width:100%}.theme-toggle:hover{background:#ffffff14;color:#e8e6e8}.theme-toggle svg{flex-shrink:0;height:15px;width:15px}.sidebar-user{align-items:center;display:flex;gap:10px;padding:6px 8px}.sidebar-user-avatar{align-items:center;background:#ccb77838;border-radius:50%;color:#e9d9a8;display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:30px;justify-content:center;width:30px}.sidebar-user-info{flex:1 1;min-width:0}.sidebar-user-name{color:#e8e6e8;font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-name-sub{color:#606068;font-size:11px}.icon-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:#a0a0a8;cursor:pointer;display:flex;flex-shrink:0;height:28px;justify-content:center;transition:background .15s,color .15s;width:28px}.icon-btn svg{height:15px;width:15px}.icon-btn:hover{background:#ffffff14;color:#f2a4a4}.main{background:radial-gradient(900px circle at 12% -8%,var(--color-accent-soft),#0000 42%),var(--color-bg);flex:1 1;min-width:0;padding:30px 40px 72px}@media (max-width:640px){.main{padding:24px 18px 56px}}.main-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:26px}.main-header h1{color:var(--color-text);font-size:22px;font-weight:700;letter-spacing:-.01em;margin:0}.subtitle{color:var(--color-text-muted);font-size:13.5px;margin:4px 0 0}.auth-page{background:var(--color-bg);min-height:100vh;padding:24px}.auth-page,.loading{align-items:center;display:flex;justify-content:center}.loading{flex-direction:column;gap:16px;padding:80px 20px}.loading-spinner{animation:spin .8s linear infinite;border:3px solid var(--color-border);border-radius:50%;border-top-color:var(--color-accent);height:36px;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.loading p{color:var(--color-text-muted);font-size:15px;margin:0}.error-banner{background:var(--color-danger-soft);border:1px solid var(--color-danger-border);border-left:4px solid var(--color-danger);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--color-danger);justify-content:space-between;margin-bottom:22px;padding:14px 18px}.error-banner,.error-content{align-items:center;display:flex}.error-content{color:var(--color-text);font-size:14px;gap:12px}.error-icon{flex-shrink:0;height:20px;width:20px}.error-close,.error-icon{color:var(--color-danger)}.error-close{align-items:center;background:none;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:20px;height:28px;justify-content:center;line-height:1;padding:0;transition:background .15s;width:28px}.error-close:hover{background:var(--color-danger-soft)}.section-heading{border-bottom:1px solid var(--color-border);padding:20px 24px}.section-heading--row{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.section-heading h2{align-items:center;color:var(--color-text);display:flex;font-size:16px;font-weight:650;gap:10px;margin:0}.section-hint{color:var(--color-text-muted);font-size:13px;margin:4px 0 0}.count-badge{align-items:center;background:var(--color-accent);border-radius:999px;color:#fff;display:inline-flex;font-size:12px;font-weight:700;justify-content:center;min-width:24px;padding:2px 9px}.stat-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:20px}@media (max-width:800px){.stat-row{grid-template-columns:1fr}}.stat-tile{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;gap:16px;padding:18px 20px;text-align:left;transition:box-shadow .15s,transform .15s,border-color .15s}.stat-tile:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-tile--active{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.stat-tile-icon{align-items:center;background:var(--color-accent-soft);border-radius:var(--radius-md);color:var(--color-accent);display:flex;flex-shrink:0;height:42px;justify-content:center;width:42px}.stat-tile--warning .stat-tile-icon{background:var(--color-warning-soft);color:var(--color-warning)}.stat-tile--danger .stat-tile-icon{background:var(--color-danger-soft);color:var(--color-danger)}.stat-tile-icon svg{height:20px;width:20px}.stat-tile-value{color:var(--color-text);display:block;font-size:26px;font-weight:750;line-height:1.15}.stat-tile-label{color:var(--color-text-muted);font-size:12.5px;font-weight:600}.list-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.list-toolbar{flex-wrap:wrap;justify-content:space-between;padding:16px 22px}.list-toolbar,.select-all-row{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:14px}.select-all-row{background:var(--color-surface-sunken);padding:12px 22px}.select-all-label{align-items:center;color:var(--color-text-muted);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:10px;-webkit-user-select:none;user-select:none}.select-all-label input[type=checkbox]{accent-color:var(--color-accent);cursor:pointer;height:16px;width:16px}.selected-count{color:var(--color-accent);font-size:12.5px;font-weight:650}.user-table{max-height:620px;overflow-y:auto;padding:6px}.user-row{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:14px;padding:11px 14px;transition:background .15s}.user-row:hover{background:var(--color-surface-sunken)}.user-row input[type=checkbox]{accent-color:var(--color-accent);cursor:pointer;flex-shrink:0;height:17px;width:17px}.user-avatar{align-items:center;background:var(--color-accent-soft);border-radius:50%;color:var(--color-accent-hover);display:flex;flex-shrink:0;font-size:11.5px;font-weight:700;height:30px;justify-content:center;width:30px}.user-email{color:var(--color-text);font-size:13.5px;-webkit-user-select:none;user-select:none;word-break:break-word}.user-row:has(input:checked){background:var(--color-accent-soft)}.user-row:has(input:checked) .user-avatar{background:var(--color-accent);color:#fff}.user-row:has(input:checked) .user-email{color:var(--color-accent-hover);font-weight:600}.btn{align-items:center;border:none;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-size:13.5px;font-weight:600;gap:6px;padding:9px 15px;transition:filter .15s,transform .1s,background .15s,opacity .15s;white-space:nowrap}.btn-icon{height:15px;width:15px}.btn-sm{font-size:12.5px;padding:6px 12px}.btn:hover:not(:disabled){filter:brightness(1.06)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.4}.btn-danger{background:var(--color-danger);color:#fff}.btn-warning{background:var(--color-warning);color:#fff}.btn-success{background:var(--color-success);color:#fff}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-ghost{background:#0000;border:1px solid var(--color-border-strong);color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-sunken);color:var(--color-text)}.btn-icon-only{border-radius:var(--radius-sm);padding:7px}.btn-icon-only svg{height:16px;margin:0;width:16px}.modal-overlay{align-items:center;background:#12131c73;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:100}.modal-dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-width:380px;padding:24px;width:100%}.modal-title{color:var(--color-text);font-size:16px;font-weight:700;margin:0 0 10px}.modal-message{color:var(--color-text-muted);font-size:13.5px;line-height:1.5;margin:0}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.search-box{flex:1 1;max-width:360px;min-width:200px;position:relative}.search-box svg{color:var(--color-text-subtle);height:15px;left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:15px}.search-input{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);font-size:13.5px;padding:10px 14px 10px 36px;transition:border-color .15s,box-shadow .15s;width:100%}.search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.search-input::placeholder{color:var(--color-text-subtle)}.search-input--compact{max-width:260px}.action-buttons{display:flex;flex-wrap:wrap;gap:8px}.empty-state{align-items:center;color:var(--color-text-subtle);display:flex;flex-direction:column;justify-content:center;padding:56px 20px;text-align:center}.empty-icon{height:52px;margin-bottom:14px;opacity:.6;width:52px}.empty-state p{font-size:14.5px;font-weight:500;margin:0}.login-container{flex-direction:column;gap:1.25rem;text-align:center}.login-container,.login-mark{align-items:center;display:flex;justify-content:center}.login-mark{background:linear-gradient(135deg,#ccb778,#b49646);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);height:64px;margin-bottom:4px;overflow:hidden;width:64px}.login-mark img{height:62%;object-fit:contain;width:62%}.login-container h1{color:var(--color-text);font-size:1.6rem;margin:0}.login-container p{color:var(--color-text-muted);font-size:1rem;margin:0}.caps-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.caps-toolbar{border-bottom:1px solid var(--color-border);padding:16px 22px}.caps-table{border-collapse:collapse;font-size:14px;width:100%}.caps-table thead{background:var(--color-surface-sunken)}.caps-table th{color:var(--color-text-muted);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-align:left;text-transform:uppercase}.caps-table td,.caps-table th{border-bottom:1px solid var(--color-border);padding:12px 24px}.caps-table td{color:var(--color-text);vertical-align:middle}.caps-table tbody tr:last-child td{border-bottom:none}.caps-table tbody tr:hover{background:var(--color-surface-sunken)}.caps-name{color:var(--color-text);font-weight:550}.caps-email{color:var(--color-text-subtle);font-size:12.5px;margin-top:1px}.caps-input{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);font-size:14px;outline:none;padding:7px 10px;transition:border-color .15s,box-shadow .15s;width:130px}.caps-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.caps-empty{color:var(--color-text-subtle);padding:48px!important;text-align:center}.access-container{display:flex;flex-direction:column;gap:20px}.access-form-card,.access-list-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:visible}.access-form{padding:22px 24px 24px}.access-form-row{grid-gap:14px;align-items:end;display:grid;gap:14px;grid-template-columns:1fr auto 1fr auto}@media (max-width:900px){.access-form-row{grid-template-columns:1fr}}.access-form-arrow{align-items:center;color:var(--color-text-subtle);display:flex;flex-shrink:0;justify-content:center;padding-bottom:11px}.access-form-arrow svg{height:18px;width:18px}@media (max-width:900px){.access-form-arrow{display:none}}.access-level-field{min-width:150px}.field-label{color:var(--color-text-muted);display:block;font-size:12.5px;font-weight:600;margin-bottom:6px}.access-level-select{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;font-size:13.5px;outline:none;padding:10px 12px;transition:border-color .15s,box-shadow .15s;width:100%}.access-level-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.access-form-footer{align-items:center;display:flex;gap:14px;margin-top:18px}.form-message{border-radius:var(--radius-sm);font-size:13px;font-weight:550;margin-top:14px;padding:10px 14px}.form-message--error{background:var(--color-danger-soft);border:1px solid var(--color-danger-border);color:var(--color-danger)}.form-message--success{background:var(--color-success-soft);border:1px solid var(--color-success-border);color:var(--color-success)}.combobox{position:relative}.combobox-control{align-items:center;display:flex;position:relative}.combobox-input{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);font-size:13.5px;outline:none;padding:10px 12px;transition:border-color .15s,box-shadow .15s;width:100%}.combobox-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.combobox-input:disabled{background:var(--color-surface-sunken);cursor:not-allowed}.combobox-email{color:var(--color-text-subtle);font-size:11.5px;max-width:46%;overflow:hidden;pointer-events:none;position:absolute;right:12px;text-overflow:ellipsis;white-space:nowrap}.combobox-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);left:0;list-style:none;margin:0;max-height:260px;overflow-y:auto;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:20}.combobox-option{align-items:center;border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;display:flex;font-size:13.5px;gap:10px;justify-content:space-between;padding:9px 10px}.combobox-option-checkbox{accent-color:var(--color-accent);cursor:pointer;flex-shrink:0;height:15px;pointer-events:none;width:15px}.combobox-option--active,.combobox-option:hover{background:var(--color-accent-soft)}.combobox-option--selected{color:var(--color-accent);font-weight:600}.combobox-option-name{color:inherit;flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combobox-option-email{color:var(--color-text-subtle);flex-shrink:0;font-size:12px}.combobox-empty{color:var(--color-text-subtle);font-size:13px;padding:14px 10px;text-align:center}.combobox-option--all{border-bottom:1px solid var(--color-border);border-radius:0;font-weight:650;margin-bottom:4px;padding-bottom:10px}.grant-groups{max-height:620px;overflow-y:auto;padding:8px}.grant-group+.grant-group{border-top:1px solid var(--color-border);margin-top:6px;padding-top:6px}.grant-group-header{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;gap:12px;padding:10px 12px;transition:background .15s}.grant-group-header:hover{background:var(--color-surface-sunken)}.grant-group-header:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.grant-group-chevron{color:var(--color-text-subtle);flex-shrink:0;height:15px;transition:transform .15s;width:15px}.grant-group-chevron--open{transform:rotate(90deg)}.grant-group-avatar{align-items:center;background:var(--color-accent-soft);border-radius:50%;color:var(--color-accent-hover);display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:32px;justify-content:center;width:32px}.grant-group-heading{display:flex;flex:1 1;flex-direction:column;min-width:0}.grant-group-name{color:var(--color-text);font-size:13.5px;font-weight:650}.grant-group-name,.grant-group-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grant-group-sub{color:var(--color-text-subtle);font-size:11.5px}.grant-group-actions{align-items:center;display:flex;flex-shrink:0;gap:14px}.grant-group-count{color:var(--color-text-muted);flex-shrink:0;font-size:12px;font-weight:600;white-space:nowrap}.grant-employee-list{list-style:none;margin:0;padding:0 8px 6px 56px}.grant-employee-row{align-items:center;border-radius:var(--radius-sm);display:flex;gap:12px;padding:8px 10px;transition:background .15s}.grant-employee-row:hover{background:var(--color-surface-sunken)}.grant-employee-name{color:var(--color-text-muted);flex:1 1;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.access-badge{align-items:center;border-radius:999px;display:inline-flex;flex-shrink:0;font-size:11.5px;font-weight:650;gap:5px;padding:4px 10px;white-space:nowrap}.access-badge svg{height:12px;width:12px}.access-badge--read{background:var(--color-accent-soft);color:var(--color-accent-hover)}.access-badge--write{background:var(--color-warning-soft);color:var(--color-warning)}.combobox-list::-webkit-scrollbar,.grant-groups::-webkit-scrollbar,.user-table::-webkit-scrollbar{width:8px}.combobox-list::-webkit-scrollbar-track,.grant-groups::-webkit-scrollbar-track,.user-table::-webkit-scrollbar-track{background:#0000}.combobox-list::-webkit-scrollbar-thumb,.grant-groups::-webkit-scrollbar-thumb,.user-table::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}@media (max-width:880px){.app-shell{flex-direction:column}.sidebar{align-items:center;flex-direction:row;height:auto;padding:12px 16px;position:static;width:100%}.sidebar-brand{padding:4px 8px}.sidebar-nav{flex:1 1;flex-direction:row;overflow-x:auto}.sidebar-footer{align-items:center;border-left:1px solid #ffffff12;border-top:none;flex-direction:row;padding-left:14px;padding-top:0}.sidebar-user-info,.theme-toggle span{display:none}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.6b9db91f.css.map*/