:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17212b;background:#eef2f6;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{min-height:100vh;background:#0b2239;padding:18px 13px;color:#fff;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;padding:4px 8px 18px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark{width:34px;height:34px;border-radius:6px;display:grid;place-items:center;background:#fff;color:#0b2239;font-weight:800}.brand strong,.brand small{display:block}.brand small{margin-top:2px;color:#aebdca}nav{padding-top:14px}.nav-item{width:100%;border:0;background:transparent;color:#dce6ee;text-align:left;padding:10px 11px;border-radius:5px;cursor:pointer}.nav-item+.nav-item{margin-top:3px}.nav-item span{font-weight:650}.nav-item.active{background:#ffffff1a;color:#fff}.sidebar-user{margin-top:auto;padding:14px 8px 4px;border-top:1px solid rgba(255,255,255,.12)}.sidebar-user small,.sidebar-user span{display:block;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:#b8c7d2}.sidebar-user span{margin:3px 0 8px;text-transform:uppercase;font-size:11px;letter-spacing:.06em}.sidebar-user button{border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;border-radius:4px;padding:5px 8px;cursor:pointer}.content{padding:22px 26px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:17px}.topbar h1{margin:0 0 5px;font-size:23px}.topbar p{margin:0;color:#637282}.environment{font-size:11px;font-weight:750;letter-spacing:.08em;border:1px solid #b9c5cf;background:#fff;border-radius:4px;padding:6px 8px}.notice{padding:10px 12px;margin-bottom:14px;border:1px solid #b8cad9;border-radius:5px;background:#f7fafc;font-size:14px}.error-notice{border-color:#d6aaaa;background:#fff7f7;color:#7b2525}.panel{border:1px solid #cbd5df;background:#fff;border-radius:6px;overflow:auto}.panel-heading{padding:14px 16px;border-bottom:1px solid #dce3e9}.panel-heading h2{margin:0 0 4px;font-size:17px}.panel-heading p{margin:0;color:#687785;font-size:14px}table{width:100%;border-collapse:collapse;min-width:640px}th,td{padding:10px 16px;border-bottom:1px solid #e3e8ed;text-align:left;font-size:14px;vertical-align:middle}th{background:#f6f8fa;color:#526171;font-size:11px;text-transform:uppercase;letter-spacing:.04em}tbody tr:last-child td{border-bottom:0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.status{display:inline-block;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700;border:1px solid #c8d2db;background:#f8fafb;white-space:nowrap}.status.ready{border-color:#9fc9ac}.status.partial{border-color:#dbc890}.status.pending{color:#697887}.actions{white-space:nowrap}.actions button{margin-right:6px;border:1px solid #b9c5cf;background:#fff;border-radius:4px;padding:5px 8px;cursor:pointer}.actions button:disabled{opacity:.45;cursor:not-allowed}.login-shell,.center-screen{min-height:100vh;display:grid;place-items:center;padding:20px}.login-panel{width:min(390px,100%);background:#fff;border:1px solid #cbd5df;border-radius:7px;padding:20px;box-shadow:0 10px 30px #14283c14}.login-brand{color:#17212b;border-bottom-color:#dce3e9;margin-bottom:18px;padding-left:0}.login-brand small{color:#687785}.login-brand .brand-mark{background:#0b2239;color:#fff}.login-panel label{display:block;margin-bottom:13px;font-size:13px;font-weight:650}.login-panel input{width:100%;margin-top:5px;border:1px solid #b9c5cf;border-radius:4px;padding:9px 10px}.primary-button{width:100%;border:0;border-radius:4px;padding:10px 12px;background:#0b2239;color:#fff;font-weight:700;cursor:pointer}.primary-button:disabled{opacity:.6}.form-error{color:#8a2525;font-size:13px;margin-bottom:12px}@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto}.sidebar-user{margin-top:14px}.content{padding:16px}}.panel-heading-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.primary-action{border:0;border-radius:4px;padding:8px 11px;background:#0b2239;color:#fff;font-weight:700;cursor:pointer;white-space:nowrap}.primary-action:disabled{opacity:.55;cursor:not-allowed}.inline-success{padding:9px 16px;border-bottom:1px solid #dce3e9;background:#f4faf6;color:#2f6840;font-size:13px}@media(max-width:680px){.panel-heading-row{align-items:stretch;flex-direction:column}}.brand-copy{min-width:0;flex:1}.brand-title-row{display:flex;align-items:baseline;gap:7px;min-width:0}.brand-version{font-size:10px;font-weight:700;color:#9fb2c1;white-space:nowrap}.brand-title-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.update-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-4px 0 16px;padding:9px 12px;border:1px solid #b7c8d8;border-radius:5px;background:#f4f8fb;color:#27445f;font-size:13px}.update-banner button{border:1px solid #8fa8bc;border-radius:4px;background:#fff;color:#17324a;padding:5px 9px;font-weight:700;cursor:pointer;white-space:nowrap}@media(max-width:680px){.update-banner{align-items:stretch;flex-direction:column}}.table-scroll{overflow-x:auto}.cell-sub{display:block;margin-top:3px;color:#71808e;font-size:11px;line-height:1.3}.status.danger{border-color:#d7a4a4;background:#fff5f5;color:#8d2d2d}.candidate-actions{white-space:normal;min-width:250px}.candidate-actions button{margin-bottom:4px}.candidate-row input,.candidate-row select{width:100%;min-width:90px;border:1px solid #b9c5cf;border-radius:4px;padding:6px 7px;background:#fff}.interval-input{max-width:90px}.candidate-details-row td{background:#f8fafc;padding:14px 16px 16px}.details-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px 18px}.detail-item,.detail-wide{min-width:0}.detail-label{display:block;margin-bottom:3px;color:#6a7886;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.detail-wide{grid-column:1 / -1}.server-list{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px}.server-list span{border:1px solid #d7e0e7;border-radius:4px;background:#fff;padding:5px 7px}.danger-button{border-color:#d9a4a4!important;color:#8a2525}.modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:#09141f94}.confirm-dialog{width:min(520px,100%);border-radius:7px;background:#fff;padding:20px;box-shadow:0 18px 55px #00000040}.confirm-dialog h2{margin:0 0 8px;font-size:19px}.confirm-dialog p{margin:0 0 15px;color:#536474;line-height:1.45}.confirm-dialog>input{width:100%;border:1px solid #b9c5cf;border-radius:4px;padding:9px 10px;margin-bottom:15px}.delete-options{display:grid;gap:6px;padding:12px;border:1px solid #dce3e9;border-radius:5px;background:#f8fafb}.delete-options button,.dialog-cancel{border:1px solid #b9c5cf;border-radius:4px;background:#fff;padding:8px 10px;cursor:pointer}.delete-options button:disabled{opacity:.45;cursor:not-allowed}.delete-options small{color:#6b7986;margin-bottom:7px}.danger-primary{border-color:#b96161!important;background:#8b2f2f!important;color:#fff}.dialog-cancel{margin-top:12px}@media(max-width:820px){.sidebar{position:sticky;top:0;z-index:20;padding:10px 10px 8px}.brand{padding:2px 4px 9px}nav{display:flex;gap:4px;overflow-x:auto;padding-top:8px;scrollbar-width:thin}.nav-item{width:auto;flex:0 0 auto;padding:8px 10px}.sidebar-user{display:none}.content{padding:12px}.topbar h1{font-size:20px}.panel-heading{padding:12px}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.candidate-table{min-width:0}.candidate-table thead{display:none}.candidate-table tbody,.candidate-table tr,.candidate-table td{display:block;width:100%}.candidate-table .candidate-row{margin:10px;width:calc(100% - 20px);border:1px solid #d8e0e7;border-radius:6px;overflow:hidden;background:#fff}.candidate-table .candidate-row td{display:grid;grid-template-columns:100px minmax(0,1fr);gap:9px;align-items:start;padding:9px 11px;border-bottom:1px solid #edf0f3}.candidate-table .candidate-row td:before{content:attr(data-label);color:#657482;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.candidate-table .candidate-row td:last-child{border-bottom:0}.candidate-actions{min-width:0}.candidate-actions button{margin:0 5px 5px 0;padding:7px 9px}.candidate-details-row{margin:-6px 10px 12px;width:calc(100% - 20px)!important;border:1px solid #d8e0e7;border-top:0;border-radius:0 0 6px 6px}.candidate-details-row td{padding:12px!important}.candidate-details-row td:before{display:none}.details-grid{grid-template-columns:1fr;gap:10px}.confirm-dialog{max-height:calc(100vh - 28px);overflow-y:auto;padding:16px}.primary-action{width:100%}}@media(max-width:680px){.monitor-table{min-width:0}.monitor-table thead{display:none}.monitor-table tbody,.monitor-table tr,.monitor-table td{display:block;width:100%}.monitor-table tr{margin:10px;width:calc(100% - 20px);border:1px solid #d8e0e7;border-radius:6px;overflow:hidden;background:#fff}.monitor-table td{display:grid;grid-template-columns:100px minmax(0,1fr);gap:9px;align-items:start;padding:9px 11px;border-bottom:1px solid #edf0f3}.monitor-table td:before{content:attr(data-label);color:#657482;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.monitor-table td:last-child{border-bottom:0}.monitor-table .actions{white-space:normal}.monitor-table .actions button{margin:0 5px 5px 0;padding:7px 9px}}.delete-summary{display:grid;grid-template-columns:1fr auto;gap:7px 16px;margin:0 0 14px;padding:10px 12px;border:1px solid #dce3e9;border-radius:5px;background:#f8fafb;font-size:13px}.delete-summary strong{text-align:right}.candidate-name{display:block;font-size:15px;line-height:1.25;font-weight:750}.candidate-filters{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;border-bottom:1px solid #dce3e9;background:#fafbfd}.candidate-filters button{border:1px solid #c7d1da;border-radius:999px;background:#fff;color:#435465;padding:5px 9px;font-size:12px;cursor:pointer}.candidate-filters button.active{border-color:#58728a;background:#eaf0f5;color:#172f45;font-weight:750}.candidate-filters button span{margin-left:3px;color:#6d7d8c}.status-history{display:grid;gap:6px;margin-top:4px}.status-history-row{display:grid;grid-template-columns:90px 150px minmax(150px,1fr) 90px;gap:10px;align-items:center;padding:6px 8px;border:1px solid #dce3e9;border-radius:4px;background:#fff;font-size:12px}.status-history-row strong{text-align:right}@media(max-width:680px){.candidate-name{font-size:16px}.candidate-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.candidate-filters button{flex:0 0 auto}.status-history-row{grid-template-columns:1fr;gap:4px}.status-history-row strong{text-align:left}}
