:root{--bg: #f5f6fa;--surface: #ffffff;--surface-sunken: #f8f8fc;--border: #e4e6f0;--border-strong: #d3d6e6;--text: #151a33;--muted: #5b6081;--muted-soft: #9297ae;--navbar-bg: #12162b;--navbar-bg-elevated: #1b2040;--navbar-text: #f4f5fb;--navbar-muted: #aeb2cc;--navbar-border: #232847;--accent: #4338ca;--accent-hover: #372dae;--accent-active: #2f2790;--accent-text: #ffffff;--accent-soft: #eeedfb;--accent-soft-strong: #e4e1f9;--success: #157f4b;--success-soft: #e5f5ec;--warning: #b5790a;--warning-soft: #fbf0dc;--danger: #b42318;--danger-soft: #fdecea;--danger-hover: #96190f;--info: #2a5db0;--info-soft: #e9f0fc;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 4px 12px rgba(16, 24, 40, .08), 0 2px 4px rgba(16, 24, 40, .06);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .14), 0 4px 10px rgba(16, 24, 40, .08);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display: "Fraunces", "Iowan Old Style", Georgia, serif}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;font-family:var(--font-sans);font-size:14.5px;line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent-soft-strong);color:var(--accent-active)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid var(--bg)}h1,h2,h3{margin:0 0 4px;font-weight:650;letter-spacing:-.015em;color:var(--text)}h1{font-family:var(--font-display);font-weight:600;font-size:1.65rem;letter-spacing:-.01em;margin-bottom:20px}h2{font-family:var(--font-display);font-size:1.1rem;margin-top:28px;margin-bottom:12px}h3{font-family:var(--font-display);font-size:.95rem;margin-bottom:10px}a{color:var(--accent);text-decoration:none;transition:color .12s ease}a:hover{color:var(--accent-hover);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-weight:600;font-size:.875rem;cursor:pointer;background:var(--accent);color:var(--accent-text);border:1px solid transparent;border-radius:var(--radius-sm);padding:8px 14px;box-shadow:var(--shadow-xs);transition:background .12s ease,box-shadow .12s ease,transform .05s ease,border-color .12s ease}button:not(:disabled):hover{background:var(--accent-hover);box-shadow:var(--shadow-sm)}button:not(:disabled):active{background:var(--accent-active);transform:translateY(1px);box-shadow:none}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border-strong)}.btn-secondary:not(:disabled):hover{background:var(--surface-sunken);border-color:var(--muted-soft)}.btn-secondary:not(:disabled):active{background:var(--border)}.btn-danger{background:var(--danger-soft);color:var(--danger);border:1px solid #f3c8c3}.btn-danger:not(:disabled):hover{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:not(:disabled):active{background:var(--danger-hover)}input,select,textarea{font:inherit;font-size:.875rem;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color .12s ease,box-shadow .12s ease}input:hover,select:hover,textarea:hover{border-color:var(--muted-soft)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-sunken);color:var(--muted-soft);cursor:not-allowed}textarea{min-height:80px;resize:vertical}.app-shell{display:flex;min-height:100vh;align-items:stretch}.app-main{flex:1;min-width:0}.sidebar{display:flex;flex-direction:column;width:248px;flex-shrink:0;background:var(--navbar-bg);color:var(--navbar-text);padding:20px 16px;transition:width .15s ease;border-right:1px solid var(--navbar-border)}.sidebar-collapsed{width:68px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:22px}.sidebar-collapsed .sidebar-header{justify-content:center;padding:0}.sidebar-brand{display:flex;align-items:center;gap:10px;line-height:1.25;min-width:0}.sidebar-brand>div{display:flex;flex-direction:column;min-width:0}.sidebar-logo{color:var(--accent);flex-shrink:0}.sidebar-title{font-weight:700;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.sidebar-subtitle{font-size:.72rem;color:var(--navbar-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-toggle{background:transparent;border:none;color:var(--navbar-muted);padding:4px;flex-shrink:0;box-shadow:none;display:inline-flex;align-items:center;justify-content:center}.sidebar-toggle:not(:disabled):hover{background:none;color:var(--navbar-text);box-shadow:none}.sidebar-links{display:flex;flex-direction:column;gap:2px}.sidebar-links a,.sidebar-cta{display:flex;align-items:center;gap:11px;color:var(--navbar-text);opacity:.72;font-size:.875rem;font-weight:500;padding:9px 11px;border-radius:var(--radius-sm);position:relative;transition:opacity .12s ease,background .12s ease}.sidebar-collapsed .sidebar-links a,.sidebar-collapsed .sidebar-cta,.sidebar-collapsed .sidebar-signout{justify-content:center;padding:9px}.sidebar-icon{flex-shrink:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.sidebar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-links a:hover{opacity:1;background:var(--navbar-bg-elevated);text-decoration:none}.sidebar-links a.active{opacity:1;background:var(--accent);color:#fff;font-weight:600}.sidebar-cta{background:var(--accent);color:var(--accent-text);opacity:1!important;margin-top:10px;border:2px solid #fff;box-shadow:var(--shadow-xs)}.sidebar-cta:hover{background:var(--accent-hover)!important}.sidebar-signout{display:flex;align-items:center;gap:11px;background:transparent;border:none;border-top:1px solid var(--navbar-border);color:var(--navbar-muted);margin-top:16px;padding-top:17px;justify-content:flex-start;box-shadow:none;font-weight:500}.sidebar-signout:not(:disabled):hover{background:var(--navbar-bg-elevated);color:var(--navbar-text);box-shadow:none}.page{max-width:1200px;margin:0 auto;padding:28px 24px}.page-loading,.empty-state{padding:28px;color:var(--muted);text-align:center;font-size:.9rem}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:20px 0}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:16px 18px;transition:box-shadow .15s ease,transform .15s ease}.stat-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.stat-card-warn{background:var(--warning-soft);border-color:#f0ddb2}.stat-label{font-size:.75rem;font-weight:600;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-family:var(--font-display);font-size:1.7rem;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.stat-sub{font-size:.78rem;color:var(--muted);margin-top:4px}.filter-bar{display:flex;flex-direction:column;gap:10px;margin-bottom:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-xs)}.filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.filter-date{display:flex;align-items:center;font-size:.78rem;font-weight:600;color:var(--muted);gap:7px;white-space:nowrap}.filter-clear{margin-left:auto}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239297ae' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px}.filter-search-wrap{position:relative;flex:1 1 240px;display:flex;align-items:center}.filter-search-icon{position:absolute;left:11px;color:var(--muted-soft);pointer-events:none}.filter-search-wrap .filter-search{width:100%;padding-left:32px}.table-scroll{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.data-table{width:100%;min-width:900px;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:11px 16px;border-bottom:1px solid var(--border);font-size:.875rem;white-space:nowrap}.data-table th{background:var(--surface-sunken);color:var(--muted);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--surface-sunken)}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-th:hover{color:var(--text)}.sort-arrow{color:var(--accent)}.cell-tool{font-weight:600;color:var(--accent)}.cell-num{font-variant-numeric:tabular-nums}.cell-renewal{display:flex;align-items:center;gap:10px}.cell-renewal-date{font-variant-numeric:tabular-nums;color:var(--text)}.cell-renewal-days{font-size:.75rem;color:var(--muted-soft)}.cell-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;color:var(--muted)}.section-header{display:flex;align-items:baseline;gap:10px;margin-top:28px;margin-bottom:12px}.section-header h2{margin:0}.count-pill{margin-left:auto;font-size:.75rem;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:3px 10px}.count-pill-warn{color:var(--warning);background:var(--warning-soft)}.page-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.page-header-row h1{margin-bottom:0}.cell-user{display:flex;align-items:center;gap:10px}.cell-user-name{font-weight:600;color:var(--text)}.info-icon{cursor:help;opacity:.6;display:inline-flex;vertical-align:middle}.info-icon:hover{opacity:1}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.01em}.status-badge:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor;flex-shrink:0}.form{display:flex;flex-direction:column;gap:16px;max-width:520px}.form label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:600;color:var(--muted)}.tool-select{display:flex;gap:8px;align-items:center}.tool-select select{flex:1;min-width:0}.tool-select-add-btn{padding:6px 12px;font-weight:700}.tool-select-inline{display:flex;gap:8px;margin-top:8px}.form-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);padding:9px 12px;font-size:.85rem;font-weight:500}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin:16px 0;box-shadow:var(--shadow-xs);font-size:.9rem}.detail-actions{display:flex;flex-wrap:wrap;gap:10px}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:20px}.lookups-page{max-width:none;width:100%}.lookups-columns{display:grid;grid-template-columns:35fr 35fr 30fr;gap:20px;align-items:stretch;margin-top:16px;width:100%}.lookups-column{display:flex;flex-direction:column;min-width:0;min-height:0}.lookups-column h2{margin-top:0}.lookups-column .table-scroll{flex:1;max-height:65vh;overflow-y:auto;overflow-x:hidden}.lookups-column .data-table{min-width:0;width:100%;table-layout:fixed}.lookups-column .data-table td,.lookups-column .data-table th{white-space:normal;overflow-wrap:break-word}.lookups-column .detail-actions{gap:6px}.lookups-column .detail-actions button{font-size:.78rem;padding:6px 9px;gap:4px}.lookups-column .tool-select-inline{flex-wrap:wrap}.lookups-column .tool-select-inline input,.lookups-column .tool-select-inline select{flex:1 1 100px;min-width:0}.lookups-column .tool-select-inline button{font-size:.78rem;padding:7px 10px;white-space:nowrap}@media (max-width: 900px){.lookups-page{max-width:1200px}.lookups-columns{grid-template-columns:1fr}.lookups-column .table-scroll{max-height:none;overflow-x:auto}.lookups-column .data-table{min-width:480px;table-layout:auto}.lookups-column .data-table td,.lookups-column .data-table th{white-space:nowrap}}.report-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;min-width:0;overflow-x:auto;box-shadow:var(--shadow-xs)}.breakdown-list{display:flex;flex-direction:column;gap:14px}.breakdown-row-header{display:flex;justify-content:space-between;gap:10px;font-size:.85rem;margin-bottom:6px}.breakdown-row-label{color:var(--text);overflow-wrap:break-word}.breakdown-row-value{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.breakdown-track{background:var(--border);border-radius:999px;height:5px;overflow:hidden}.breakdown-fill{background:var(--accent);height:5px;border-radius:999px}.period-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:18px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-xs)}.period-actions{display:flex;gap:10px}.period-actions button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:20px;background:radial-gradient(ellipse 900px 600px at 30% 20%,#2b2966 0%,var(--navbar-bg-elevated) 45%,var(--navbar-bg) 100%)}.login-orbit{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.12;color:#8b90e8;pointer-events:none}.login-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:36px 32px;width:340px;max-width:100%;display:flex;flex-direction:column;gap:16px;position:relative;animation:card-in .25s ease-out}.login-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:8px;color:var(--text)}.login-logo{color:var(--accent);margin-bottom:10px}.login-brand .sidebar-subtitle{color:var(--muted)}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:600;color:var(--muted)}@keyframes card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-status-card{text-align:center;align-items:center}.login-status-card h1{font-size:1.2rem;margin-bottom:2px}.login-status-icon{width:52px;height:52px;border-radius:50%;background:var(--success-soft);color:var(--success);display:flex;align-items:center;justify-content:center}.login-status-message{margin:0;font-size:.85rem;color:var(--muted);line-height:1.5}.login-status-card button{width:100%}.hint{color:var(--muted);font-size:.8rem}@media (max-width: 720px){.sidebar{width:64px;padding:12px 8px}.sidebar-brand,.sidebar-label{display:none}.sidebar-header{justify-content:center}.page{padding:16px}.filter-row{flex-direction:column;align-items:stretch}.filter-search-wrap{flex-basis:auto}.filter-clear{margin-left:0}}.required-mark{color:var(--danger);margin-left:2px}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.history-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;font-size:.85rem;color:var(--muted)}.toast-stack{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column-reverse;gap:10px;z-index:100;width:340px;max-width:calc(100vw - 48px)}.toast-item{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--toast-color, var(--muted-soft));border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:12px 14px;display:flex;gap:10px;align-items:flex-start;position:relative;overflow:hidden;animation:toast-in .2s ease-out}.toast-success{--toast-color: var(--success);--toast-soft: var(--success-soft)}.toast-error{--toast-color: var(--danger);--toast-soft: var(--danger-soft)}.toast-warning{--toast-color: var(--warning);--toast-soft: var(--warning-soft)}.toast-info{--toast-color: var(--info);--toast-soft: var(--info-soft)}.toast-icon{width:26px;height:26px;border-radius:50%;background:var(--toast-soft, var(--surface-sunken));color:var(--toast-color, var(--muted));display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-body{flex:1;min-width:0}.toast-title{margin:0;font-size:.85rem;font-weight:600;color:var(--text)}.toast-description{margin:3px 0 0;font-size:.78rem;color:var(--muted)}.toast-dismiss{background:none;border:none;box-shadow:none;cursor:pointer;color:var(--muted-soft);padding:2px;flex-shrink:0}.toast-dismiss:not(:disabled):hover{background:none;box-shadow:none;color:var(--text)}.toast-timer{position:absolute;left:0;bottom:0;height:2px;background:var(--toast-color, var(--muted-soft));opacity:.4;width:100%;animation-name:toast-shrink;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-shrink{0%{width:100%}to{width:0%}}.avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:600;flex-shrink:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#151a3373;display:flex;align-items:center;justify-content:center;z-index:50}.modal-card{background:var(--surface);border-radius:var(--radius-lg);padding:24px;width:380px;max-width:90%;box-shadow:var(--shadow-lg)}.modal-card h2{margin-top:0}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-close{background:none;border:none;box-shadow:none;color:var(--muted-soft);padding:4px;display:inline-flex}.modal-close:not(:disabled):hover{background:none;box-shadow:none;color:var(--text)}.modal-actions{display:flex;gap:10px;margin-top:22px}.modal-actions button{flex:1}.confirm-dialog{display:flex;gap:14px;align-items:flex-start}.confirm-icon{flex-shrink:0;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}.confirm-icon-danger{background:var(--danger-soft);color:var(--danger)}.confirm-icon-success{background:var(--success-soft);color:var(--success)}.confirm-icon-neutral{background:var(--accent-soft);color:var(--accent)}.confirm-message{margin:0;font-size:.9rem;color:var(--muted)}.confirm-dialog-center{flex-direction:column;align-items:center;text-align:center}.confirm-dialog-center h2{margin-bottom:6px}.confirm-done-btn{width:100%;margin-top:22px}.segmented-toggle{display:inline-flex;background:var(--surface-sunken);border-radius:var(--radius-sm);padding:3px;gap:2px}.segmented-option{padding:8px 20px;font-size:.85rem;font-weight:600;border-radius:6px;border:none;cursor:pointer;color:var(--muted);background:transparent;box-shadow:none}.segmented-option:not(:disabled):hover{background:var(--border);box-shadow:none}.segmented-option.active{color:#fff;background:var(--accent)}.segmented-option.active:not(:disabled):hover{background:var(--accent-hover)}.field-error{margin:6px 0 0;font-size:.78rem;color:var(--danger)}.password-input-wrap{position:relative;max-width:420px}.password-input-wrap input{width:100%;padding-right:42px}.password-toggle-btn{position:absolute;right:8px;top:8px;background:none;border:none;box-shadow:none;color:var(--muted-soft);padding:4px;display:inline-flex}.password-toggle-btn:not(:disabled):hover{background:none;box-shadow:none;color:var(--text)}.strength-meter{display:flex;gap:4px;margin-bottom:6px}.strength-bar{flex:1;height:4px;border-radius:999px;background:var(--border)}.strength-label{margin:0;font-size:.75rem;font-weight:600}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px 26px;max-width:640px;box-shadow:var(--shadow-xs)}.form-card>button[type=submit]{width:100%}.form-section{margin-bottom:28px}.form-section-title{margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--border-strong)}.form-section .form{gap:18px;max-width:none}
