*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --P:#4C2880;--Pdk:#2D1650;--Pmd:#6B3FA0;--Plt:#E8E0F0;--Pxt:#F3F0F8;
  --G:#D9C892;--Gdk:#B8A060;--Glt:#F5EFD8;
  --red:#7B1F1F;--warn:#B8700A;--warn-bg:#FFF3CD;
  --white:#FFF;--off:#F8F5EF;--border:#D4C9E8;--gray:#888;
  --radius:8px;--rsm:5px;--shadow:0 1px 4px rgba(44,22,80,.10);
}
html,body{height:100%;font-family:'Segoe UI',Arial,sans-serif;font-size:14px;background:var(--off);color:#1A1A2E}

/* ── Top bar ── */
#topbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 16px;background:var(--Pdk);border-bottom:3px solid var(--G);position:sticky;top:0;z-index:100}
.brand{font-weight:700;font-size:15px;color:var(--G);white-space:nowrap}
.brand span{font-weight:400;font-size:11px;color:#A090B8;margin-left:6px}
#team-sel{min-width:160px;max-width:240px;padding:5px 9px;border-radius:var(--rsm);border:1px solid var(--G);background:rgba(255,255,255,.12);color:var(--G);font-size:13px;font-weight:700;cursor:pointer}
#team-sel option{background:var(--Pdk);color:var(--G)}
.tbtn-div{width:1px;height:22px;background:rgba(255,255,255,.25);flex-shrink:0}
#game-sel{flex:1;min-width:180px;max-width:360px;padding:5px 9px;border-radius:var(--rsm);border:1px solid var(--Pmd);background:var(--P);color:var(--G);font-size:13px;font-weight:600;cursor:pointer}
#game-sel option{background:var(--Pdk)}
.tbtn{padding:5px 12px;border-radius:var(--rsm);border:1px solid var(--G);background:transparent;color:var(--G);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}
.tbtn:hover{background:rgba(217,200,146,.15)}
.tbtn.danger{border-color:#E07070;color:#E07070}
.tbtn.danger:hover{background:rgba(224,112,112,.12)}
#btn-gen{background:var(--G);color:var(--Pdk);border-color:var(--G);font-size:13px;padding:6px 16px;margin-left:auto}
#btn-gen:hover{background:#EAD9A0}
#btn-gen:disabled{background:#888;border-color:#888;color:#ccc;cursor:not-allowed}

/* ── Tabs ── */
#tab-bar{display:flex;background:var(--P);border-bottom:2px solid var(--G);padding:0 16px}
.tab{padding:9px 20px;font-size:13px;font-weight:600;color:rgba(255,255,255,.6);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .15s}
.tab.active{color:var(--G);border-bottom-color:var(--G)}
.tab:hover:not(.active){color:#fff}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* ── Status ── */
#statusbar{padding:4px 16px;background:var(--P);color:var(--G);font-size:11px;min-height:22px;display:flex;align-items:center;gap:6px}
#statusbar .dot{width:6px;height:6px;border-radius:50%;background:var(--G);flex-shrink:0}
#statusbar.err .dot{background:#E07070}
#statusbar.err{color:#E07070}
#statusbar.ok .dot{background:#7DC882}
#statusbar.ok{color:#7DC882}

/* ── Game Info Strip ── */
#game-info-strip{display:none;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:8px 16px;background:var(--white);border-bottom:2px solid var(--border)}
#game-info-strip.show{display:flex}
.gif{display:flex;flex-direction:column;gap:2px}
.gif label{font-size:10px;font-weight:600;color:var(--Pmd);text-transform:uppercase;letter-spacing:.4px}
.gif input,.gif select{padding:5px 8px;border:1px solid var(--border);border-radius:var(--rsm);font-size:13px;background:var(--off)}
.gif input:focus,.gif select:focus{outline:none;border-color:var(--P)}
.gif-opp{flex:2;min-width:150px}
.gif-opp input{width:100%}
.gif-date input{width:130px}
.gif-time input{width:95px}
.gif-field{flex:2;min-width:130px}
.gif-field input{width:100%}
.ha-toggle{display:flex;border-radius:var(--rsm);overflow:hidden;border:1px solid var(--P);height:31px;flex-shrink:0}
.ha-toggle button{padding:0 10px;border:none;background:var(--Plt);color:var(--P);font-size:12px;font-weight:700;cursor:pointer;transition:background .1s}
.ha-toggle button.active{background:var(--P);color:var(--G)}

/* ── Main Layout ── */
#lineup-layout{display:grid;grid-template-columns:200px 1fr 380px;gap:12px;padding:12px 16px;min-height:calc(100vh - 145px);max-width:1080px}

/* ── Panel ── */
.panel{background:var(--white);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden}
.ph{padding:8px 12px;background:var(--Pdk);color:var(--G);font-weight:700;font-size:11px;letter-spacing:.5px;text-transform:uppercase;display:flex;align-items:center;justify-content:space-between}
.ph-act{font-size:11px;font-weight:400;color:var(--G);opacity:.7;cursor:pointer;border:none;background:none;padding:0}
.ph-act:hover{opacity:1}
.pb{padding:9px;overflow-y:auto}
.sec{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--Pmd);padding:5px 2px 3px;border-bottom:1px solid var(--Plt);margin-bottom:6px}

/* ── Roster ── */
#roster-panel{display:flex;flex-direction:column;position:sticky;top:145px;max-height:calc(100vh - 155px)}
#roster-panel .pb{flex:1;overflow-y:auto}
#roster-search{width:100%;padding:5px 8px;border:1px solid var(--border);border-radius:var(--rsm);font-size:12px;margin-bottom:7px;background:var(--off)}
.rc{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:var(--rsm);border:1px solid var(--border);margin-bottom:4px;background:var(--white);cursor:grab;user-select:none;transition:background .1s,border-color .1s}
.rc:hover{background:var(--Plt);border-color:var(--P)}
.rc.dragging{opacity:.35}
body.drag-active .slot *{pointer-events:none}
body.drag-active .pr   *{pointer-events:none}
.rc.used{background:#F0EBF8;border-color:var(--Pmd);opacity:.55;cursor:default}
.rc.used .rc-name{text-decoration:line-through;color:var(--gray)}
.rc.ineligible .rc-num::after{content:'⚠';font-size:9px;color:var(--warn);margin-left:2px}
.rc-num{width:24px;text-align:center;font-weight:700;font-size:13px;color:var(--P);flex-shrink:0}
.rc-name{font-size:12px;flex:1}
.rc-warn{font-size:9px;background:var(--warn-bg);color:var(--warn);border-radius:3px;padding:1px 4px;font-weight:700;white-space:nowrap}
.add-row{display:flex;gap:4px;margin-top:7px;padding-top:7px;border-top:1px solid var(--border)}
.add-row input{flex:1;padding:4px 6px;border:1px solid var(--border);border-radius:var(--rsm);font-size:12px}
.add-row .ni{width:44px;flex:none}
.sbtn{padding:4px 9px;border-radius:var(--rsm);border:1px solid var(--P);background:var(--Plt);color:var(--Pdk);font-size:11px;font-weight:600;cursor:pointer}
.sbtn.red{border-color:#D08080;background:#FDF0F0;color:var(--red)}

/* ── Center col ── */
#center-col{display:flex;flex-direction:column;gap:11px}
#order-hdr-right{display:flex;align-items:center;gap:8px}
#dh-lbl{font-size:11px;font-weight:700;color:var(--G)}
#dh-cb{accent-color:var(--G);width:14px;height:14px;cursor:pointer}
#order-list{list-style:none;padding:0 9px 6px}
.slot{display:flex;align-items:center;gap:7px;padding:6px 9px;border-radius:var(--rsm);border:1px solid var(--border);margin-bottom:4px;background:var(--white);min-height:42px;transition:background .1s}
.slot.filled{border-color:var(--Pmd)}
.slot.empty{border-style:dashed;background:var(--off)}
.slot.drag-over{background:var(--Plt);border-color:var(--P);border-style:dashed}
.slot-n{width:24px;height:24px;border-radius:50%;background:var(--Pdk);color:var(--G);font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sp-name{font-weight:600;font-size:13px}
.sp-num{font-size:10px;color:var(--gray)}
.pos-sel{padding:3px 5px;border:1px solid var(--border);border-radius:var(--rsm);font-size:11px;font-weight:700;color:var(--Pdk);background:var(--Plt);width:55px}
.slot-x{border:none;background:none;color:#CCC;cursor:pointer;font-size:15px;line-height:1;padding:2px 3px}
.slot-x:hover{color:var(--red)}
.slot-drag{color:#CCC;cursor:grab;font-size:13px}
.slot-hint{font-size:11px;color:#BBB;font-style:italic;flex:1;padding-left:3px}
.slot-warn{font-size:9px;background:var(--warn-bg);color:var(--warn);border-radius:3px;padding:1px 4px;font-weight:700}
.order-btns{display:flex;gap:6px;padding:7px 9px 8px;align-items:center}
.order-btns span{font-size:11px;color:var(--gray);flex:1}
.add-slot-btn,.rem-slot-btn{width:24px;height:24px;border-radius:50%;border:1px solid var(--P);background:var(--Plt);color:var(--P);font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}
.add-slot-btn:hover,.rem-slot-btn:hover{background:var(--P);color:var(--G)}

/* DH pitcher card */
#dh-pitcher-card{display:none;background:var(--white);border-radius:var(--radius);border:2px solid var(--Pmd);box-shadow:var(--shadow);overflow:hidden}
#dh-pitcher-card .dph{padding:8px 12px;background:var(--Pdk);color:var(--G);font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;display:flex;align-items:center;justify-content:space-between}
#dh-pitcher-card .dpb{padding:10px 12px;display:flex;align-items:center;gap:8px}
#dh-pitcher-card .dpb .slot{flex:1;min-height:38px}
#dh-pitcher-card .dpb input{width:62px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--rsm);font-size:12px;background:var(--off)}
#dh-pitcher-card .dpb .pc-lbl{font-size:11px;color:var(--Pmd);font-weight:600;white-space:nowrap}
.dph-warn{font-size:9px;background:var(--warn-bg);color:var(--warn);border-radius:3px;padding:2px 6px;font-weight:700}

/* ── Right col ── */
#right-col{display:flex;flex-direction:column;gap:11px;position:sticky;top:145px;max-height:calc(100vh - 155px);overflow-y:auto}
.pr{display:flex;align-items:center;gap:5px;margin-bottom:5px}
.pr.drag-over{background:var(--Plt);border-radius:var(--rsm);outline:1px dashed var(--P)}
.pr select,.pr input{padding:4px 6px;border:1px solid var(--border);border-radius:var(--rsm);font-size:12px;background:var(--off)}
.pr .ppl{flex:1}
.pr .prl{width:72px}
.pr .ppc{width:50px}
.pr .pw{font-size:9px;background:var(--warn-bg);color:var(--warn);border-radius:3px;padding:1px 4px;font-weight:700}
.sr{display:flex;align-items:center;gap:5px;margin-bottom:5px}
.sr select{flex:1;padding:4px 6px;border:1px solid var(--border);border-radius:var(--rsm);font-size:12px;background:var(--off)}
.sr-name{font-size:12px;flex:1;font-weight:600}
.sr.entered .sr-name{text-decoration:line-through;color:var(--gray)}
.sr-entered-lbl{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--Pmd);cursor:pointer;white-space:nowrap;user-select:none}
.sr-entered-lbl input[type=checkbox]{accent-color:var(--P);cursor:pointer;width:13px;height:13px;flex-shrink:0}
#roster-panel.roster-drop-over{outline:2px dashed var(--P);background:var(--Plt);border-radius:var(--radius)}
#subs-list.subs-drag-over{outline:2px dashed var(--P);background:var(--Plt);border-radius:var(--rsm);min-height:28px;padding:4px}
.add-btn{width:100%;padding:5px;border:1px dashed var(--border);border-radius:var(--rsm);background:var(--off);color:var(--Pmd);font-size:12px;cursor:pointer;text-align:center;margin-top:3px}
.add-btn:hover{border-color:var(--P);background:var(--Plt)}
.rm{border:none;background:none;color:#CCC;cursor:pointer;font-size:15px;line-height:1;padding:2px 3px;flex-shrink:0}
.rm:hover{color:var(--red)}

/* Pitch count rules box */
.pc-rules{margin:6px 0 2px;background:var(--Pxt);border:1px solid var(--Plt);border-radius:var(--rsm);padding:7px 10px;font-size:11px}
.pc-rules .pcr-title{font-weight:700;color:var(--Pmd);font-size:10px;letter-spacing:.4px;margin-bottom:4px;text-transform:uppercase}
.pc-rules table{width:100%;border-collapse:collapse}
.pc-rules td{padding:2px 6px;color:#333}
.pc-rules td:first-child{font-weight:600;color:var(--Pdk)}
.pc-rules .max-row td{font-weight:700;color:var(--red);border-top:1px solid var(--border);padding-top:4px}

/* ── Pitch log tab ── */
#pitchlog-layout{padding:14px 18px}
.pl-entry-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;box-shadow:var(--shadow)}
.pl-entry-lbl{font-size:12px;font-weight:700;color:var(--Pmd);white-space:nowrap}
.pl-matrix-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow)}
#pl-matrix table{border-collapse:collapse;font-size:12px;white-space:nowrap;min-width:100%}
#pl-matrix th{background:var(--Pdk);color:var(--G);font-weight:700;padding:7px 10px;text-align:center;font-size:11px}
#pl-matrix th.pl-player-col{text-align:left;min-width:150px;position:sticky;left:0;z-index:3;background:var(--Pdk)}
#pl-matrix td{padding:5px 8px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:center}
#pl-matrix td.pl-player-col{text-align:left;font-weight:600;background:var(--white);position:sticky;left:0;z-index:1;min-width:150px;border-right:2px solid var(--Plt)}
#pl-matrix tr:nth-child(even) td{background:var(--Pxt)}
#pl-matrix tr:nth-child(even) td.pl-player-col{background:var(--Pxt)}
#pl-matrix td.pl-future-inelig{background:#FFF3CD!important;color:var(--warn);font-weight:700;font-size:10px;padding:3px 5px}
#pl-matrix td.pl-total-col{background:var(--Plt)!important;font-weight:700;color:var(--Pdk);border-left:2px solid var(--Pmd)}
#pl-matrix th.pl-total-col{background:var(--P)!important;border-left:2px solid var(--G)}
#pl-matrix th.pl-future-hdr{background:var(--warn)!important;color:#fff}
.pl-pitch-input{width:46px;padding:3px 4px;border:1px solid var(--border);border-radius:3px;font-size:12px;text-align:center;background:var(--white)}
.pl-pitch-input:focus{outline:none;border-color:var(--P)}
.elig-panel{background:var(--white);border-radius:var(--radius);border:1px solid var(--border);margin-top:14px;overflow:hidden}
.elig-panel .ep-hdr{padding:8px 12px;background:var(--Pdk);color:var(--G);font-weight:700;font-size:11px;letter-spacing:.5px;text-transform:uppercase}
.elig-panel table{width:100%;border-collapse:collapse;font-size:12px}
.elig-panel th{background:var(--Plt);color:var(--Pdk);font-weight:700;padding:6px 10px;text-align:left;font-size:11px}
.elig-panel td{padding:6px 10px;border-bottom:1px solid var(--border)}
.elig-panel tr:last-child td{border-bottom:none}
.elig-panel tr:nth-child(even) td{background:var(--Pxt)}
.elig-yes{color:#2A7A35;font-weight:700}
.elig-no{color:var(--warn);font-weight:700}

/* ── Roster contacts tab ── */
#contacts-layout{padding:14px 18px}
.contacts-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.contacts-top h2{font-size:15px;font-weight:700;color:var(--Pdk)}
.view-btn{padding:5px 12px;border-radius:var(--rsm);border:1px solid var(--border);background:var(--white);color:var(--gray);font-size:12px;font-weight:600;cursor:pointer}
.view-btn.active{background:var(--P);color:var(--white);border-color:var(--P)}
.exp-btn{padding:5px 13px;border-radius:var(--rsm);border:1px solid var(--P);background:var(--Plt);color:var(--P);font-size:12px;font-weight:600;cursor:pointer}
.exp-btn:hover{background:var(--P);color:var(--white)}
.contacts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.contact-card{background:var(--white);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden}
.cc-hdr{padding:8px 12px;background:var(--Pdk);color:var(--G);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:space-between}
.cc-body{padding:10px 12px}
.cc-section{margin-bottom:9px}
.cc-section-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--Pmd);margin-bottom:4px}
.cc-row{display:flex;gap:5px;margin-bottom:3px;align-items:center}
.cc-row label{font-size:11px;color:var(--gray);width:44px;flex-shrink:0}
.cc-row input{flex:1;padding:3px 6px;border:1px solid var(--border);border-radius:var(--rsm);font-size:12px;background:var(--off)}
.cc-row input:focus{outline:none;border-color:var(--P)}
.parent-block{background:var(--Pxt);border-radius:var(--rsm);padding:6px 9px;margin-bottom:5px;border:1px solid var(--Plt)}
.parent-block-hdr{font-size:10px;font-weight:700;color:var(--Pmd);margin-bottom:4px;display:flex;justify-content:space-between;align-items:center}
.add-parent-btn{font-size:10px;padding:2px 7px;border:1px solid var(--P);border-radius:3px;background:var(--Plt);color:var(--P);cursor:pointer}
.cl-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow)}
#contacts-table{border-collapse:collapse;font-size:12px;width:100%;min-width:900px}
#contacts-table th{background:var(--Pdk);color:var(--G);font-weight:700;padding:7px 10px;text-align:left;font-size:11px;white-space:nowrap}
#contacts-table th.cl-sticky{position:sticky;left:0;z-index:2;background:var(--Pdk)}
#contacts-table td{padding:5px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
#contacts-table td input{padding:3px 6px;border:1px solid var(--border);border-radius:3px;font-size:11px;background:var(--off);width:130px}
#contacts-table td input:focus{outline:none;border-color:var(--P)}
#contacts-table td.cl-sticky{position:sticky;left:0;background:var(--white);font-weight:600;z-index:1;border-right:2px solid var(--Plt)}
#contacts-table tr:nth-child(even) td{background:var(--Pxt)}
#contacts-table tr:nth-child(even) td.cl-sticky{background:var(--Pxt)}

/* ── Schedule tab ── */
#schedule-layout{padding:14px 18px}
.sch-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px}
.sch-hdr h2{font-size:15px;font-weight:700;color:var(--Pdk)}
.sch-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow)}
#sch-table{border-collapse:collapse;font-size:13px;width:100%;min-width:600px}
#sch-table th{background:var(--Pdk);color:var(--G);font-weight:700;padding:8px 12px;text-align:left;font-size:11px;letter-spacing:.4px;text-transform:uppercase}
#sch-table td{padding:8px 12px;border-bottom:1px solid var(--border)}
#sch-table tr:nth-child(even) td{background:var(--Pxt)}
#sch-table tr:hover td{background:var(--Plt)}
#sch-table .sch-acts{display:flex;gap:5px}
.sch-past td{color:var(--gray)}
.sch-today td{background:var(--Glt)!important;font-weight:600}

/* ── Modals ── */
.mo{position:fixed;inset:0;background:rgba(44,22,80,.45);z-index:200;display:flex;align-items:center;justify-content:center}
.md{background:var(--white);border-radius:var(--radius);border:1px solid var(--border);padding:20px 22px;min-width:300px;max-width:460px;width:90%}
.md h3{font-size:14px;color:var(--Pdk);margin-bottom:12px}
.md label{font-size:11px;font-weight:600;color:var(--Pmd);display:block;margin-bottom:3px}
.md input,.md select,.md textarea{width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:var(--rsm);font-size:13px;margin-bottom:9px;background:var(--off)}
.md textarea{height:130px;resize:vertical;font-family:monospace;font-size:12px}
.md-acts{display:flex;gap:7px;justify-content:flex-end;margin-top:4px}
.btn-p{padding:7px 16px;border-radius:var(--rsm);border:none;background:var(--P);color:var(--white);font-weight:700;font-size:13px;cursor:pointer}
.btn-p:hover{background:var(--Pmd)}
.btn-c{padding:7px 12px;border-radius:var(--rsm);border:1px solid var(--border);background:transparent;font-size:13px;cursor:pointer;color:var(--gray)}

/* No game — now inside order-panel, not a full overlay */
#no-game-msg{padding:24px 16px;text-align:center;color:var(--gray);}
#no-game-msg p{margin-bottom:6px;font-size:13px}

/* ── Contacts remove button (muted) ── */
.cc-rm-btn{border:none;background:none;color:rgba(217,200,146,.35);cursor:pointer;font-size:14px;padding:2px 5px;flex-shrink:0;border-radius:3px;line-height:1;transition:color .15s,background .15s}
.cc-rm-btn:hover{color:#E07070;background:rgba(224,112,112,.18)}
/* Contacts card header editable inputs */
.cc-hdr-num{width:42px;padding:2px 4px;border:1px solid rgba(255,255,255,.25);border-radius:3px;background:rgba(255,255,255,.12);color:var(--G);font-weight:700;font-size:13px;text-align:center}
.cc-hdr-name{flex:1;padding:2px 6px;border:1px solid rgba(255,255,255,.25);border-radius:3px;background:rgba(255,255,255,.12);color:var(--G);font-weight:700;font-size:13px}
.cc-hdr-num:focus,.cc-hdr-name:focus{outline:none;border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.2)}
.hidden{display:none!important}

/* ── Auth / Login Overlay ── */
#login-overlay{position:fixed;inset:0;background:var(--Pdk);z-index:9999;display:flex;align-items:center;justify-content:center}
#login-overlay.hidden{display:none!important}
.login-card{background:var(--white);border-radius:var(--radius);border:1px solid var(--border);padding:32px 34px;width:360px;max-width:90vw;box-shadow:0 4px 28px rgba(44,22,80,.4)}
.login-card h2{font-size:20px;font-weight:700;color:var(--Pdk);margin-bottom:4px}
.login-card .login-sub{font-size:12px;color:var(--gray);margin-bottom:22px}
.login-card label{display:block;font-size:11px;font-weight:600;color:var(--Pmd);margin-bottom:4px}
.login-card input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--rsm);font-size:13px;margin-bottom:12px;background:var(--off)}
.login-card input:focus{outline:none;border-color:var(--P)}
.login-error{color:#C0392B;font-size:12px;margin-bottom:8px;min-height:16px}
.login-btn{width:100%;padding:10px;border:none;border-radius:var(--rsm);background:var(--P);color:var(--white);font-weight:700;font-size:14px;cursor:pointer;margin-top:4px}
.login-btn:hover{background:var(--Pmd)}
.login-btn:disabled{background:#888;cursor:not-allowed}

/* ── User Management Modal ── */
.um-list{max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--rsm);margin-bottom:12px}
.user-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}
.user-row:last-child{border-bottom:none}
.user-row .ur-name{font-weight:600;font-size:12px;flex:1}
.user-row .ur-role{font-size:11px;color:var(--gray);padding:2px 7px;border-radius:10px;background:var(--Plt);white-space:nowrap}
.user-row .ur-acts{display:flex;gap:5px;flex-shrink:0}
.um-add{border-top:1px solid var(--border);padding-top:12px}
.um-add h4{font-size:11px;font-weight:700;color:var(--Pmd);text-transform:uppercase;letter-spacing:.4px;margin-bottom:9px}