:root{--green: #62b134;--green-hover: #569e2c;--accent: #3d7a1c;--accent-ink: #0b0b0b;--focus: #62b134;--bg: #f7f8f6;--surface: #ffffff;--surface-2: #f3f4f2;--text: #0b0b0b;--text-muted: #62685f;--border: #e4e6e2;--border-strong: #d0d4cd;--danger: #c0392b;--success-bg: color-mix(in srgb, var(--green) 12%, transparent);--r-card: 20px;--r-panel: 14px;--r-control: 10px;--r-pill: 999px;--shadow: none;--shadow-overlay: 0 12px 40px rgba(11, 11, 11, .14), 0 2px 6px rgba(11, 11, 11, .06)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Open Sans,ui-sans-serif,system-ui,sans-serif;font-size:14.5px;line-height:1.5;-webkit-font-smoothing:antialiased}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.app-shell.no-sidebar{grid-template-columns:1fr}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-topbar{display:none}.brand{font-weight:700;font-size:16px;letter-spacing:-.01em;margin-bottom:10px;color:var(--text);display:flex;align-items:center;gap:10px;white-space:nowrap}.brand-mark,.brand .brand-mark{width:30px;height:30px;border-radius:9px;background:var(--green);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0}.brand span{color:var(--accent)}.brand-sub{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:22px;border:1px solid var(--border-strong);display:inline-block;padding:3px 10px;border-radius:var(--r-pill)}.nav-item{padding:10px 12px;border-radius:var(--r-control);cursor:pointer;color:var(--text-muted);font-weight:600;font-size:13.5px;display:flex;align-items:center;gap:10px;transition:background .12s ease,color .12s ease}.nav-item .nav-icon{width:18px;height:18px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;opacity:.7}.nav-item.active{background:var(--surface-2);color:var(--text);box-shadow:inset 3px 0 0 var(--green)}.nav-item.active .nav-icon{opacity:1;color:var(--accent)}.nav-item:hover:not(.active){background:var(--surface-2);color:var(--text)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px solid var(--border)}.who{font-size:12.5px;color:var(--text-muted)}.who strong{color:var(--text);display:block;font-size:13.5px;font-weight:700;margin-bottom:2px}.main{padding:40px 40px 64px;display:flex;flex-direction:column;gap:24px;max-width:1500px;width:100%;min-width:0}@media (max-width: 1440px) and (min-width: 861px){.main{padding:32px 24px 56px}.card{padding:22px}}.page-head{display:flex;flex-direction:column;gap:6px}.page-head p{margin:0;color:var(--text-muted);font-size:14px;max-width:760px}@media (max-width: 860px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.sidebar-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border-bottom:1px solid var(--border);padding:12px 16px;position:sticky;top:0;z-index:20}.sidebar-topbar .brand{margin-bottom:0}.menu-toggle{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-pill);width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.mobile-nav-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0b0b0b59}.mobile-nav-panel{background:var(--surface);width:260px;height:100%;padding:20px 16px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-overlay)}.main{padding:24px 16px 48px;gap:18px}h1{font-size:22px}}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.2}h2{margin:0;font-size:16px;font-weight:700;letter-spacing:-.01em}a{color:var(--accent);text-decoration:none;font-weight:600}a:hover{text-decoration:underline}.field-grid{display:grid;gap:16px}.field-grid-2{grid-template-columns:repeat(2,1fr)}.field-grid-3{grid-template-columns:repeat(3,1fr)}.field-grid-2-1{grid-template-columns:2fr 1fr}.field-grid-1-2{grid-template-columns:1fr 2fr}@media (max-width: 640px){.field-grid-2,.field-grid-3,.field-grid-2-1,.field-grid-1-2{grid-template-columns:1fr}}.panel{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-panel);padding:16px 18px;display:flex;flex-direction:column;gap:8px}.panel.warn{background:color-mix(in srgb,#b8860b 8%,transparent);border-color:color-mix(in srgb,#b8860b 30%,transparent)}.panel-title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.panel.warn .panel-title{color:#8a6500;display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:0;font-size:13px}.warn-text{color:#8a6500;display:inline-flex;align-items:center;gap:4px;font-weight:600;font-size:12.5px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between;gap:10px}.stat-card .label{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.stat-card .value{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.stat-card.danger{border-color:color-mix(in srgb,var(--danger) 40%,var(--border));background:color-mix(in srgb,var(--danger) 4%,var(--surface))}.stat-card.danger .value{color:var(--danger)}.button-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}button{font:inherit;font-weight:600;font-size:13.5px;border:1px solid transparent;border-radius:var(--r-pill);padding:9px 18px;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease,transform .05s ease}button.primary{background:var(--green);color:var(--accent-ink)}button.primary:hover{background:var(--green-hover)}button.primary:active{transform:translateY(1px)}button.secondary{background:transparent;color:var(--text);border-color:var(--border-strong)}button.secondary:hover{background:var(--surface-2);border-color:var(--text)}button:disabled{opacity:.45;cursor:default}button:focus-visible,.nav-item:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:28px;display:flex;flex-direction:column;gap:18px}.card.narrow{max-width:420px;width:100%}.card.accent{border-color:var(--green);box-shadow:inset 0 3px 0 var(--green)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.card-head h2{display:flex;align-items:center;gap:8px}.field-hint{font-size:12.5px;color:var(--text-muted);margin:0}textarea,input,select{font:inherit;font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-control);padding:10px 12px;width:100%;transition:border-color .12s ease,box-shadow .12s ease}textarea::placeholder,input::placeholder{color:color-mix(in srgb,var(--text-muted) 75%,transparent)}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--text) 35%,var(--border-strong))}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 22%,transparent)}input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}.search-field{position:relative;display:flex;align-items:center;min-width:240px}.search-field svg{position:absolute;left:14px;opacity:.5;pointer-events:none}.search-field input{padding-left:38px;border-radius:var(--r-pill)}.suffix-field{position:relative;display:flex;align-items:center}.suffix-field input{padding-right:28px}.suffix-field .suffix{position:absolute;right:12px;font-weight:700;color:var(--text-muted);pointer-events:none}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--border);font-size:13.5px;white-space:nowrap;vertical-align:middle}th{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);background:var(--surface);border-bottom-color:var(--border-strong);position:sticky;top:0;z-index:1;white-space:normal}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:color-mix(in srgb,var(--green) 5%,transparent)}.table-scroll{overflow-x:auto;border-radius:var(--r-panel);border:1px solid var(--border)}.table-scroll table{border:none}.table-scroll th:first-child,.table-scroll td:first-child{padding-left:18px}.table-scroll th:last-child,.table-scroll td:last-child{padding-right:18px}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.wrap-cell{white-space:normal;min-width:150px;max-width:280px}td .status-msg{white-space:normal}.cell-sub{display:block;margin-top:3px;font-size:12px;color:var(--text-muted);white-space:nowrap}td.wrap-cell .cell-sub,.cell-sub.can-wrap{white-space:normal}.cell-sub .pill{font-size:10.5px;padding:2px 8px}td.date-cell{white-space:normal;min-width:124px;max-width:132px;font-variant-numeric:tabular-nums}td .status-msg.error{background:none;border:none;padding:0;display:block;font-size:12px;font-weight:600}.pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--accent);white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.pill.muted{background:var(--surface-2);color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--border)}.pill.warn{background:color-mix(in srgb,#b8860b 14%,transparent);color:#8a6500}.pill.danger{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.pill.info{background:color-mix(in srgb,#2f6fed 12%,transparent);color:#2456c4}.empty{padding:48px 12px;text-align:center;color:var(--text-muted);font-size:13.5px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty .empty-icon{opacity:.45}.status-msg{font-size:13px;color:var(--text-muted)}.status-msg.error{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent);border:1px solid color-mix(in srgb,var(--danger) 25%,transparent);border-radius:var(--r-control);padding:10px 12px;display:flex;align-items:center;gap:8px}.status-msg.success{color:var(--accent);background:var(--success-bg);border:1px solid color-mix(in srgb,var(--green) 35%,transparent);border-radius:var(--r-control);padding:10px 12px;display:flex;align-items:center;gap:8px}.spinner{width:16px;height:16px;border:2px solid color-mix(in srgb,var(--green) 25%,transparent);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-row{display:flex;align-items:center;justify-content:center;gap:10px}label.field{display:flex;flex-direction:column;gap:6px}label.field .field-label{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}label.field .field-label .required{color:var(--danger)}.view-toggle{display:inline-flex;flex-shrink:0;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px;gap:2px}.view-toggle button{background:transparent;color:var(--text-muted);border:none;padding:6px 16px;border-radius:var(--r-pill)}.view-toggle button.active{background:var(--text);color:#fff}.view-toggle button:hover:not(.active){color:var(--text)}.notif-bell{position:relative;background:var(--surface);border:1px solid var(--border-strong);color:var(--text);width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notif-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--danger);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.notif-badge.inline{position:static;margin-left:auto}.notif-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0b0b0b40}.notif-panel{position:absolute;top:16px;left:256px;width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-overlay);overflow:hidden}.notif-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 14px 20px;border-bottom:1px solid var(--border)}.notif-small{padding:6px 12px;font-size:12.5px}.notif-close{background:transparent;color:var(--text-muted);border:none;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center}.notif-close:hover{background:var(--surface-2);color:var(--text)}.notif-hint{padding:10px 20px;font-size:12.5px;color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border)}.notif-link{background:none;border:none;padding:0;color:var(--accent);border-radius:0;font-size:12.5px;text-decoration:underline}.notif-list{overflow-y:auto}.notif-empty{padding:28px 16px;text-align:center;color:var(--text-muted);font-size:13.5px}.notif-item{padding:12px 20px 12px 24px;border-bottom:1px solid var(--border);cursor:pointer;position:relative}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--surface-2)}.notif-item.unread{background:color-mix(in srgb,var(--green) 7%,transparent)}.notif-item.unread:before{content:"";position:absolute;left:10px;top:19px;width:7px;height:7px;border-radius:50%;background:var(--green)}.notif-msg{font-size:13.5px;color:var(--text);overflow-wrap:anywhere}.notif-item.unread .notif-msg{font-weight:600}.notif-time{font-size:12px;color:var(--text-muted);margin-top:2px}@media (max-width: 860px){.notif-panel{top:64px;left:16px;right:16px;width:auto;max-height:calc(100vh - 80px)}}
