:root{--bg:#0f1419;--bg-elevated:#171d25;--bg-hover:#1e2630;--border:#2a3441;--border-strong:#3a4656;--text:#e8edf4;--text-muted:#8b97a8;--accent:#2a9d8f;--accent-hover:#34b3a3;--accent-soft:#2a9d8f24;--danger:#e07a6a;--danger-soft:#e07a6a1f;--radius:8px;--font-display:"Outfit", sans-serif;--font-body:"IBM Plex Sans", sans-serif;--shadow:0 12px 40px #00000059}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}input,select,textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);outline:none;width:100%;padding:.55rem .75rem;font-size:16px;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input:disabled,select:disabled,textarea:disabled{opacity:.65;cursor:not-allowed;background:var(--bg-hover)}input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85;filter:invert()brightness(1.2)}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}textarea{resize:vertical;min-height:80px}label{color:var(--text-muted);margin-bottom:.35rem;font-size:.8rem;font-weight:500;display:block}.app{background:radial-gradient(ellipse 80% 50% at 10% -10%, #2a9d8f1f, transparent), var(--bg);grid-template-columns:220px 1fr;height:100%;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--bg-elevated);flex-direction:column;gap:2rem;padding:1.5rem 1rem;display:flex}.sidebar-footer{flex-direction:column;gap:.5rem;margin-top:auto;padding:0 .35rem;display:flex}.sidebar-user{color:var(--text-muted);font-size:.8rem;font-weight:500}.brand{padding:0 .5rem}.brand h1{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.brand p{color:var(--text-muted);margin-top:.2rem;font-size:.75rem}.nav{flex-direction:column;gap:.25rem;display:flex}.nav-btn{text-align:left;border-radius:var(--radius);color:var(--text-muted);padding:.65rem .85rem;font-weight:500;transition:background .15s,color .15s}.nav-btn:hover{background:var(--bg-hover);color:var(--text)}.nav-btn.active{background:var(--accent-soft);color:var(--accent)}.main{flex-direction:column;min-width:0;display:flex;overflow:hidden}.toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.75rem;display:flex}.toolbar h2{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.35rem;font-weight:600}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.filters{flex-wrap:wrap;gap:.5rem;display:flex}.filters select{width:auto;min-width:160px}.content{flex:1;padding:1.25rem 1.75rem 2rem;overflow:auto}.btn{border-radius:var(--radius);white-space:nowrap;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.9rem;font-weight:500;transition:background .15s,opacity .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#041210}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{border:1px solid var(--border);color:var(--text-muted)}.btn-ghost:hover{border-color:var(--border-strong);color:var(--text);background:var(--bg-hover)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:var(--danger-soft)}.btn-sm{padding:.35rem .65rem;font-size:.8rem}.table-wrap{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}.data-table{min-width:760px}.data-table th,.data-table td{padding:.75rem .9rem}.data-table .card-title strong{display:block}.cell-primary{min-width:140px}.cell-primary strong{font-weight:600;display:block}.cell-sub{color:var(--text-muted);margin-top:.15rem;font-size:.78rem;display:block}.cell-stack{color:var(--text-muted);white-space:nowrap;flex-direction:column;gap:.2rem;font-size:.82rem;display:flex}.cell-stack em{color:var(--text-muted);opacity:.7;text-transform:uppercase;letter-spacing:.04em;margin-right:.3rem;font-size:.68rem;font-style:normal}.notes-cell{white-space:nowrap;text-overflow:ellipsis;max-width:180px;overflow:hidden}.nowrap{white-space:nowrap}thead{background:#ffffff05}th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:.85rem 1rem;font-size:.72rem;font-weight:600}.sort-btn{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;font-weight:inherit;align-items:center;gap:.25rem;padding:0;display:inline-flex}.sort-btn:hover,.sort-btn.active{color:var(--text)}.sort-indicator{opacity:.45;font-size:.85em}.sort-btn.active .sort-indicator{opacity:1;color:var(--accent)}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.9rem 1rem}tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--bg-hover)}.muted{color:var(--text-muted)}.form-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius);border:1px solid #e07a6a59;padding:.65rem .75rem;font-size:.88rem}.toast{z-index:80;background:var(--bg-elevated);max-width:min(420px,100vw - 2rem);box-shadow:var(--shadow);border:1px solid #e07a6a73;border-radius:10px;align-items:flex-start;gap:.75rem;padding:.9rem 1rem;animation:.2s riseIn;display:flex;position:fixed;top:1rem;right:1rem}.toast-body{flex:1;min-width:0}.toast-body strong{color:var(--danger);margin-bottom:.25rem;font-size:.85rem;display:block}.toast-body p{color:var(--text);font-size:.9rem;line-height:1.4}.row-actions{justify-content:flex-end;gap:.25rem;display:flex}.empty{text-align:center;color:var(--text-muted);padding:3.5rem 1.5rem}.empty strong{color:var(--text);font-family:var(--font-display);margin-bottom:.4rem;font-size:1.1rem;display:block}.stats{flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem;display:flex}.stat{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);min-width:120px;padding:.75rem 1rem}.stat span{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem;display:block}.stat strong{font-family:var(--font-display);font-size:1.35rem;font-weight:600}.modal-backdrop{padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));z-index:50;background:#060a0eb8;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}.modal{background:var(--bg-elevated);border:1px solid var(--border);width:100%;max-width:440px;max-height:min(92dvh,920px);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;min-height:0;animation:.2s riseIn;display:flex;overflow:hidden}.modal-wide{max-width:920px}.btn:disabled{opacity:.45;cursor:not-allowed}.modal header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.1rem 1.25rem;display:flex}.modal header h3{font-family:var(--font-display);font-size:1.1rem;font-weight:600}.modal-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;flex:auto;gap:1rem;min-height:0;padding:1.25rem;display:flex;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0;justify-content:flex-end;gap:.5rem;padding:.9rem 1.25rem 1.25rem;display:flex}.field{flex-direction:column;display:flex}.badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:.15rem .5rem;font-size:.78rem;font-weight:500;display:inline-block}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=800px){html{font-size:15px}.app{grid-template-rows:auto 1fr;grid-template-columns:1fr}.sidebar{z-index:40;border-right:none;border-bottom:1px solid var(--border);padding:max(.45rem, env(safe-area-inset-top)) .7rem .55rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#171d25f7;grid-template-columns:1fr auto;grid-template-areas:"brand footer""nav nav";align-items:center;gap:.45rem .65rem;display:grid;position:sticky;top:0}.brand{grid-area:brand;min-width:0;padding:0}.brand h1{font-size:.98rem;line-height:1.2}.brand p{display:none}.nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-direction:row;grid-area:nav;gap:.3rem;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav-btn{background:var(--bg);border:1px solid var(--border);flex-shrink:0;min-height:34px;padding:.35rem .7rem;font-size:.82rem}.nav-btn.active{border-color:#2a9d8f73}.sidebar-footer{flex-direction:row;grid-area:footer;justify-content:flex-end;align-items:center;gap:.4rem;margin-top:0;padding:0}.sidebar-user{text-overflow:ellipsis;white-space:nowrap;max-width:72px;font-size:.72rem;overflow:hidden}.sidebar-footer .btn{min-height:32px;padding:.3rem .55rem;font-size:.75rem}.toolbar,.content{padding-left:max(.7rem, env(safe-area-inset-left));padding-right:max(.7rem, env(safe-area-inset-right))}.toolbar{flex-flow:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding-top:.7rem;padding-bottom:.7rem}.toolbar h2{flex:auto;min-width:0;font-size:1.05rem}.toolbar-actions{flex-wrap:wrap;flex:100%;gap:.4rem;width:auto;display:flex}.toolbar-actions .filters{flex:100%}.toolbar-actions .btn{flex:calc(50% - .2rem);width:auto;min-height:36px;padding:.4rem .65rem;font-size:.84rem}.toolbar-actions .btn-primary{min-height:36px}.filters{grid-template-columns:1fr 1fr;gap:.4rem;width:100%;display:grid}.filters select{width:100%;min-width:0;min-height:36px;padding:.4rem .5rem;font-size:16px}.content{padding-top:.55rem;padding-bottom:max(1.25rem, env(safe-area-inset-bottom))}.btn{min-height:36px}.btn-sm{min-height:32px;padding:.35rem .55rem;font-size:.78rem}.table-wrap{background:0 0;border:none;border-radius:0;overflow:visible}.responsive-table,.responsive-table tbody{width:100%;display:block}.responsive-table thead{display:none}.responsive-table tbody tr{border:1px solid var(--border);background:var(--bg-elevated);box-shadow:none;border-radius:10px;grid-template-columns:1fr 1fr;gap:0;margin-bottom:.55rem;padding:0;display:grid}.responsive-table tbody tr:hover{background:var(--bg-elevated)}.responsive-table td{text-align:left;color:var(--text);word-break:break-word;border-bottom:1px solid #2a34418c;flex-direction:column;align-items:flex-start;gap:.12rem;min-width:0;padding:.4rem .65rem;font-size:.84rem;line-height:1.3;display:flex}.responsive-table td:last-child{border-bottom:none}.responsive-table td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.04em;color:#9aa8b8;padding-top:0;font-size:.62rem;font-weight:600}.responsive-table td.card-title{border-bottom:1px solid var(--border);font-family:var(--font-display);color:var(--text);grid-column:1/-1;padding:.55rem .65rem .4rem;font-size:.95rem;font-weight:600;display:block}.responsive-table td.card-title:before{display:none}.responsive-table td.card-title .cell-sub{margin-top:.15rem;font-size:.72rem}.responsive-table td.card-title strong{font-size:inherit}.responsive-table td.card-span{grid-column:1/-1}.responsive-table td.cell-actions{border-bottom:none;flex-direction:column;grid-column:1/-1;align-items:stretch;gap:.35rem;padding:.45rem .65rem .55rem;display:flex}.responsive-table td.cell-actions:before{display:none}.responsive-table .row-actions{grid-template-columns:1fr 1fr;gap:.35rem;width:100%;display:grid}.responsive-table .row-actions .btn{width:100%}.responsive-table .row-actions .btn:only-child,.responsive-table .row-actions .btn:last-child:nth-child(odd){grid-column:1/-1}.data-table{min-width:0}.notes-cell{white-space:normal;word-break:break-word;max-width:none}.muted{color:#c2cbd8}.badge{padding:.15rem .4rem;font-size:.74rem}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin-bottom:.75rem;display:grid}.stat{text-align:center;min-width:0;padding:.45rem .4rem}.stat span{font-size:.6rem}.stat strong{font-size:1rem}.modal-backdrop{padding:0;padding-top:max(.5rem, env(safe-area-inset-top));align-items:flex-end}.modal{border-radius:14px 14px 0 0;max-width:none;max-height:94dvh;animation:.22s slideUp}.modal header{padding:.75rem .9rem}.modal header h3{font-size:1.02rem}.modal-wide{max-width:none;max-height:94dvh}.modal-body{gap:.75rem;padding:.85rem}.modal-footer{padding:.7rem .9rem max(.9rem, env(safe-area-inset-bottom));gap:.5rem}.modal-footer .btn{flex:1}.field{gap:0}label{margin-bottom:.25rem;font-size:.74rem}input,select,textarea{padding:.45rem .6rem;font-size:16px}textarea{min-height:64px}.toast{top:max(.65rem, env(safe-area-inset-top));right:max(.65rem, env(safe-area-inset-right));left:max(.65rem, env(safe-area-inset-left));max-width:none;padding:.7rem .8rem}.login-page{padding:max(1rem, env(safe-area-inset-top)) max(.9rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-bottom))}.login-card{gap:.85rem;padding:1.15rem 1rem}.login-brand h1{font-size:1.35rem}.login-brand p{font-size:.88rem}.admin-create{padding:.85rem}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.login-page{background:radial-gradient(ellipse 70% 50% at 50% -10%, #2a9d8f29, transparent), var(--bg);place-items:center;min-height:100%;padding:1.5rem;display:grid}.login-card{background:var(--bg-elevated);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:1rem;padding:1.75rem;display:flex}.login-brand h1{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.5rem;font-weight:700}.login-brand p{color:var(--text-muted);margin-top:.25rem;font-size:.9rem}.badge-muted{color:var(--text-muted);background:#8b97a829}.admin-create{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;margin-bottom:1.25rem;padding:1.1rem 1.25rem 1.25rem}.admin-create h3{font-family:var(--font-display);margin-bottom:.9rem;font-size:1rem;font-weight:600}.admin-create-grid{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:.75rem;display:grid}@media (width<=900px){.admin-create-grid{grid-template-columns:1fr}}.login-submit{width:100%;margin-top:.35rem;padding:.7rem 1rem}.same-name-list{flex-direction:column;gap:.65rem;display:flex}.same-name-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);flex-direction:column;gap:.15rem;padding:.75rem .85rem;font-size:.9rem;display:flex}.same-name-item strong{font-size:.95rem}.same-name-item span{color:var(--text-muted)}
