@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg-base:#040d21;--bg-primary:transparent;--bg-secondary:transparent;--bg-tertiary:transparent;--bg-elevated:transparent;--bg-input:transparent;--bg-glass:transparent;--bg-glass-hover:#ffffff1a;--border-glass:#ffffff24;--material-thin:#ffffff0f;--material-regular:#ffffff1a;--material-thick:#ffffff29;--material-hover:#ffffff1f;--material-active:#ffffff2e;--separator:#ffffff1a;--separator-opaque:#ffffff24;--border-thin:#ffffff24;--border-focus:#0a84ff99;--blur-sm:blur(8px);--blur-md:blur(16px);--blur-lg:blur(24px);--blur-heavy:blur(32px);--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--text-primary:#fff;--text-secondary:#ffffffb3;--text-tertiary:#ffffff73;--text-quaternary:#ffffff40;--blue:#0a84ff;--blue-hover:#409cff;--blue-dim:#0a84ff2e;--blue-subtle:#0a84ff1a;--green:#30d158;--green-dim:#30d15826;--red:#ff453a;--red-dim:#ff453a26;--red-border:#ff453a4d;--orange:#ff9f0a;--orange-dim:#ff9f0a26;--indigo:#5e5ce6;--teal:#64d2ff;--pink:#ff375f;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--app-gap:24px;--box-radius:16px;--radius-xs:16px;--radius-sm:16px;--radius-md:16px;--radius-pill:9999px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #00000040;--shadow-lg:0 8px 32px #00000059;--shadow-xl:0 16px 48px #00000073;--glass-shadow:inset 0 1px 1.5px #ffffff40, 0 10px 30px -10px #00000080;--glass-shadow-card:inset 0 1px 1.5px #fff3, 0 8px 24px -6px #00000073;--glass-shadow-hover:inset 0 1px 1.5px #fff3, 0 10px 20px -6px #0009;--shadow-blue:0 4px 16px -4px #0a84ff59;--shadow-blue-hover:0 6px 24px -4px #0a84ff80;--sidebar-w:260px;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--t-fast:.15s var(--ease-out);--t-normal:.25s var(--ease-out);--t-bounce:.4s var(--ease-spring);--t-smooth:.3s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background-color:#040d21;background-image:url(/assets/bg-premium-BdMmyY_3.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;font-size:14px;line-height:1.5}#app{width:100%;height:100%}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(110deg,#ffffff0a 8%,#ffffff14 18%,#ffffff0a 33%) 0 0/200% 100%;animation:1.5s linear infinite shimmer}@keyframes shimmer{to{background-position-x:-200%}}button:disabled,button[disabled]{opacity:.38;cursor:not-allowed;pointer-events:none}::selection{background:var(--blue);color:#fff}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:10px var(--space-5);border-radius:var(--radius-sm);cursor:pointer;letter-spacing:-.1px;transition:all var(--t-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;min-height:40px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex;position:relative}.btn:active:not(:disabled){transition-duration:50ms;transform:scale(.97)}.btn:disabled{opacity:.38;cursor:not-allowed;transform:none!important}.spreadsheet-table .btn,table .btn{border-radius:var(--radius-sm);padding:5px 12px;font-size:12px;min-height:30px!important}.btn-login,.btn-primary{-webkit-backdrop-filter:blur(16px);color:#64d2ff;border:1px solid #0a84ff61;box-shadow:inset 0 1px 1.5px #ffffff59;background:#0a84ff29!important}.btn-login{width:100%;padding:14px var(--space-6);margin-top:var(--space-4);border-radius:var(--radius-sm);font-size:15px}.btn-login:hover:not(:disabled),.btn-primary:hover:not(:disabled){color:#fff;border-color:#64d2ff99;box-shadow:inset 0 1px 1px #fff3,0 2px 6px #00000080;background:#0a84ff33!important}.btn-secondary{-webkit-backdrop-filter:blur(16px);color:#ffffffd9;border:1px solid #ffffff1f;box-shadow:inset 0 1px 1px #fff3;background:#ffffff0f!important}.btn-secondary:hover:not(:disabled){color:#fff;border-color:#ffffff40;box-shadow:inset 0 1px 1px #ffffff1a,0 2px 6px #00000080;background:#0003!important}.btn-danger{-webkit-backdrop-filter:blur(16px);color:#ff453a;border:1px solid #ff453a59;box-shadow:inset 0 1px 1.5px #ffffff4d;background:#ff453a26!important}.btn-danger:hover:not(:disabled){color:#ff8077;border-color:#ff453a99;box-shadow:inset 0 1px 1px #fff3,0 2px 6px #00000080;background:#ff453a33!important}.card{-webkit-backdrop-filter:var(--blur-md);border-radius:var(--box-radius);padding:var(--space-6);margin-bottom:var(--space-5);box-shadow:var(--glass-shadow-card);transition:border-color var(--t-fast), box-shadow var(--t-fast);border:1px solid #ffffff1a;background:0 0!important}.card:hover{border-color:var(--border-thin);box-shadow:var(--glass-shadow-hover)}.card h3{color:var(--text-primary);margin-bottom:var(--space-5);letter-spacing:-.3px;font-size:17px;font-weight:700}.input-row{gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.input-row input,.input-row select,.input-row textarea{min-width:160px;padding:11px var(--space-4);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-sm);color:#fff;transition:all var(--t-fast);border:1px solid #ffffff1f;flex:1;min-height:42px;font-family:inherit;font-size:14px;box-shadow:inset 0 1px 2px #0000004d,inset 0 .5px .5px #ffffff26;background:#ffffff0a!important}.input-row input:focus,.input-row select:focus,.input-row textarea:focus{border-color:#0a84ff99;outline:none;box-shadow:inset 0 1px 2px #0000004d,0 0 0 3px #0a84ff40}.input-row input::placeholder{color:var(--text-tertiary)}.input-row select option{background:var(--bg-secondary);color:var(--text-primary)}.file-input-wrapper{flex:1;min-width:160px}.file-input-wrapper input[type=file]{display:none}.file-input-label{padding:11px var(--space-4);background:var(--material-regular);border:1px dashed var(--separator-opaque);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:all var(--t-fast);justify-content:center;align-items:center;min-height:42px;font-size:13px;font-weight:600;display:flex}.file-input-label:hover{background:var(--material-thick);color:var(--text-primary);border-color:var(--blue)}.file-name{color:var(--text-secondary);margin-top:var(--space-2);word-break:break-all;font-size:12px}.tabs{-webkit-backdrop-filter:var(--blur-sm);border-radius:var(--radius-sm);border:1px solid var(--separator);margin-bottom:var(--space-5);-webkit-overflow-scrolling:touch;background:#0000004d;align-items:center;gap:2px;padding:3px;display:inline-flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-tertiary);white-space:nowrap;transition:all var(--t-fast);background:0 0;border:none;min-height:32px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:500}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--text-primary);background:var(--material-thick);box-shadow:var(--shadow-sm);font-weight:600}table{border-collapse:collapse;width:100%;font-size:13px}th{-webkit-backdrop-filter:var(--blur-md);padding:11px var(--space-4);text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--separator);white-space:nowrap;z-index:5;font-size:11px;font-weight:600;position:sticky;top:0;background:0 0!important}td{padding:11px var(--space-4);border-bottom:1px solid var(--separator);color:var(--text-primary);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr{transition:background var(--t-fast)}tbody tr:hover td{background:var(--material-thin)}.checkbox-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);-webkit-backdrop-filter:var(--blur-md);border-radius:var(--radius-sm);margin:var(--space-2) 0;border:1px solid var(--separator);transition:all var(--t-fast);min-height:48px;display:flex;background:0 0!important}.checkbox-item:hover{background:var(--bg-secondary);border-color:var(--border-thin)}.checkbox-item input[type=checkbox]{cursor:pointer;width:20px;height:20px;accent-color:var(--blue);flex-shrink:0}.checkbox-item label{cursor:pointer;color:var(--text-primary);flex:1;margin:0;font-size:14px;line-height:1.4}.checkbox-item label strong{font-weight:600}.checkbox-item label span{color:var(--text-secondary);font-size:12px}.branch-checkbox-pill{background:var(--material-regular);border:1px solid var(--separator);border-radius:var(--radius-pill);cursor:pointer;color:var(--text-secondary);transition:all var(--t-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:7px 16px;font-size:13px;font-weight:600;display:inline-flex}.branch-checkbox-pill:hover{background:var(--material-thick);color:var(--text-primary)}.branch-checkbox-pill:has(input:checked){background:var(--blue);border-color:var(--blue);color:#fff}.branch-checkbox-pill input[type=checkbox]{accent-color:#fff;cursor:pointer;width:16px;height:16px}.dashboard{background:0 0;width:100%;height:100vh;display:flex;position:relative;overflow:hidden}.mobile-overlay{z-index:95;-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity var(--t-normal);background:#00000080;display:none;position:fixed;inset:0}.mobile-overlay.active{opacity:1;display:block}.sidebar{top:var(--app-gap);left:var(--app-gap);bottom:var(--app-gap);width:var(--sidebar-w);height:calc(100vh - (var(--app-gap) * 2));-webkit-backdrop-filter:var(--blur-md);border-radius:var(--box-radius);box-shadow:var(--glass-shadow);padding:var(--space-4) var(--space-3);z-index:100;transition:transform var(--t-normal), opacity var(--t-normal);border:1px solid #ffffff1f;flex-direction:column;display:flex;position:fixed;overflow:hidden auto;background:0 0!important}.sidebar-header{margin-bottom:var(--space-4);padding:var(--space-2) var(--space-2) 0;justify-content:space-between;align-items:center;display:flex}.sidebar-header h2{color:var(--text-primary);font-size:17px;font-weight:700}.sidebar-category{text-transform:uppercase;letter-spacing:.8px;color:var(--text-tertiary);padding:var(--space-3) var(--space-3) var(--space-1);margin-top:var(--space-2);-webkit-user-select:none;user-select:none;font-size:11px;font-weight:700}.close-sidebar-btn{background:var(--material-thin);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-pill);width:30px;height:30px;transition:all var(--t-fast);border:none;justify-content:center;align-items:center;font-size:13px;display:none}.close-sidebar-btn:hover{background:var(--red-dim);color:var(--red)}.sidebar-user{-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--separator);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);background:0 0!important}.sidebar-user .username{color:var(--text-primary);letter-spacing:-.2px;margin-bottom:2px;font-size:14px;font-weight:600}.sidebar-user .role{text-transform:uppercase;letter-spacing:.5px;color:var(--blue);font-size:11px;font-weight:600}.sidebar-user .access-note{color:var(--text-tertiary);margin-top:var(--space-2);font-size:11px}.menu-item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:all var(--t-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:var(--space-2);min-height:36px;margin:1px 0;font-size:13.5px;font-weight:500;display:flex}.menu-icon{color:inherit;opacity:.7;transition:opacity var(--t-fast);justify-content:center;align-items:center;display:flex}.menu-item:hover{background:var(--material-hover);box-shadow:none;color:var(--text-primary)}.menu-item:hover .menu-icon{opacity:1}.menu-item.active{color:#fff;box-shadow:none;background:#ffffff14;border:1px solid #ffffff1a;font-weight:600}.menu-item.active .menu-icon{opacity:1;color:#fff}.logout-btn{width:100%;padding:var(--space-3) var(--space-4);color:var(--red);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--t-fast);background:0 0;border:1px solid #ffffff1f;justify-content:center;align-items:center;gap:6px;margin-top:auto;font-family:inherit;font-size:13px;font-weight:600;display:flex}.logout-btn:hover{background:var(--red-dim);border-color:var(--red-border)}.logout-btn:active{transform:scale(.98)}.main-content{min-width:0;height:100vh;padding-top:var(--app-gap);margin-left:calc(var(--sidebar-w) + (var(--app-gap) * 2));margin-right:var(--app-gap);background:0 0;flex-direction:column;flex:1;display:flex;overflow:hidden}.header{align-items:center;gap:var(--space-4);margin:0 0 var(--app-gap) 0;padding:0 var(--space-6);-webkit-backdrop-filter:var(--blur-md);border-radius:var(--box-radius);box-shadow:var(--glass-shadow);border:1px solid #ffffff1f;flex-shrink:0;height:56px;min-height:56px;display:flex;background:0 0!important}.hamburger-btn{color:var(--text-primary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);transition:background var(--t-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:none}.hamburger-btn:hover{background:var(--material-hover)}.header h1{color:var(--text-primary);letter-spacing:-.3px;white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:700;overflow:hidden}.content{padding:0;padding-bottom:var(--app-gap);flex:1;overflow:hidden auto}.login-container{min-height:100vh;padding:var(--space-6);background:0 0;justify-content:center;align-items:center;display:flex}.custom-login-card{-webkit-backdrop-filter:var(--blur-md);border-radius:var(--box-radius);padding:var(--space-10);box-shadow:var(--glass-shadow);border:1px solid #ffffff1f;width:100%;max-width:440px;background:0 0!important}.custom-login-card h1{margin-bottom:var(--space-2);text-align:center;color:var(--text-primary);letter-spacing:-.5px;font-size:28px;font-weight:700;line-height:1.15}.custom-login-card .subtitle,.loglog-subtitle{color:var(--text-tertiary);text-align:center;letter-spacing:.8px;text-transform:uppercase;margin-bottom:var(--space-7);font-size:11px;font-weight:600}.custom-login-card .form-group{margin-bottom:var(--space-5)}.custom-login-card .form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2);font-size:12px;font-weight:600;display:block}.custom-login-card input,.password-wrapper input{width:100%;padding:12px var(--space-4);border-radius:var(--radius-xs);transition:all var(--t-fast);font-family:inherit;font-size:15px;background:var(--bg-input)!important;color:var(--text-primary)!important;border:1px solid #0000!important}.custom-login-card input:focus,.password-wrapper input:focus{outline:none;border-color:var(--blue)!important;box-shadow:0 0 0 3px var(--blue-dim)!important;background:#76768052!important}.custom-login-card input::placeholder,.password-wrapper input::placeholder{color:var(--text-tertiary)}.password-wrapper{align-items:center;display:flex;position:relative}.password-wrapper input{padding-right:44px!important}.toggle-pwd-btn{cursor:pointer;color:var(--text-tertiary);padding:var(--space-1);transition:color var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;right:12px;min-height:unset!important}.toggle-pwd-btn:hover{color:var(--text-primary)}.error-text{color:var(--red);margin-top:var(--space-4);text-align:center;padding:var(--space-3) var(--space-4);background:var(--red-dim);border:1px solid var(--red-border);border-radius:var(--radius-xs);font-size:13px}.modal-overlay,.loading-overlay{z-index:2000;-webkit-backdrop-filter:blur(16px);padding:var(--space-5);will-change:opacity;background:#00000059;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-box,.loading-box{-webkit-backdrop-filter:var(--blur-md);border-radius:var(--box-radius);padding:var(--space-6);width:100%;max-width:680px;max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 40px);box-shadow:var(--glass-shadow);will-change:transform, opacity;animation:modalSlideUp .3s var(--ease-out);border:1px solid #ffffff1f;overflow-y:auto;background:0 0!important}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-box h2,.loading-box h2{color:var(--text-primary);margin-bottom:var(--space-5);letter-spacing:-.3px;font-size:18px;font-weight:700}.modal-buttons{gap:var(--space-3);margin-top:var(--space-6);display:flex}.modal-buttons .btn{flex:1}.spinner{width:32px;height:32px;margin:0 auto var(--space-5);border:2.5px solid var(--separator-opaque);border-top-color:var(--blue);border-radius:50%;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.apple-spinner{width:32px;height:32px;margin:0 auto;position:relative}.apple-spinner div{background:var(--text-primary);opacity:.12;transform-origin:50% 13px;border-radius:99px;width:2.5px;height:8px;animation:1s linear infinite appleSpinnerFade;position:absolute;top:10%;left:46%}.apple-spinner div:first-child{animation-delay:-.916s;transform:rotate(0)}.apple-spinner div:nth-child(2){animation-delay:-.833s;transform:rotate(30deg)}.apple-spinner div:nth-child(3){animation-delay:-.75s;transform:rotate(60deg)}.apple-spinner div:nth-child(4){animation-delay:-.666s;transform:rotate(90deg)}.apple-spinner div:nth-child(5){animation-delay:-.583s;transform:rotate(120deg)}.apple-spinner div:nth-child(6){animation-delay:-.5s;transform:rotate(150deg)}.apple-spinner div:nth-child(7){animation-delay:-.416s;transform:rotate(180deg)}.apple-spinner div:nth-child(8){animation-delay:-.333s;transform:rotate(210deg)}.apple-spinner div:nth-child(9){animation-delay:-.25s;transform:rotate(240deg)}.apple-spinner div:nth-child(10){animation-delay:-.166s;transform:rotate(270deg)}.apple-spinner div:nth-child(11){animation-delay:-.083s;transform:rotate(300deg)}.apple-spinner div:nth-child(12){animation-delay:0s;transform:rotate(330deg)}@keyframes appleSpinnerFade{0%{opacity:1}to{opacity:.12}}.sync-btn-wrapper{padding-bottom:var(--space-4);border-bottom:1px solid var(--separator);margin-bottom:var(--space-4)}.sync-btn-wrapper button{width:auto;padding:9px var(--space-5);background:var(--blue);color:#fff;border-radius:var(--radius-xs);box-shadow:var(--shadow-blue);border:none;font-size:13px;font-weight:600}.sync-btn-wrapper button:hover:not(:disabled){background:var(--blue-hover);box-shadow:var(--shadow-blue-hover)}.upload-section{-webkit-backdrop-filter:var(--blur-md);padding:var(--space-5);border-radius:var(--radius-sm);border:1px solid var(--separator);margin-top:var(--space-4);background:0 0!important}.upload-section h4{color:var(--blue);margin-bottom:var(--space-3);font-size:13px;font-weight:700}.back-btn{align-items:center;gap:var(--space-2);padding:8px var(--space-4);background:var(--material-regular);color:var(--text-secondary);border:1px solid var(--separator);border-radius:var(--radius-xs);cursor:pointer;margin-bottom:var(--space-4);transition:all var(--t-fast);min-height:36px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.back-btn:hover{background:var(--material-thick);color:var(--text-primary)}.pengajar-list{background:var(--blue-subtle);padding:var(--space-4);border-radius:var(--radius-xs);margin-bottom:var(--space-4);border:1px solid #0a84ff33}.pengajar-list p{color:var(--text-secondary);font-size:13px;line-height:1.6}.success-list{text-align:left;background:var(--green-dim);padding:var(--space-4);border-radius:var(--radius-xs);margin-top:var(--space-4);border:1px solid #30d15833;max-height:220px;overflow-y:auto}.success-item{color:var(--green);border-bottom:1px solid #30d1581a;padding:7px 0;font-size:13px}.success-item:last-child{border-bottom:none}.attendance-counter{text-align:right;flex-shrink:0}.attendance-count-value{color:var(--text-primary);font-size:22px;font-weight:800}.attendance-count-total{color:var(--text-tertiary);font-size:13px}.attendance-count-pct{color:var(--text-quaternary);font-size:11px}.spreadsheet-wrapper{-webkit-overflow-scrolling:touch;width:100%;-webkit-backdrop-filter:var(--blur-md);border-radius:var(--box-radius);max-height:60vh;box-shadow:var(--glass-shadow);border:1px solid #ffffff1f;position:relative;overflow:auto;background:0 0!important}.spreadsheet-table{border-collapse:collapse;table-layout:auto;width:100%;min-width:750px}.spreadsheet-table th,.spreadsheet-table td{color:var(--text-primary);white-space:nowrap;padding:10px 14px;font-size:13px}.spreadsheet-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:var(--bg-secondary);z-index:10;border-bottom:1px solid var(--separator);font-size:11px;font-weight:600;position:sticky;top:0}.spreadsheet-table td{border-bottom:1px solid var(--separator);color:var(--text-primary)}.spreadsheet-table tbody tr:hover td{background:var(--material-thin)}.spreadsheet-table tr.migrated-row td{color:var(--text-tertiary);background:#30d1580d}.spreadsheet-table a{color:var(--blue);font-weight:600;text-decoration:none}.spreadsheet-table a:hover{text-decoration:underline}.migrate-cb{cursor:pointer;width:16px;height:16px;accent-color:var(--green)}.toast-container{bottom:max(20px, env(safe-area-inset-bottom));z-index:9999;pointer-events:none;flex-direction:column;gap:8px;max-width:calc(100vw - 40px);display:flex;position:fixed;right:20px}.toast{-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--separator-opaque);box-shadow:var(--glass-shadow);border-radius:var(--box-radius);min-width:260px;max-width:360px;color:var(--text-primary);pointer-events:auto;animation:slideInRight .3s var(--ease-out) forwards;align-items:center;gap:10px;padding:12px 16px;font-size:13px;display:flex;position:relative;overflow:hidden;background:0 0!important}.toast.hiding{animation:.2s forwards fadeOut}.toast-content{flex:1;min-width:0}.toast-title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:1.4;overflow:hidden}.toast-desc{color:var(--text-secondary);margin-top:1px;font-size:11.5px}.toast-btn-undo{background:var(--orange);color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.4px;border:none;border-radius:6px;flex-shrink:0;padding:5px 10px;font-size:11px;font-weight:700;transition:transform .15s;min-height:unset!important}.toast-btn-undo:hover{transform:scale(1.05)}.toast-progress{background:var(--blue);transform-origin:0;width:100%;height:2px;animation:linear forwards progressShrink;position:absolute;bottom:0;left:0}.toast.success .toast-progress{background:var(--green)}.toast.error .toast-progress{background:var(--red)}.toast.undo .toast-progress,.toast.warning .toast-progress{background:var(--orange)}@keyframes slideInRight{0%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0)}}@keyframes fadeOut{to{opacity:0;transform:translate(110%)}}@keyframes progressShrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.dash-header{margin-bottom:var(--space-5);-webkit-backdrop-filter:var(--blur-md);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);border:1px solid var(--separator);justify-content:space-between;align-items:center;min-height:52px;display:flex;background:0 0!important}.dash-header h2{color:var(--text-primary);text-align:center;letter-spacing:-.2px;flex:1;margin:0;font-size:15px;font-weight:600}.dash-nav-btn{background:var(--material-regular);border:1px solid var(--separator);color:var(--text-primary);border-radius:var(--radius-xs);cursor:pointer;width:38px;height:38px;transition:all var(--t-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:inline-flex;min-height:unset!important}.dash-nav-btn:hover:not(:disabled){background:var(--blue);border-color:var(--blue);color:#fff}.dash-nav-btn:disabled{opacity:.25;cursor:not-allowed}.dash-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.dash-stat-card{-webkit-backdrop-filter:var(--blur-md);border-radius:var(--box-radius);padding:var(--space-5);text-align:center;gap:var(--space-1);transition:all var(--t-fast);min-height:120px;box-shadow:var(--glass-shadow-card);border:1px solid #ffffff1a;flex-direction:column;justify-content:center;display:flex;position:relative;background:0 0!important}.dash-stat-card:hover{border-color:var(--border-thin);box-shadow:var(--glass-shadow-hover);background:0 0;transform:translateY(-2px)}.dash-stat-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:600}.dash-stat-value{color:var(--text-primary);letter-spacing:-1px;font-size:32px;font-weight:800;line-height:1}.dash-stat-desc{color:var(--text-quaternary);font-size:11px}.global-stats-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.global-stat-card{-webkit-backdrop-filter:var(--blur-md);border-radius:var(--box-radius);padding:var(--space-5);text-align:center;justify-content:center;gap:var(--space-1);min-height:100px;transition:all var(--t-fast);box-shadow:var(--glass-shadow-card);border:1px solid #ffffff1a;flex-direction:column;display:flex;background:0 0!important}.global-stat-card:hover{border-color:var(--border-thin);box-shadow:var(--glass-shadow-hover);background:0 0;transform:translateY(-2px)}.global-stat-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.6px;margin-bottom:var(--space-1);font-size:11px;font-weight:600}.global-stat-value{color:var(--text-primary);letter-spacing:-.5px;margin-bottom:var(--space-1);font-size:28px;font-weight:800;line-height:1}.global-stat-desc{color:var(--text-quaternary);font-size:11px}.indicator-card{-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--separator);border-radius:var(--radius-xs);padding:var(--space-3);justify-content:space-between;align-items:center;display:flex;background:0 0!important}.indicator-info{align-items:center;gap:10px;display:flex}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot.green{background:var(--green)}.dot.yellow{background:var(--orange)}.dot.gray{background:var(--text-quaternary)}.indicator-text h4{color:var(--text-primary);margin-bottom:1px;font-size:13px}.indicator-text p{color:var(--text-tertiary);margin:0;font-size:11px}.settings-icon{color:var(--text-tertiary);cursor:pointer;transition:color var(--t-fast), transform var(--t-fast);align-items:center;min-height:32px;padding:4px 8px;display:flex}.settings-icon:hover{color:var(--blue);transform:rotate(90deg)}.drop-zone{border:2px dashed var(--separator-opaque);border-radius:var(--radius-sm);padding:var(--space-7);text-align:center;background:var(--material-thin);transition:all var(--t-fast);cursor:pointer;margin-top:var(--space-4);margin-bottom:var(--space-4)}.drop-zone:hover,.drop-zone.dragover{border-color:var(--blue);background:var(--blue-subtle)}.drop-zone-icon{margin-bottom:8px;font-size:28px;display:block}.drop-zone-text{color:var(--text-secondary);font-size:13px}.drop-zone-text strong{color:var(--blue)}.preview-table-container{max-height:240px;margin-top:var(--space-4);border:1px solid var(--separator);border-radius:var(--radius-xs);background:var(--bg-primary);overflow-y:auto}.preview-table-container table{width:100%;font-size:12px}.preview-table-container th{background:var(--bg-secondary);z-index:2;position:sticky;top:0}.row-error{background:#ff453a14!important}.row-error td{color:#fca5a5!important}.slide-over-overlay{z-index:3000;opacity:0;visibility:hidden;-webkit-backdrop-filter:blur(8px);background:#00000080;transition:opacity .25s;position:fixed;inset:0}.slide-over-overlay.active{opacity:1;visibility:visible}.slide-over-panel{background:var(--bg-primary);width:100%;max-width:440px;-webkit-backdrop-filter:var(--blur-heavy);z-index:3001;transition:transform .3s var(--ease-out);box-shadow:var(--glass-shadow-hover);border-left:1px solid var(--separator);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%)}.slide-over-panel.active{transform:translate(0)}.slide-over-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--separator);background:var(--bg-secondary);justify-content:space-between;align-items:center;display:flex}.slide-over-header h2{color:var(--text-primary);margin:0;font-size:17px;font-weight:700}.slide-over-close{background:var(--material-regular);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-pill);width:30px;height:30px;transition:all var(--t-fast);border:none;justify-content:center;align-items:center;padding:4px;font-size:14px;display:flex}.slide-over-close:hover{background:var(--red-dim);color:var(--red)}.slide-over-content{padding:var(--space-5);flex:1;overflow-y:auto}.login-banner{aspect-ratio:16/9;border-radius:var(--radius-sm);object-fit:cover;width:100%;margin-bottom:var(--space-5);display:block}.dash-channel-banner{border-radius:var(--radius-sm);object-fit:cover;width:100%;height:140px;margin-bottom:var(--space-5);border:1px solid var(--separator);display:block}@media (width>=769px){.custom-login-card.split-layout{border-radius:var(--box-radius);flex-direction:row;width:95%;max-width:1180px;height:520px;padding:0;display:flex;overflow:hidden}.login-form-side{width:400px;padding:var(--space-10) var(--space-8);flex-direction:column;flex:0 0 400px;justify-content:center;display:flex}.login-image-side{background:0 0;flex:1;height:100%;display:block;position:relative}.login-image-side .login-banner{object-fit:cover;object-position:center;border:none;border-radius:0;width:100%;height:100%;margin-bottom:0;position:absolute;inset:0}}@media (width<=768px){.custom-login-card.split-layout{flex-direction:column;display:flex}.login-form-side{order:2;width:100%}.login-image-side{width:100%;margin-bottom:var(--space-4);order:1}.login-image-side .login-banner{aspect-ratio:16/9;border-radius:var(--radius-sm);object-fit:cover;width:100%;margin-bottom:0}.hamburger-btn,.close-sidebar-btn{display:flex}.sidebar{top:var(--space-4);left:var(--space-4);bottom:var(--space-4);height:calc(100vh - (var(--space-4) * 2));border-radius:var(--box-radius);width:min(300px,85vw);transform:translateX(calc(-100% - var(--space-4) - 20px));z-index:100;box-shadow:var(--shadow-xl);transition:transform .4s var(--ease-spring);border:1px solid #ffffff1f}.sidebar.open{transform:translate(0)}.main-content{margin-left:0!important;margin-right:0!important;padding-top:0!important}.header{height:48px;min-height:48px;padding:0 var(--space-4);gap:var(--space-3);margin:var(--space-4) var(--space-4) 0 var(--space-4)!important}.header h1{font-size:16px}.content{padding:var(--space-4)!important;padding-bottom:var(--space-6)!important}.card{padding:var(--space-5);margin-bottom:var(--space-4);border-radius:var(--radius-sm)}.card h3{margin-bottom:var(--space-4);font-size:16px}.input-row{gap:var(--space-2);flex-direction:column}.input-row input,.input-row select,.input-row textarea,.file-input-wrapper{width:100%;min-width:unset}.tabs{gap:2px;width:100%;padding:3px;overflow-x:auto}.tab{text-align:center;flex:1;padding:7px 12px;font-size:12px}.spreadsheet-wrapper{border-radius:var(--radius-xs);max-height:48vh}.spreadsheet-table th,.spreadsheet-table td{padding:9px 10px;font-size:12px}.modal-box,.loading-box{padding:var(--space-5) var(--space-4);border-radius:var(--box-radius);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);width:95%!important}.modal-box h2{font-size:17px}.modal-buttons{flex-direction:column;gap:8px}.modal-buttons .btn{flex:unset;width:100%}.custom-login-card{padding:var(--space-7) var(--space-5);border-radius:var(--radius-lg)}.slide-over-panel{border-radius:0;width:100%;max-width:100%;top:0;bottom:0;right:0}}@media screen and (width<=768px){input[type=text],input[type=password],input[type=email],input[type=number],input[type=datetime-local],input[type=date],select,textarea{font-size:16px!important}.checkbox-item{border-radius:var(--radius-xs);min-height:48px;margin-bottom:6px;padding:11px 14px!important}.checkbox-item input[type=checkbox]{width:22px;min-width:22px;height:22px}.checkbox-item label{padding-left:4px;line-height:1.4;font-size:14px!important}.input-row input,.input-row select,.input-row textarea{padding:12px 14px!important;font-size:16px!important}.dash-grid{grid-template-columns:repeat(2,1fr);gap:8px}.dash-stat-card{padding:var(--space-4) var(--space-3);border-radius:var(--radius-sm);min-height:100px}.dash-stat-value{font-size:24px}.dash-header{gap:var(--space-2);padding:var(--space-3);min-height:46px}.dash-header h2{font-size:13px}.global-stats-grid{grid-template-columns:1fr;gap:8px}.global-stat-card{border-radius:var(--radius-xs);padding:var(--space-3);min-height:80px}.global-stat-value{font-size:22px}.toast-container{right:10px;bottom:max(14px, env(safe-area-inset-bottom));max-width:calc(100vw - 20px)}.toast{min-width:unset;border-radius:var(--radius-xs);padding:10px 14px;font-size:12.5px}}@media (width<=380px){.custom-login-card{padding:var(--space-5) var(--space-4)}.content{padding:var(--space-3)}.modal-box,.loading-box{padding:var(--space-4) var(--space-3)}}@media screen and (width<=600px){.global-stats-grid{grid-template-columns:repeat(3,1fr);gap:6px}.global-stat-card{padding:var(--space-2) var(--space-1)}.global-stat-value{font-size:18px}.global-stat-title{font-size:9px}.global-stat-desc{display:none}}
