@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{color:#20221f;font-synthesis:none;--ink:#20221f;--muted:#71756d;--line:#dcddd6;--surface:#fbfbf8;--surface-soft:#eceee9;--green:#2f765e;--green-soft:#e6f1eb;--red:#b94b42;--red-soft:#f7e7e4;--orange:#b57a2e;--orange-soft:#f5ead9;background:#f3f4f1;font-family:DM Sans,Noto Sans SC,sans-serif}*{box-sizing:border-box}body{background:#f3f4f1;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-page{background:#20221f;place-items:center;min-height:100vh;padding:22px;display:grid}.login-panel{background:#fbfbf8;border:1px solid #343733;border-radius:8px;width:min(390px,100%);padding:26px;box-shadow:0 22px 70px #0000004d}.login-brand{align-items:center;gap:11px;margin-bottom:24px;display:flex}.login-brand>span,.admin-brand>span{background:var(--green);color:#fff;border-radius:7px;place-items:center;width:37px;height:37px;display:grid}.login-brand strong,.login-brand small{display:block}.login-brand strong{font-size:19px}.login-brand small{color:var(--muted);margin-top:2px;font-size:11px}.login-panel label{color:#555a52;gap:7px;margin-top:13px;font-size:12px;font-weight:600;display:grid}.login-panel input,.form-grid input,.form-grid select,.toolbar-panel input,.toolbar-panel select,.detail-stack select,.credit-box input,.note-input{width:100%;min-width:0;height:38px;color:var(--ink);background:#fff;border:1px solid #d2d4cc;border-radius:6px;outline:0;padding:0 10px}.login-panel input:focus,.form-grid input:focus,.form-grid select:focus,.toolbar-panel input:focus,.toolbar-panel select:focus,.detail-stack select:focus,.credit-box input:focus,.note-input:focus{border-color:#6b927f;box-shadow:0 0 0 3px #2f765e1f}.admin-shell{grid-template-columns:216px minmax(0,1fr);min-height:100vh;display:grid}.admin-sidebar{color:#f8f8f3;background:#20221f;flex-direction:column;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.admin-brand{align-items:center;gap:11px;height:42px;padding:0 8px;font-size:16px;font-weight:700;display:flex}.admin-sidebar nav{gap:5px;margin-top:35px;display:grid}.admin-sidebar nav button{color:#b7bbb3;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;height:42px;padding:0 11px;display:flex}.admin-sidebar nav button:hover,.admin-sidebar nav button.active{color:#fff;background:#333631}.session-box{border-top:1px solid #383b36;gap:8px;margin-top:auto;padding:14px 8px 0;display:grid}.session-box strong,.session-box small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.session-box small{color:#9ca198;font-size:11px}.admin-main{min-width:0;padding:26px 30px 44px}.page-stack{gap:16px;display:grid}.page-heading{justify-content:space-between;align-items:flex-start;gap:14px;min-height:58px;display:flex}.page-heading p{color:#8a8e86;margin:0 0 4px;font-size:11px;font-weight:700}.page-heading h1{letter-spacing:0;margin:0;font-size:24px}.admin-button{color:#4d524b;background:#fbfbf8;border:1px solid #d2d4cc;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:35px;padding:0 12px;display:inline-flex}.admin-button:hover{color:var(--ink);border-color:#9da69f}.admin-button.primary{color:#fff;background:#2f765e;border-color:#2f765e}.admin-button.wide{width:100%}.admin-button:disabled{opacity:.55;cursor:wait}.text-action{color:var(--green);background:0 0;border:0}.stat-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.stat-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-tile{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-columns:35px minmax(0,1fr);gap:12px;min-height:102px;padding:15px;display:grid}.stat-tile>span{color:#4f554d;background:#e6e7e1;border-radius:7px;place-items:center;width:35px;height:35px;display:grid}.stat-tile.green>span{background:var(--green-soft);color:var(--green)}.stat-tile.orange>span{background:var(--orange-soft);color:var(--orange)}.stat-tile small,.stat-tile em{color:var(--muted);font-size:11px;font-style:normal;display:block}.stat-tile strong{margin:3px 0;font-size:24px;line-height:1.1;display:block}.panel,.toolbar-panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:0}.panel{overflow:hidden}.panel-header{border-bottom:1px solid #e6e7e0;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:0 15px;display:flex}.panel-header h2{margin:0;font-size:14px}.panel-header>span{color:var(--muted);font-size:11px}.toolbar-panel{grid-template-columns:minmax(240px,1fr) 132px 132px auto;align-items:center;gap:9px;min-height:58px;padding:10px;display:grid}.search-field{display:block;position:relative}.search-field svg{color:#81867e;position:absolute;top:11px;left:10px}.search-field input{padding-left:34px}.split-layout{grid-template-columns:minmax(0,1fr) 352px;align-items:start;gap:16px;display:grid}.side-stack{gap:16px;display:grid}.data-table{width:100%;overflow:auto}.data-table table{border-collapse:collapse;width:100%;min-width:760px}.data-table th,.data-table td{color:#464b44;text-align:left;vertical-align:middle;border-bottom:1px solid #ebebe6;min-height:48px;padding:12px 14px;font-size:12px}.data-table th{color:#7e837b;background:#f1f2ee;font-size:10px;font-weight:700}.data-table tr:last-child td{border-bottom:0}.data-table tr:hover td,.data-table tr.selected td{background:#eef4f0}.data-table td strong,.data-table td small{text-overflow:ellipsis;white-space:nowrap;max-width:280px;display:block;overflow:hidden}.data-table td small{color:#8b9088;margin-top:3px;font-size:10px}.status-pill{color:#555a52;white-space:nowrap;background:#e8e9e4;border-radius:12px;align-items:center;min-height:24px;padding:0 8px;font-size:10px;font-weight:700;display:inline-flex}.status-pill.good{background:var(--green-soft);color:var(--green)}.status-pill.info{color:#396d8a;background:#e2edf3}.status-pill.warn{background:var(--orange-soft);color:var(--orange)}.status-pill.bad{background:var(--red-soft);color:var(--red)}.form-grid{gap:9px;padding:14px;display:grid}.detail-stack{gap:10px;padding:15px;display:grid}.detail-stack>strong{font-size:16px}.detail-stack>small{color:var(--muted);margin-top:-8px;font-size:11px}.mini-stats{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.mini-stats span{min-height:54px;color:var(--muted);border:1px solid #e4e5df;border-radius:6px;gap:3px;padding:8px;font-size:10px;display:grid}.mini-stats b{color:var(--ink);font-size:15px}.inline-fields,.credit-box{grid-template-columns:1fr 1fr;gap:8px;display:grid}.credit-box{grid-template-columns:80px 1fr auto}.form-error,.success-note{border-radius:6px;align-items:center;min-height:38px;margin:0;padding:10px 12px;font-size:12px;display:flex}.form-error{background:var(--red-soft);color:var(--red)}.success-note{background:var(--green-soft);color:var(--green)}.empty-state{color:#8b9088;place-items:center;min-height:132px;font-size:12px;display:grid}.center-panel{color:#676d64;align-content:center;place-items:center;gap:12px;min-height:calc(100vh - 90px);display:grid}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.note-input{resize:vertical;height:74px;margin:14px;padding:10px}.review-row{border-top:1px solid #ebebe6;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;min-height:70px;padding:12px 14px;display:grid}.review-row strong,.review-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.review-row small{color:var(--muted);margin-top:4px;font-size:11px}.config-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:15px;display:grid}.config-grid span{min-height:58px;color:var(--muted);border:1px solid #e4e5df;border-radius:6px;padding:10px;font-size:11px;display:grid}.config-grid b{color:var(--ink);overflow-wrap:anywhere;margin-top:5px;font-size:12px}@media (width<=980px){.admin-shell{grid-template-columns:74px minmax(0,1fr)}.admin-sidebar{padding:16px 10px}.admin-brand strong,.admin-sidebar nav span,.session-box strong,.session-box small,.session-box .admin-button span{display:none}.admin-sidebar nav button{justify-content:center;padding:0}.stat-grid,.stat-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.split-layout{grid-template-columns:1fr}}@media (width<=680px){.admin-main{padding:18px 14px 30px}.toolbar-panel,.stat-grid,.stat-grid.compact,.review-row,.config-grid{grid-template-columns:1fr}}
