:root{--bg-deep: #0d1f2a;--bg-mid: #102b3a;--surface: #f6fafc;--surface-card: #ffffff;--text-primary: #13222f;--text-secondary: #4b6472;--brand: #0f8a8d;--brand-strong: #0c6f72;--accent: #f2a365;--border: #d7e2e8;--success: #2f9d66;--danger: #c05342;font-family:Manrope,Plus Jakarta Sans,Avenir Next,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 12% 8%,rgba(15,138,141,.2),transparent 28%),radial-gradient(circle at 88% 14%,rgba(242,163,101,.26),transparent 32%),linear-gradient(140deg,#f2f8fb,#e8f2f8 45%,#edf5f7);color:var(--text-primary)}#root{min-height:100vh}.panel{background:#ffffffe0;border:1px solid rgba(255,255,255,.42);box-shadow:0 24px 60px #102b3a1f;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:20px}.auth-page{min-height:100vh;width:min(1200px,calc(100% - 2rem));margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:1fr auto;gap:1rem;align-items:stretch;padding:1.3rem 0}.auth-welcome{padding:clamp(1.4rem,3vw,2.4rem);display:grid;align-content:start;gap:.9rem;background:radial-gradient(circle at 82% 16%,rgba(15,138,141,.16),transparent 36%),radial-gradient(circle at 18% 84%,rgba(242,163,101,.2),transparent 34%),#ffffffe6}.auth-welcome h1{margin:.2rem 0 .4rem;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.12}.auth-welcome p{margin:0;color:var(--text-secondary);line-height:1.65}.welcome-links{margin-top:.5rem;display:grid;gap:.65rem}.welcome-link-card{border:1px solid rgba(15,138,141,.24);border-radius:16px;background:linear-gradient(135deg,#fffffff2,#e9f5f8e6);padding:.75rem .85rem;text-decoration:none;display:grid;gap:.25rem;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.welcome-link-card strong{color:var(--text-primary);font-size:.93rem;line-height:1.35}.welcome-link-card span{color:var(--brand-strong);font-size:.84rem;font-weight:700}.welcome-link-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #102b3a1f;border-color:#0f8a8d61}.welcome-stats{margin-top:.5rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.welcome-stats article{border:1px solid var(--border);border-radius:14px;background:#fffc;padding:.7rem;display:grid;gap:.2rem}.welcome-stats strong{font-size:1rem;color:var(--text-primary)}.welcome-stats span{font-size:.8rem;color:var(--text-secondary)}.auth-panel{max-width:100%;padding:clamp(1.5rem,4vw,2.5rem);animation:fade-up .52s ease both}.auth-branding{margin-bottom:.65rem}.auth-logo{width:auto;height:56px;display:block;object-fit:contain}.kicker{margin:0;text-transform:uppercase;font-size:.75rem;letter-spacing:.16em;color:var(--brand-strong);font-weight:700}.auth-panel h2{margin:.6rem 0 .7rem;font-size:clamp(1.6rem,4vw,2.5rem);line-height:1.1}.auth-panel p{margin:0;color:var(--text-secondary);line-height:1.6}.auth-footer{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;gap:.7rem}.auth-footer p{margin:0;color:var(--text-secondary);font-size:.88rem}.auth-footer div{display:flex;gap:.5rem}.auth-footer button{border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text-secondary);font:inherit;font-size:.8rem;padding:.35rem .7rem;cursor:pointer}.auth-form{margin-top:1.3rem;display:grid;gap:.85rem}.demo-access-row{margin-top:.8rem;display:flex;gap:.6rem;flex-wrap:wrap}.secondary-btn{border:1px solid rgba(15,138,141,.35);border-radius:12px;padding:.7rem .9rem;font:inherit;font-weight:700;color:var(--brand-strong);background:#0f8a8d17;cursor:pointer}.secondary-btn:disabled{opacity:.65;cursor:wait}.auth-form label{display:grid;gap:.4rem;font-size:.92rem;color:var(--text-secondary)}.auth-form input{border:1px solid var(--border);background:#fbfeff;border-radius:12px;padding:.8rem .9rem;font:inherit;color:var(--text-primary)}.auth-form input:focus,.modal-form input:focus,.modal-form select:focus,.change-pw-form input:focus{outline:3px solid rgba(15,138,141,.22);border-color:var(--brand)}.primary-btn{border:none;border-radius:12px;padding:.82rem 1rem;font:inherit;font-weight:700;color:#f4fcff;background:linear-gradient(120deg,var(--brand) 0%,var(--brand-strong) 100%);cursor:pointer}.primary-btn:disabled{opacity:.65;cursor:wait}.hint{font-size:.87rem;color:var(--text-secondary)}.error-text{margin:0;color:var(--danger);font-weight:600;font-size:.9rem}.dashboard-shell{width:min(1400px,calc(100% - 1.4rem));margin:0 auto;min-height:100vh;padding:.8rem;display:grid;grid-template-columns:280px 1fr;gap:.9rem;position:relative}.dashboard-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar.collapsed{display:none}.sidebar{background:linear-gradient(175deg,var(--bg-deep) 0%,var(--bg-mid) 100%);color:#dceaf0;padding:1.2rem;display:grid;align-content:start;gap:1.1rem;border-radius:22px}.sidebar.collapsed .brand-block{grid-template-columns:1fr}.sidebar.collapsed .brand-block>div:last-child,.sidebar.collapsed .role-pill{font-size:0}.sidebar.collapsed .nav-item{justify-content:center;padding:.64rem;gap:.3rem}.sidebar.collapsed .nav-dot{display:none}.sidebar.collapsed .nav-short{display:inline-block}.sidebar.collapsed .nav-label{display:none}.sidebar.collapsed .logout-link{width:100%;text-align:center;font-size:.72rem;padding:.5rem}.brand-block{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:center}.brand-mark{width:2rem;height:2rem;border-radius:10px;display:grid;place-items:center;font-weight:800;color:#0c3648;background:linear-gradient(145deg,#89f2f5,#e7fbff)}.brand-logo{width:100%;height:100%;object-fit:contain}.brand-eyebrow{margin:0;text-transform:uppercase;letter-spacing:.13em;font-size:.7rem;color:#9ac3d1}.brand-block h1{margin:.2rem 0 0;font-size:1.05rem;color:#f2fbff}.role-pill{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.42rem .8rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#a8c9d6}.nav-menu{display:grid;gap:.35rem}.nav-item{border:1px solid transparent;background:transparent;color:#c7dce6;display:flex;align-items:center;gap:.6rem;text-align:left;padding:.7rem .74rem;border-radius:12px;font:inherit;cursor:pointer}.nav-short{display:none;min-width:1.1rem;text-align:center;font-size:.74rem;font-weight:800;text-transform:uppercase}.nav-label{white-space:nowrap}.nav-item.active,.nav-item:hover{border-color:#89f2f552;background:#89f2f51a;color:#f2fbff}.nav-dot{width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.logout-link{margin-top:.5rem;justify-self:start;border:none;background:#ffffff1a;color:#e5f2f7;border-radius:10px;padding:.6rem .8rem;cursor:pointer;font:inherit}.workspace{display:grid;grid-template-rows:auto 1fr;gap:.9rem;min-width:0;overflow:hidden}.dashboard-footer{margin-top:.2rem;padding:.75rem .9rem;display:flex;justify-content:space-between;align-items:center;gap:.7rem}.dashboard-footer p{margin:0;color:var(--text-secondary);font-size:.82rem}.footer-links{display:flex;gap:.4rem;flex-wrap:wrap}.footer-links button{border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text-secondary);font:inherit;font-size:.76rem;padding:.28rem .55rem;cursor:pointer}.tablet-role-nav{display:none}.menu-toggle-btn{border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text-primary);font:inherit;font-weight:800;letter-spacing:-.08em;width:2.5rem;height:2.5rem;display:grid;place-items:center;cursor:pointer}.menu-icon{width:1.1rem;height:.95rem;display:grid;align-content:space-between}.menu-icon-line{width:100%;height:2px;border-radius:999px;background:#1a2e3a;transform-origin:center;transition:transform .22s ease,opacity .22s ease}.menu-toggle-btn.active .menu-icon-line:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-toggle-btn.active .menu-icon-line:nth-child(2){opacity:0}.menu-toggle-btn.active .menu-icon-line:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.sidebar-backdrop{display:none}.topbar{padding:.8rem;display:flex;gap:.8rem;justify-content:space-between;align-items:center}.server-time-wrap{min-width:0;width:min(420px,100%);display:grid;gap:.35rem;border:1px solid var(--border);border-radius:12px;background:#fff;padding:.58rem .75rem}.server-time-wrap span{color:var(--text-secondary);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.server-time-wrap strong{color:var(--text-primary);font-size:.98rem;font-weight:700}.topbar-actions{display:flex;align-items:center;gap:.55rem}.icon-btn{border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text-primary);font:inherit;padding:.6rem .72rem;cursor:pointer}.icon-btn strong{color:var(--brand-strong)}.profile-btn{border:1px solid var(--border);border-radius:12px;background:#fff;padding:.42rem .56rem;display:flex;gap:.56rem;align-items:center;cursor:pointer;color:var(--text-primary)}.profile-btn strong{display:block;font-size:.88rem}.profile-btn small{font-size:.76rem;color:var(--text-secondary)}.avatar{width:2rem;height:2rem;border-radius:10px;display:grid;place-items:center;font-weight:700;color:#f4fcff;background:linear-gradient(145deg,var(--brand),var(--brand-strong))}.content-grid{display:grid;gap:.9rem;grid-template-columns:repeat(12,minmax(0,1fr))}.welcome-card{grid-column:span 8;padding:1.15rem}.welcome-card h2{margin:.4rem 0 .45rem;font-size:clamp(1.25rem,3vw,2rem)}.welcome-card p{margin:0;color:var(--text-secondary);line-height:1.6}.quick-links{margin-top:.85rem;display:flex;gap:.5rem;flex-wrap:wrap}.text-chip{border:1px solid rgba(15,138,141,.28);background:#0f8a8d14;color:var(--brand-strong);padding:.42rem .68rem;border-radius:999px;font:inherit;font-size:.82rem;cursor:pointer}.metrics-card{grid-column:span 12;padding:.9rem}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.72rem}.metric{border:1px solid var(--border);border-radius:14px;background:#fff;padding:.8rem}.metric p{margin:0;color:var(--text-secondary);font-size:.84rem}.metric h3{margin:.4rem 0 .2rem;font-size:1.45rem}.trend{font-size:.8rem;font-weight:700}.trend.up{color:var(--success)}.trend.down{color:var(--danger)}.quick-actions,.events-card,.timeline-card,.progress-card,.news-card{padding:1rem}.quick-actions,.events-card,.timeline-card{grid-column:span 4}.progress-card,.news-card{grid-column:span 6}.quick-actions h3,.events-card h3,.timeline-card h3,.progress-card h3,.news-card h3{margin:0 0 .75rem;font-size:1rem}.action-grid{display:grid;gap:.5rem}.action-btn{border:1px solid var(--border);border-radius:11px;background:#fff;text-align:left;padding:.62rem .72rem;font:inherit;color:var(--text-primary);cursor:pointer}.action-btn:hover{border-color:#0f8a8d80;background:#0f8a8d0d}.events-card ul,.timeline-card ol{list-style:none;margin:0;padding:0;display:grid;gap:.66rem}.events-card li,.timeline-card li{display:grid;grid-template-columns:auto 1fr;gap:.55rem;align-items:start}.date-pill{border-radius:8px;border:1px solid rgba(15,138,141,.35);color:var(--brand-strong);background:#0f8a8d14;padding:.2rem .42rem;font-size:.75rem;white-space:nowrap}.events-card p,.timeline-card p{margin:.22rem 0 0;color:var(--text-secondary);font-size:.84rem}.timeline-card time{font-weight:700;color:var(--brand-strong);font-size:.8rem}.progress-list{display:grid;gap:.75rem}.progress-list label{display:block;margin-bottom:.28rem;color:var(--text-secondary);font-size:.84rem}progress{width:100%;height:.72rem;border-radius:999px;overflow:hidden}progress::-webkit-progress-bar{background:#e6edf1;border-radius:999px}progress::-webkit-progress-value{background:linear-gradient(90deg,var(--brand),var(--accent));border-radius:999px}progress::-moz-progress-bar{background:linear-gradient(90deg,var(--brand),var(--accent))}.news-list{display:grid;gap:.7rem}.news-list article{border:1px solid var(--border);border-radius:12px;background:#fff;padding:.72rem}.tag{display:inline-block;margin-bottom:.34rem;font-size:.72rem;color:#7c5e2d;background:#f2a36533;border:1px solid rgba(242,163,101,.42);padding:.15rem .45rem;border-radius:999px}.news-list strong{display:block;font-size:.92rem}.news-list p{margin:.28rem 0 0;color:var(--text-secondary);font-size:.84rem}.stage-1,.stage-2,.stage-3,.stage-4,.stage-5,.stage-6,.stage-7{opacity:0;transform:translateY(12px);animation:fade-up .52s ease forwards}.stage-2{animation-delay:70ms}.stage-3{animation-delay:.12s}.stage-4{animation-delay:.16s}.stage-5{animation-delay:.21s}.stage-6{animation-delay:.25s}.stage-7{animation-delay:.29s}@keyframes fade-up{to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.dashboard-shell{grid-template-columns:1fr}.sidebar{display:grid;position:fixed;top:.5rem;left:.5rem;bottom:.5rem;width:min(280px,calc(100vw - 1rem));z-index:50;transform:translate(-110%);transition:transform .22s ease}.dashboard-shell.sidebar-mobile-open .sidebar{transform:translate(0)}.dashboard-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar-backdrop{display:none;position:fixed;inset:0;border:0;background:#07141d7a;z-index:45;cursor:pointer}.sidebar-backdrop.active{display:block}.tablet-role-nav{display:flex;gap:.45rem;overflow-x:auto;padding:.55rem}.tablet-nav-item{border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text-secondary);font:inherit;font-size:.82rem;white-space:nowrap;padding:.52rem .7rem;cursor:pointer}.tablet-nav-item.active{border-color:#0f8a8d80;background:#0f8a8d14;color:var(--brand-strong);font-weight:700}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome-card,.quick-actions,.events-card,.timeline-card,.progress-card,.news-card{grid-column:span 12}.timesheet-grid{grid-template-columns:1fr}.timesheet-history-head{flex-direction:column;align-items:stretch}.timesheet-filters input[type=search]{min-width:0;width:100%}.timesheet-filters select,.secondary-btn.compact{width:100%}.timesheet-entry-top{flex-direction:column;align-items:stretch}.timesheet-entry-grid{grid-template-columns:1fr}.timesheet-pagination{flex-direction:column;align-items:stretch}}@media(max-width:640px){.auth-page{width:calc(100% - 1rem);grid-template-columns:1fr;grid-template-rows:auto auto auto;padding:.8rem 0}.auth-welcome{order:1}.auth-panel{order:2}.auth-footer{order:3;flex-direction:column;align-items:flex-start}.welcome-stats{grid-template-columns:1fr}.welcome-link-card{padding:.7rem .75rem}.tablet-role-nav{display:none}.topbar{flex-direction:column;align-items:stretch}.topbar-actions{justify-content:space-between}.metrics-grid{grid-template-columns:1fr}.dashboard-footer{flex-direction:column;align-items:flex-start}}.manage-section{padding:0 0 1rem;min-width:0;overflow:hidden}.manage-header{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0 .9rem;gap:.6rem}.manage-title{margin:0 0 .18rem;font-size:1.35rem;color:var(--text-primary)}.manage-subtitle{margin:0;color:var(--text-secondary);font-size:.85rem}.add-btn{padding:.6rem 1.1rem;font-size:.88rem;white-space:nowrap}.table-panel{padding:0;overflow:visible}.table-scroll-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:inherit}.data-table{width:100%;min-width:520px;border-collapse:collapse;font-size:.9rem}.data-table th{background:#f2f7fa;padding:.72rem 1rem;text-align:left;font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border)}.data-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-primary)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:#f8fbfd}.user-avatar-cell{display:flex;align-items:center;gap:.55rem}.avatar.sm{width:1.7rem;height:1.7rem;font-size:.7rem;border-radius:8px;flex-shrink:0}.role-badge{display:inline-block;padding:.2rem .52rem;border-radius:999px;font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.role-badge.role-admin{background:#0f8a8d1a;color:var(--brand-strong);border:1px solid rgba(15,138,141,.28)}.role-badge.role-staff{background:#f2a3651f;color:#b8662a;border:1px solid rgba(242,163,101,.36)}.table-actions{display:flex;gap:.4rem}.tbl-btn{border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text-primary);font:inherit;font-size:.8rem;padding:.28rem .62rem;cursor:pointer}.tbl-btn:hover{border-color:#0f8a8d73;background:#0f8a8d0f;color:var(--brand-strong)}.tbl-btn.danger{color:var(--danger);border-color:#dc3c3c3d}.tbl-btn.danger:hover{background:#dc3c3c0f;border-color:#dc3c3c73}.desc-cell{max-width:280px;color:var(--text-secondary);font-size:.85rem}.timesheet-panel,.timesheet-history-panel{padding:1.15rem 1.2rem}.timesheet-history-panel{margin-top:.9rem}.timesheet-form{display:grid;gap:.95rem}.timesheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.timesheet-form label{display:grid;gap:.4rem;font-size:.86rem;line-height:1.45;color:var(--text-secondary);font-weight:600}.timesheet-form input,.timesheet-form textarea{border:1px solid var(--border);background:#fbfeff;border-radius:11px;padding:.72rem .86rem;font:inherit;font-size:.92rem;line-height:1.45;color:var(--text-primary)}.timesheet-form textarea{resize:vertical;min-height:92px}.timesheet-char-meta{justify-self:end;color:var(--text-secondary);font-size:.76rem;font-weight:600}.timesheet-form input:focus,.timesheet-form textarea:focus{outline:3px solid rgba(15,138,141,.2);border-color:var(--brand)}.timesheet-actions{display:flex;gap:.62rem;flex-wrap:wrap;padding-top:.2rem}.hours-summary{border:1px solid rgba(15,138,141,.26);background:#0f8a8d12;border-radius:12px;padding:.58rem .72rem;display:flex;justify-content:space-between;align-items:center;gap:.4rem}.hours-summary span{color:var(--text-secondary);font-size:.82rem}.hours-summary strong{color:var(--brand-strong);font-size:.95rem}.timesheet-history-head{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.9rem}.timesheet-history-head h3{margin:0;font-size:1.04rem;letter-spacing:.01em}.timesheet-filters{display:flex;gap:.55rem;flex-wrap:wrap}.timesheet-filters input{border:1px solid var(--border);border-radius:10px;background:#fff;padding:.5rem .66rem;font:inherit;font-size:.84rem;line-height:1.35}.timesheet-filters select{border:1px solid var(--border);border-radius:10px;background:#fff;padding:.5rem .66rem;font:inherit;font-size:.84rem;line-height:1.35;color:var(--text-primary)}.secondary-btn.compact{padding:.5rem .72rem;font-size:.82rem}.timesheet-filters input[type=search]{min-width:240px}.readonly-note{color:var(--text-secondary);font-size:.79rem;font-weight:600;letter-spacing:.02em}.timesheet-empty{margin:0;border:1px dashed var(--border);border-radius:12px;padding:1rem;text-align:center;color:var(--text-secondary)}.timesheet-entry-list{display:grid;gap:.78rem}.timesheet-entry-card{border:1px solid var(--border);border-radius:14px;background:#fff;padding:.85rem;display:grid;gap:.78rem}.timesheet-entry-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.7rem}.timesheet-meta-row{display:flex;flex-wrap:wrap;gap:.45rem}.timesheet-meta-chip{border:1px solid rgba(15,138,141,.22);background:#0f8a8d14;border-radius:999px;padding:.36rem .78rem;font-size:.9rem;line-height:1.2;color:var(--brand-strong);font-weight:700}.timesheet-meta-chip.strong{background:#f2a36529;border-color:#f2a3655c;color:#8b541c;font-size:.95rem}.timesheet-entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.timesheet-entry-grid section{border:1px solid #edf2f5;border-radius:12px;background:#fbfdff;padding:.62rem .68rem}.timesheet-entry-grid h4{margin:0 0 .35rem;font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.timesheet-entry-grid p{margin:0;font-size:.9rem;line-height:1.55;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.timesheet-pagination{display:flex;justify-content:space-between;align-items:center;gap:.6rem;border-top:1px solid var(--border);padding-top:.65rem}.timesheet-pagination span{color:var(--text-secondary);font-size:.84rem}.timesheet-pagination-actions{display:flex;gap:.42rem}.admin-ts-selector{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap}.admin-ts-label{display:flex;flex-direction:column;gap:.38rem;font-size:.82rem;font-weight:600;color:var(--text-secondary);flex:1;min-width:220px}.admin-ts-label select{padding:.58rem .78rem;border:1.5px solid rgba(15,138,141,.22);border-radius:10px;background:var(--surface);color:var(--text);font-size:.95rem;font-family:inherit;cursor:pointer;transition:border-color .18s}.admin-ts-label select:focus{outline:3px solid rgba(15,138,141,.2);border-color:var(--brand)}.ts-count-badge{display:inline-block;margin-left:.6rem;padding:.1rem .58rem;background:#0f8a8d1f;color:var(--brand);border-radius:30px;font-size:.78rem;font-weight:700;vertical-align:middle}.export-btn{background:#228b2214;color:#1a7a1a;border-color:#228b2247}.ts-date-range-label{display:flex;align-items:center;gap:.38rem;font-size:.78rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.ts-date-range-label input[type=date]{padding:.42rem .6rem;border:1.5px solid rgba(15,138,141,.22);border-radius:10px;background:var(--surface);color:var(--text);font-size:.88rem;font-family:inherit;cursor:pointer}.ts-date-mode-toggle{display:flex;gap:.25rem;background:#0f8a8d12;border-radius:10px;padding:.18rem}.ts-date-mode-toggle .tbl-btn{border-radius:8px;padding:.28rem .72rem;font-size:.8rem;border:none;background:transparent;color:var(--text-secondary)}.ts-date-mode-toggle .tbl-btn.active-mode{background:var(--brand);color:#fff;font-weight:700}.export-btn:hover:not(:disabled){background:#228b2229;border-color:#228b2280}.export-btn:disabled{opacity:.4;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#07141d85;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-box{background:#fff;border-radius:20px;padding:1.8rem;width:min(480px,100%);box-shadow:0 20px 60px #0000002e}.modal-title{margin:0 0 1.2rem;font-size:1.1rem;color:var(--text-primary)}.modal-form{display:grid;gap:.88rem}.modal-form label{display:grid;gap:.36rem;font-size:.86rem;color:var(--text-secondary);font-weight:600}.modal-form label small{font-weight:400}.modal-form input,.modal-form select{border:1px solid var(--border);background:#fbfeff;border-radius:10px;padding:.66rem .84rem;font:inherit;font-size:.92rem;color:var(--text-primary)}.modal-form input:focus,.modal-form select:focus{outline:3px solid rgba(15,138,141,.22);border-color:var(--brand)}.pw-input-wrap{position:relative;display:flex;align-items:center}.pw-input-wrap input{width:100%;padding-right:2.6rem}.pw-eye-btn{position:absolute;right:.55rem;border:none;background:none;cursor:pointer;font-size:1rem;line-height:1;padding:.2rem;color:var(--text-secondary);display:flex;align-items:center}.modal-actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.3rem}.confirm-box{text-align:center;max-width:380px}.confirm-icon{font-size:2rem;margin-bottom:.6rem;color:#c97a1a}.confirm-subtext{margin:.3rem 0 1.1rem;color:var(--text-secondary);font-size:.88rem;line-height:1.5}.confirm-box .modal-actions{justify-content:center}.danger-btn{background:linear-gradient(120deg,#dc3c3c,#b02a2a)}.change-pw-panel{padding:1.8rem;max-width:480px}.change-pw-form{display:grid;gap:1rem}.change-pw-form label{display:grid;gap:.36rem;font-size:.88rem;font-weight:600;color:var(--text-secondary)}.change-pw-form input{border:1px solid var(--border);background:#fbfeff;border-radius:10px;padding:.7rem .9rem;font:inherit;font-size:.92rem;color:var(--text-primary)}.change-pw-form input:focus{outline:3px solid rgba(15,138,141,.22);border-color:var(--brand)}.pw-feedback{margin:0;padding:.6rem .85rem;border-radius:10px;font-size:.88rem;font-weight:600}.pw-feedback.success{background:#22a0641a;color:#1a7a4a;border:1px solid rgba(34,160,100,.3)}.pw-feedback.error{background:#dc3c3c14;color:#b02a2a;border:1px solid rgba(220,60,60,.28)}.pw-submit-btn{justify-self:start;padding:.7rem 1.6rem}html{color-scheme:light}body{margin:0}a{color:inherit}
