:root{
 --bg:#f4f6fa;--card:#fff;--text:#172033;--muted:#778198;--line:#e6e9f0;
 --primary:#3b5bdb;--primary-dark:#2947b8;--danger:#d9485f;--success:#198754;
 --sidebar:#101828;--sidebar2:#182235;--shadow:0 12px 35px rgba(16,24,40,.07);
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
button,input,select{font:inherit}button{cursor:pointer}
.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#eaf0ff 0,#f4f6fa 45%,#eef1f6 100%)}
.login-card{width:min(430px,92vw);background:#fff;border:1px solid var(--line);border-radius:22px;padding:38px;box-shadow:var(--shadow)}
.brand-mark{width:58px;height:58px;border-radius:17px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:.5px;margin-bottom:20px}
.brand-mark.small{width:42px;height:42px;border-radius:12px;margin:0}
h1,h2,p{margin-top:0}.login-card h1{margin-bottom:7px}.muted{color:var(--muted);margin-bottom:26px}
label{display:block;font-size:13px;font-weight:700;color:#344054;margin-bottom:17px}
input,select{display:block;width:100%;margin-top:7px;border:1px solid #d9deea;border-radius:10px;padding:12px 13px;background:#fff;color:var(--text);outline:none;transition:.2s}
input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,91,219,.11)}
.btn{border:0;border-radius:10px;padding:11px 17px;font-weight:750;transition:.15s}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.secondary{background:#eef2ff;color:#3049b6}.btn.danger{background:var(--danger);color:#fff}.btn.small{padding:8px 11px;font-size:12px}.wide{width:100%;margin-top:5px}
.app{min-height:100vh;display:flex}.sidebar{width:255px;background:var(--sidebar);color:#fff;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;padding:22px 15px}.side-brand{display:flex;align-items:center;gap:12px;padding:6px 10px 30px}.side-brand strong,.side-brand span{display:block}.side-brand span{color:#98a2b3;font-size:11px;margin-top:3px}
nav a{display:flex;align-items:center;gap:12px;text-decoration:none;color:#b7c0d1;padding:13px 13px;border-radius:10px;margin:4px 0;font-size:14px;font-weight:650}nav a span{font-size:10px;color:#69758a;min-width:20px}nav a.active{background:var(--sidebar2);color:#fff}nav a.active span{color:#91a4ff}.sidebar-bottom{margin-top:auto}.logout{width:100%;background:transparent;border:1px solid #2c394e;color:#b7c0d1;border-radius:10px;padding:11px}
.content{margin-left:255px;width:calc(100% - 255px);padding:34px 42px;max-width:1500px}.topbar{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--primary);font-weight:800;margin-bottom:6px}.topbar h1{font-size:28px;margin:0}.counter{display:flex;gap:7px;align-items:baseline;color:var(--muted)}.counter b{font-size:25px;color:var(--text)}
.alert{padding:13px 16px;border-radius:10px;margin-bottom:20px;font-size:14px;font-weight:650}.alert.success{background:#eaf8f0;color:#146c43;border:1px solid #c8eed8}.alert.error{background:#fff0f2;color:#a62c40;border:1px solid #ffd0d7}
.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:25px;margin-bottom:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.panel-head h2{font-size:18px;margin-bottom:4px}.panel-head p{font-size:13px;color:var(--muted);margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}.form-actions{display:flex;align-items:end;padding-bottom:17px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:11px;color:#7b8498;text-transform:uppercase;letter-spacing:.5px;background:#fafbfc}th,td{padding:13px 12px;border-bottom:1px solid var(--line);white-space:nowrap}tbody tr:hover{background:#fbfcff}.empty{text-align:center;color:var(--muted);padding:38px 10px;border:1px dashed var(--line);border-radius:12px}.choice-input{width:105px;margin:0;padding:9px}.selection-table td{vertical-align:middle}.bottom-action{padding-top:18px;display:flex;justify-content:flex-end}.badge{display:inline-block;border-radius:999px;background:#f1f3f7;color:#667085;padding:5px 9px;font-size:11px;font-weight:700}.badge.done{background:#eaf8f0;color:#198754}.match-count{font-size:13px;font-weight:750;color:var(--primary);background:#eef2ff;border-radius:999px;padding:7px 11px}.matches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}.match-card{border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;align-items:center;gap:12px;background:#fcfdff}.person{display:flex;align-items:center;gap:9px;min-width:0;flex:1}.person div:last-child{min-width:0}.person strong,.person span{display:block}.person strong{font-size:11px;color:var(--primary)}.person span{font-size:12px;font-weight:700;white-space:normal}.avatar{width:34px;height:34px;border-radius:10px;background:#eef2ff;color:var(--primary);display:grid;place-items:center;font-weight:800;flex:none}.heart{color:var(--danger);font-size:18px}.danger-panel{max-width:800px}.danger-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff0f2;color:var(--danger);font-weight:900;font-size:20px;margin-bottom:15px}.danger-panel h2{margin-bottom:7px}.danger-panel p{color:#667085;line-height:1.6}.warning{padding:13px 15px;background:#fff8e6;border:1px solid #ffe3a3;border-radius:10px;color:#7a5a00;font-size:13px;margin:18px 0}.reset-form{max-width:430px}.reset-form .btn{margin-top:4px}
@media(max-width:900px){.sidebar{width:210px}.content{margin-left:210px;width:calc(100% - 210px);padding:25px}.form-grid{grid-template-columns:1fr}}
@media(max-width:680px){.app{display:block}.sidebar{position:relative;width:100%;height:auto}.sidebar-bottom{margin-top:15px}.content{margin:0;width:100%;padding:20px}.side-brand{padding-bottom:15px}nav{display:grid;grid-template-columns:1fr 1fr}.topbar{align-items:start}.counter{display:none}.form-grid{grid-template-columns:1fr}.matches-grid{grid-template-columns:1fr}}
