:root{color-scheme:light;--bg:#f3f6fb;--surface:#ffffff;--blue:#237bd2;--blue-strong:#1f73c8;--blue-soft:#eaf4ff;--border:#e6edf6;--muted:#8190aa;--text:#17243a;--accent:#2d8cff;--accent-strong:#1e78dc;--warning:#b45309;--danger:#b91c1c;--ok:#16803c;--shadow:0 2px 5px rgba(36,54,85,0.08)}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body.modal-scroll-locked,body.session-gate-locked{overflow:hidden}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.login-shell{display:grid;min-height:100vh;place-items:center;padding:24px;background:radial-gradient(circle at 16% 18%,rgba(45,140,255,.18),transparent 28%),linear-gradient(135deg,#f3f8ff,#eaf4ff 48%,#f7fbff)}.login-card{display:grid;justify-items:center;grid-gap:18px;gap:18px;width:min(100%,420px);padding:34px 28px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.95);box-shadow:0 18px 44px rgba(36,54,85,.14);text-align:center}.login-mark{display:grid;width:62px;height:62px;place-items:center;border-radius:999px;background:var(--blue-soft);color:var(--accent-strong)}.login-copy{display:grid;grid-gap:7px;gap:7px}.login-copy h1,.login-copy p,.login-copy span{margin:0}.login-copy p{color:var(--accent-strong);font-size:13px;font-weight:850;text-transform:uppercase}.login-copy h1{font-size:28px;line-height:1.12}.login-browser-link,.login-copy span{color:var(--muted);font-size:14px}.login-button{justify-content:center;gap:10px;min-height:44px;padding:0 18px;border:0;border-radius:10px;background:var(--accent-strong);color:white;cursor:pointer;font-weight:850;box-shadow:0 8px 20px rgba(45,140,255,.26)}.login-browser-link,.login-button{display:inline-flex;align-items:center}.login-browser-link{gap:7px;font-weight:750}.portal-shell{min-height:100vh;background:var(--bg)}.portal-header-bar{width:100%;background:var(--blue-strong);box-shadow:0 2px 8px rgba(11,70,130,.22)}.portal-header{display:flex;align-items:center;justify-content:space-between;min-height:70px;max-width:1400px;margin:0 auto;padding:0 24px;color:white}.dashboard-grid,.hero-content,.left-rail,.main-column,.paket-card,.paket-panel,.portal-card,.portal-header{min-width:0}.brand-block,.card-title-row,.krs-total,.paket-main-row,.portal-nav,.portal-nav a,.title-with-icon,.verify-strip{display:flex;align-items:center}.brand-block{gap:10px;min-width:0;flex:1 1 auto}.brand-seal{display:grid;width:34px;height:34px;place-items:center;border-radius:999px;background:#2752a5;box-shadow:inset 0 0 0 2px rgba(255,255,255,.25);font-size:11px;font-weight:850;flex-shrink:0}.brand-block span,.brand-block strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:clamp(140px,50vw,360px)}.brand-block span{margin-top:1px;font-size:12px;opacity:.9}.mobile-nav-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:8px;background:rgba(255,255,255,.15);color:#ffffff;cursor:pointer;transition:background .15s ease}.mobile-nav-toggle:focus-visible,.mobile-nav-toggle:hover{background:rgba(255,255,255,.28)}.portal-nav{align-self:stretch;gap:4px;flex:0 0 auto}.portal-nav a{position:relative;justify-content:center;flex-direction:column;gap:3px;padding:6px 14px;height:70px;font-size:13px;font-weight:600;text-align:center;white-space:nowrap;border-radius:8px;transition:background .15s ease}.portal-nav a:hover{background:rgba(255,255,255,.1)}.portal-nav small{font-size:9px;font-weight:750;opacity:.78}.portal-nav a.active:after{position:absolute;right:12px;bottom:8px;left:12px;height:2.5px;border-radius:2px;background:#ffffff;content:""}@media (max-width:960px){.mobile-nav-toggle{display:inline-flex;margin-left:12px;flex-shrink:0}.portal-header-bar{position:relative;z-index:1000}.portal-header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;min-height:72px;box-sizing:border-box}.portal-nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:stretch;padding:12px 16px 24px;background:#1b61ab;box-shadow:0 18px 36px rgba(11,40,75,.4);border-top:1px solid rgba(255,255,255,.12)}.portal-nav.is-open{display:flex}.portal-nav a{flex-direction:row;justify-content:flex-start;gap:12px;height:48px;padding:0 16px;font-size:14px;text-align:left;border-radius:8px}.portal-nav a.active:after{display:none}.portal-nav a.active{background:rgba(255,255,255,.22);font-weight:850}}.hero-band{position:relative;min-height:236px;overflow:hidden;background:#2798e6;color:white;border-bottom:1px solid rgba(27,102,177,.25)}.hero-art{position:absolute;inset:0;filter:blur(2px);opacity:.86}.cloud,.hill,.rocket-stairs{position:absolute;display:block}.cloud{width:54px;height:24px;border-radius:999px;background:rgba(255,255,255,.86);box-shadow:18px -9px 0 1px rgba(255,255,255,.78),34px 1px 0 -2px rgba(255,255,255,.75)}.cloud-one{top:31px;left:20%;transform:scale(.55)}.cloud-two{top:48px;right:5%;transform:scale(1.25)}.hill-left{left:-42px;bottom:-72px;width:350px;height:234px;border-radius:50% 48% 0 0;background:#39a857}.hill-left:before{position:absolute;left:52px;top:-45px;width:20px;height:96px;border-radius:999px 999px 0 0;background:#16934d;content:""}.hill-right{right:-82px;bottom:-58px;width:288px;height:158px;border-radius:52% 48% 0 0;background:#31a955}.rocket-stairs{right:58px;bottom:-2px;width:128px;height:116px;background:linear-gradient(90deg,transparent 39%,#ff2768 40% 60%,transparent 61%),linear-gradient(180deg,transparent 0 18%,#ffc836 18% 25%,transparent 25% 38%,#ffc836 38% 45%,transparent 45% 58%,#ffc836 58% 65%,transparent 65%),linear-gradient(135deg,transparent 0 44%,rgba(255,255,255,.75) 45% 55%,transparent 56%)}.hero-content{position:relative;z-index:1;display:grid;justify-items:center;grid-gap:16px;gap:16px;max-width:760px;margin:0 auto;padding:38px 20px 40px;text-align:center}.hero-content h1{margin:0;font-size:30px;font-weight:850}.hero-content p{max-width:660px;margin:0;font-size:16px;font-weight:800;line-height:1.45}.countdown-panel{display:grid;grid-template-columns:auto;align-items:center;justify-content:center;grid-gap:3px;gap:3px;width:min(100%,300px);min-height:64px;padding:10px 18px;border-radius:12px;background:rgba(255,255,255,.95);color:#4e5c73;box-shadow:0 8px 22px rgba(21,75,132,.14)}.countdown-label{color:#687890;font-size:11px;font-weight:800;text-transform:uppercase}.countdown-time{min-width:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:18px;font-weight:850;color:var(--accent);text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dot{width:9px;height:9px;border-radius:999px;background:var(--warning)}.dot.synced{background:var(--accent)}.dot.offline{background:var(--danger)}.session-gate{display:grid;place-items:center;padding:16px;background:linear-gradient(180deg,#f4f9ff,#edf5ff);overflow-y:auto;box-sizing:border-box}.session-gate-card{display:grid;justify-items:center;grid-gap:18px;gap:18px;width:min(100%,430px);max-width:calc(100vw - 32px);padding:24px 18px;border:1px solid var(--border);border-radius:16px;background:white;box-shadow:0 18px 50px rgba(14,31,58,.24);box-sizing:border-box;overflow:hidden}.session-gate-copy{display:grid;grid-gap:7px;gap:7px;width:100%;min-width:0}.session-gate-copy h2,.session-gate-copy p,.session-gate-copy span{margin:0;overflow-wrap:anywhere}.session-gate-copy p{color:var(--accent-strong);font-size:12px;font-weight:850}.session-gate-copy h2{font-size:24px;line-height:1.16}.session-gate-copy span{color:var(--muted)}.cf-turnstile,.h-captcha,.krs-captcha-widget,.session-gate-captcha{display:grid;min-height:54px;place-items:center;width:100%;max-width:100%;overflow-x:auto;box-sizing:border-box}.session-gate-captcha label{display:inline-flex;align-items:center;gap:9px;color:#40516d;font-weight:850}.session-gate-status{justify-content:center;min-height:32px;padding:0 12px;border-radius:999px;background:#f3f7fc;color:#40516d;font-size:12px;font-weight:850}.session-gate-enter-btn{width:100%;min-height:46px;margin-top:12px;border-radius:10px;border:none;background:linear-gradient(135deg,#0284c7,#0369a1);color:#ffffff;font-weight:800;font-size:14px;cursor:pointer;box-shadow:0 4px 14px rgba(2,132,199,.4);transition:all .2s ease}.session-gate-enter-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(2,132,199,.6)}.ably-cue{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:30px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.92);color:#40516d;font-size:12px;font-weight:850;box-shadow:0 8px 22px rgba(21,75,132,.12)}.ably-cue svg{color:var(--accent)}.ably-cue.open{background:#dcfce7;color:#126c37}.ably-cue.open svg{color:#126c37}.ably-cue.disabled,.ably-cue.offline{background:rgba(255,255,255,.82);color:#6b7280}.ably-cue time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:inherit}.dashboard-grid{display:grid;grid-template-columns:minmax(360px,454px) minmax(0,1fr);grid-gap:24px;gap:24px;padding:32px 16px}.left-rail,.main-column{display:grid;align-content:start;grid-gap:24px;gap:24px}.portal-card{border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.krs-card{min-height:184px;padding-top:18px}.card-title-row{flex-wrap:wrap;justify-content:space-between;gap:12px;padding:0 20px}.title-with-icon{gap:12px}.search-mark,.title-with-icon svg{color:var(--accent)}.paket-heading h2,.title-with-icon h2{margin:0;font-size:16px;font-weight:850}.paket-count{margin:4px 0 0;color:var(--muted);font-size:12px;font-weight:750}.card-title-row>span{color:#8ea0bd;font-size:12px;font-weight:800}.empty-krs{display:grid;width:212px;min-height:48px;margin:24px auto 14px;place-items:center;border-radius:10px;background:#e9f6eb;color:#666;box-shadow:0 3px 7px rgba(25,87,48,.08)}.krs-selection-list{display:grid;grid-gap:12px;gap:12px;margin:14px 16px 10px}.krs-selection{display:grid;grid-gap:10px;gap:10px;padding:14px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff;box-shadow:0 2px 6px rgba(35,123,210,.04)}.krs-block-subtotal{display:flex;justify-content:flex-end;margin-top:4px;padding-top:6px;border-top:1px dashed #dbeafe;color:var(--muted);font-size:11px;font-weight:600}.krs-selection-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.krs-selection-heading strong{color:var(--accent-strong);font-size:14px}.krs-selection-heading button{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 10px;border:1px solid #fecaca;border-radius:8px;background:#fff7f7;color:#b42318;cursor:pointer;font-size:12px;font-weight:850}.krs-selection-heading button:disabled{cursor:not-allowed;opacity:.68}.krs-selection ul{display:grid;grid-gap:6px;gap:6px;margin:0;padding:0;list-style:none}.krs-selection li{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#33445f;font-size:12px}.krs-selection small{flex:0 0 auto;min-width:38px;border-radius:999px;background:var(--blue-soft);color:var(--accent-strong);font-weight:850;text-align:center}.krs-total{justify-content:space-between;min-height:60px;margin-top:12px;padding:0 16px;border-top:1px solid #eef2f6;color:#3c4e67}.krs-total span{color:var(--accent);font-size:18px;font-weight:850}.delete-paket-feedback{margin:-8px 16px 12px;padding:10px 12px;border:1px solid #dbeafe;border-radius:10px;background:#f8fbff;color:#40516d;font-size:12px;font-weight:750}.schedule-card{min-height:0;overflow:hidden}.schedule-title-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-radius:16px 16px 0 0;background:var(--accent);color:white}.schedule-title-bar .title-with-icon{display:flex;align-items:center;gap:10px}.schedule-title-bar .title-with-icon svg{color:white}.schedule-title-bar h2{margin:0;font-size:16px;font-weight:800;color:white}.schedule-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.schedule-title-bar .link-button{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:6px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);color:#ffffff;font-size:12px;font-weight:700;text-decoration:none;transition:all .15s ease;white-space:nowrap}.schedule-title-bar .link-button:hover{background:#ffffff;border-color:#ffffff;color:#0284c7;box-shadow:0 2px 8px rgba(0,0,0,.15)}.legend-wrap{display:flex;align-items:center;gap:6px;font-size:12px}.legend-pills{display:flex;flex-wrap:wrap;gap:5px}.legend-pills span{min-height:20px;padding:3px 6px;border-radius:6px;font-size:9px;font-weight:800}.legend-pills .kuliah{background:#0ea5e9;color:#08314f}.legend-pills .praktikum{background:#2dd4bf;color:#064e3b}.legend-pills .responsi{background:#fde047;color:#713f12}.calendar-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:4px}.calendar-grid{display:grid;grid-template-columns:32px repeat(6,minmax(130px,1fr));grid-template-rows:32px repeat(26,26px);position:relative;width:100%;min-width:820px;border:1px solid #cbd5e1;border-radius:4px;background:#ffffff}.calendar-cell,.calendar-corner,.calendar-day,.calendar-hour,.calendar-slot{border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;box-sizing:border-box}.calendar-corner{grid-column:1;grid-row:1;background:#f8fafc;border-bottom:1.5px solid #cbd5e1;border-right:1.5px solid #cbd5e1}.calendar-day{display:grid;place-items:center;color:#1e293b;font-weight:800;letter-spacing:0;border-bottom:1.5px solid #cbd5e1}.calendar-day,.calendar-hour{font-size:11px;background:#f8fafc}.calendar-hour{display:grid;align-items:start;justify-content:center;padding-top:3px;text-align:center;color:#475569;font-weight:600;border-right:1.5px solid #cbd5e1}.calendar-cell,.calendar-slot{min-height:25px;background:#ffffff}.calendar-cell:nth-of-type(2n),.calendar-slot:nth-of-type(2n){background:#ffffff}.calendar-event{display:grid;align-content:start;grid-gap:1px;gap:1px;z-index:2;margin:1px;padding:3px 5px;border-radius:4px;background:#0ea5e9;color:#08314f;font-size:10px;line-height:1.15;overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.12);cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease,outline .14s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calendar-event:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 14px rgba(15,23,42,.22);filter:brightness(1.06);z-index:15;outline:2px solid #ffffff}.calendar-event:active{transform:translateY(0) scale(.99)}.calendar-event small,.calendar-event span,.calendar-event strong{overflow:hidden;text-overflow:ellipsis}.calendar-event strong{font-size:9px;font-weight:800}.calendar-event small{color:inherit;font-size:9px}.calendar-event.praktikum{background:#2dd4bf;color:#064e3b}.calendar-event.responsi{background:#fde047;color:#713f12}.event-lecturers-list{display:flex;flex-direction:column;gap:1px;margin-top:2px}.event-lecturer-item{font-size:8px;line-height:1.12;color:inherit;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.paket-panel{display:grid;align-content:start;grid-gap:0;gap:0}.paket-heading{display:grid;grid-template-columns:36px minmax(0,288px);align-items:start;grid-gap:12px;gap:12px;margin-bottom:0}.search-mark{display:grid;width:36px;height:36px;place-items:center;border-radius:999px;background:#deefff}.search-box{display:flex;align-items:center;height:42px;margin-top:8px;padding:0 18px;border:1px solid var(--border);border-radius:13px;background:#f8fbff;color:var(--muted)}.search-box input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text)}.search-box input::placeholder{color:var(--muted)}.paket-list{display:grid;grid-gap:10px;gap:10px;margin-top:0}.submission-feedback{display:grid;grid-gap:6px;gap:6px;margin-top:12px;padding:12px 14px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff;color:#40516d;font-size:13px;line-height:1.45}.submission-feedback strong{color:var(--text)}.submission-result{font-weight:750}.receipt-link{display:table;margin-top:6px;color:var(--accent-strong);font-size:12px;font-weight:850}.submission-result.success{color:#126c37}.submission-result.already_committed,.submission-result.invalid,.submission-result.unavailable{color:#9a3412}.paket-card{display:grid;grid-gap:10px;gap:10px;min-height:74px;padding:18px 20px;background:var(--surface);border-radius:0}.paket-main-row{flex-wrap:wrap;justify-content:space-between;gap:16px}.paket-main-row h3{min-width:0;margin:0;font-size:15px;font-weight:850;overflow-wrap:anywhere}.paket-main-row h3 span{display:inline-flex;min-height:18px;margin-left:6px;padding:2px 7px;border-radius:999px;background:var(--blue-soft);color:var(--accent);font-size:10px;vertical-align:text-top}.paket-main-row h3 span.seats-overcapacity{background:#fecaca;color:#991b1b;font-weight:700}.paket-main-row h3 span.seats-full{background:#fed7aa;color:#9a3412;font-weight:700}.paket-main-row button,.standalone-take-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 14px;min-height:32px;border:0;border-radius:999px;background:var(--accent-strong);color:white;cursor:pointer;font-size:12px;font-weight:750;white-space:nowrap;box-shadow:0 2px 6px rgba(45,140,255,.25);transition:all .15s ease}.paket-main-row button:disabled,.standalone-take-btn:disabled{background:#e2e8f0;color:#64748b;cursor:not-allowed;opacity:1;box-shadow:none}.bottleneck-note,.paket-meta{margin:0;color:#53627a;font-size:12px;line-height:1.45}.paket-meta strong{color:#006cdf}details{padding-top:4px}summary{cursor:pointer;color:#61708a;font-size:12px;font-weight:750}.meeting-breakdown{display:grid;grid-gap:8px;gap:8px;margin-top:10px}.meeting-breakdown div{display:grid;grid-gap:3px;gap:3px;padding:10px;border-radius:8px;background:#f3f7fc;overflow-wrap:anywhere}.meeting-breakdown span{color:var(--muted);font-size:12px}.bottleneck-note{font-weight:750}.icon-button{display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer}.icon-button:focus-visible,.icon-button:hover{border-color:var(--accent);color:var(--accent);outline:none}.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;min-width:780px;border-collapse:collapse;font-size:14px}td,th{padding:13px 12px;border-bottom:1px solid var(--border);text-align:left}th{color:var(--muted);text-transform:uppercase}.status-pill,th{font-size:12px;font-weight:800}.status-pill{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border-radius:999px;text-transform:capitalize}.status-pill.provisional{background:#def7ec;color:#126c37}.status-pill.paket_full,.status-pill.waitlisted{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5}.status-pill.already_committed{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.ledger-card{padding:20px}.ledger-card .card-title-row{padding:0 0 12px}.verify-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px;padding:14px 18px;border-radius:12px;background:white;color:var(--muted);box-shadow:var(--shadow);font-size:14px;line-height:1.45}.verify-strip>div{display:grid;grid-gap:2px;gap:2px}.verify-strip strong{color:var(--text)}.verify-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.verify-actions a{min-height:32px;padding:7px 10px;border-radius:8px;background:var(--blue-soft);color:var(--accent-strong);font-size:12px;font-weight:850}.subpage-shell{display:grid;grid-gap:22px;gap:22px;max-width:1120px;padding:34px 18px}.subpage-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.subpage-heading p{margin:0 0 6px;color:var(--accent-strong);font-size:13px;font-weight:850;text-transform:uppercase}.subpage-heading h1{margin:0;font-size:30px}.download-button,.verify-page-actions a{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:0 14px;border-radius:10px;background:var(--accent-strong);color:white;font-weight:850}.page-ledger-card .card-title-row{align-items:flex-start}.verify-page-card{display:grid;grid-gap:24px;gap:24px;padding:28px;width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden}.verify-page-intro{display:flex;align-items:flex-start;gap:16px;width:100%;min-width:0;box-sizing:border-box}.verify-page-intro svg{color:var(--accent);flex:0 0 auto;margin-top:2px}.verify-page-intro h2{margin:0 0 6px;font-size:20px;overflow-wrap:anywhere}.verify-page-intro p{max-width:800px;margin:0;color:var(--muted);font-size:14px;line-height:1.6;overflow-wrap:anywhere}.verify-info-banner{display:flex;align-items:flex-start;gap:12px;padding:14px 18px;border-radius:12px;background:var(--blue-soft,#eff6ff);border:1px solid rgba(59,130,246,.2);color:var(--accent-strong,#1e40af);width:100%;min-width:0;box-sizing:border-box}.verify-info-banner svg{flex:0 0 auto;margin-top:3px}.verify-info-banner strong{display:block;margin-bottom:2px;font-size:14px;overflow-wrap:anywhere}.verify-info-banner p{margin:0;font-size:13px;line-height:1.5;color:#334155;overflow-wrap:anywhere}.verify-hash-section{grid-gap:16px;gap:16px}.hash-card,.verify-hash-section{display:grid;width:100%;min-width:0}.hash-card{grid-gap:12px;gap:12px;padding:18px;border:1px solid var(--border);border-radius:12px;background:#f8fbff;box-sizing:border-box}.hash-card-header{display:flex;align-items:flex-start;gap:12px;min-width:0}.hash-card-header svg{color:var(--accent);flex:0 0 auto;margin-top:2px}.hash-card-header h3{margin:0 0 2px;font-size:15px;font-weight:700;overflow-wrap:anywhere}.hash-card-header span{display:block;font-size:12px;color:var(--muted);overflow-wrap:anywhere}.hash-code-display{display:block;padding:10px 14px;border-radius:8px;background:#0f172a;color:#38bdf8;font-family:monospace;font-size:13px;width:100%;max-width:100%;box-sizing:border-box;overflow-x:auto;word-break:break-all;white-space:pre-wrap}.hash-explanation{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text);line-height:1.5;padding-top:4px;overflow-wrap:anywhere}.hash-explanation svg{color:#16a34a;flex:0 0 auto;margin-top:2px}.verify-resources-block{display:grid;grid-gap:12px;gap:12px;padding-top:8px;width:100%;min-width:0}.verify-resources-block h3{margin:0;font-size:16px;font-weight:700}.verify-resources-desc{margin:0 0 4px;font-size:13px;color:var(--muted);overflow-wrap:anywhere}.verify-resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px}.verify-resource-grid,.verify-resource-item{gap:12px;width:100%;min-width:0;box-sizing:border-box}.verify-resource-item{display:flex;align-items:flex-start;padding:14px;border-radius:10px;border:1px solid var(--border);background:white;text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}.verify-resource-item:hover{border-color:var(--accent);box-shadow:0 2px 8px rgba(0,0,0,.05)}.verify-resource-item svg{color:var(--accent);flex:0 0 auto;margin-top:2px}.verify-resource-item strong{display:block;font-size:13px;color:var(--text);margin-bottom:2px;overflow-wrap:anywhere}.verify-resource-item p{margin:0;font-size:12px;color:var(--muted);line-height:1.4;overflow-wrap:anywhere}.command-box{display:grid;grid-gap:10px;gap:10px;padding:18px;border:1px solid var(--border);border-radius:12px;background:#f8fafc;width:100%;min-width:0;box-sizing:border-box}.command-box-title{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);overflow-wrap:anywhere}.command-instruction{margin:0;font-size:13px;color:var(--muted);overflow-wrap:anywhere}.command-box code{display:block;padding:10px 14px;border-radius:8px;background:#1e293b;color:#f1f5f9;font-family:monospace;font-size:13px;width:100%;max-width:100%;box-sizing:border-box;overflow-x:auto;word-break:break-all;white-space:pre-wrap}@media (max-width:640px){.verify-page-card{padding:16px;gap:18px}.command-box,.hash-card,.verify-info-banner{padding:14px}}.command-footer-note{margin:0;font-size:12px;color:var(--muted);line-height:1.5}.registration-card{display:grid;grid-gap:18px;gap:18px;width:100%;max-width:720px;padding:22px;box-sizing:border-box;overflow:hidden}.claim-form,.claim-status,.registration-account{display:grid;grid-gap:8px;gap:8px;width:100%;max-width:100%;min-width:0}.registration-account{padding-bottom:18px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.claim-form label,.registration-account span{color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase}.registration-account strong{font-size:20px;overflow-wrap:anywhere}.claim-status small,.registration-account small{color:var(--muted);overflow-wrap:anywhere}.claim-form select,.claim-search{width:100%;max-width:100%;min-width:0;min-height:42px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:#f8fbff;color:var(--text);box-sizing:border-box;text-overflow:ellipsis}.claim-search{display:flex;align-items:center;gap:9px}.claim-search svg{flex:0 0 auto;color:var(--accent)}.claim-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text)}.claim-search input::placeholder{color:var(--muted)}.claim-form button{justify-self:start;min-height:38px;padding:0 14px;border:0;border-radius:10px;background:var(--accent-strong);color:white;cursor:pointer;font-weight:850}.claim-form button:disabled{cursor:not-allowed;opacity:.72}.form-error{color:var(--danger);font-weight:700}.claim-status{grid-template-columns:auto minmax(0,1fr);align-items:start;padding:16px;border:1px solid var(--border);border-radius:10px;background:#f8fbff}.claim-status svg{color:var(--accent)}.claim-status.approved svg{color:var(--ok)}.claim-status.rejected svg{color:var(--danger)}.claim-status p{margin:4px 0;color:#40516d}.registration-modal-backdrop{position:fixed;z-index:50;inset:0;display:grid;align-items:center;justify-items:center;padding:20px;background:rgba(23,36,58,.58);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.registration-modal{display:grid;grid-gap:14px;gap:14px;width:min(100%,760px);max-height:calc(100vh - 40px);overflow-y:auto;border-radius:16px}.registration-modal-heading{display:grid;grid-gap:6px;gap:6px;padding:20px 22px;border:1px solid var(--border);border-radius:16px;background:white;box-shadow:var(--shadow)}.registration-modal-heading h2,.registration-modal-heading p,.registration-modal-heading span{margin:0}.registration-modal-heading p{color:var(--accent-strong);font-size:12px;font-weight:850;text-transform:uppercase}.registration-modal-heading h2{font-size:24px;line-height:1.18}.registration-modal-heading span{color:var(--muted);line-height:1.5}.registration-modal .registration-card{max-width:none}.ops-card{display:grid;grid-gap:18px;gap:18px;padding:22px}.advanced-intro,.ops-check,.ops-score{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;grid-gap:12px;gap:12px}.advanced-intro{gap:12px;padding:16px;border-radius:12px;background:var(--blue-soft)}.advanced-intro svg{color:var(--accent-strong)}.advanced-intro span,.advanced-intro strong{display:block}.advanced-intro span{margin-top:4px;color:#52647d;line-height:1.45}.ops-score{padding-bottom:18px;border-bottom:1px solid var(--border)}.ops-score svg{color:var(--accent)}.ops-score strong{display:block;margin-bottom:4px;font-size:18px}.ops-check span,.ops-score span{color:var(--muted);font-size:13px}.ops-check p{margin:7px 0 0;color:#52647d;font-size:13px;line-height:1.45}.ops-check details{margin-top:8px}.ops-check summary{font-size:11px}.ops-check code{display:block;margin-top:7px;padding:8px;border-radius:7px;background:white;color:#40516d;font-size:11px;overflow-wrap:anywhere}.advanced-links{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:18px;border-top:1px solid var(--border)}.advanced-links>div{display:grid;flex:1 1 320px;grid-gap:3px;gap:3px}.advanced-links span{color:var(--muted);font-size:13px}.advanced-links a{min-height:36px;padding:8px 11px;border-radius:9px;background:var(--blue-soft);color:var(--accent-strong);font-size:12px;font-weight:850}.ops-check-list{display:grid;grid-gap:12px;gap:12px}.ops-check{padding:14px;border:1px solid var(--border);border-radius:10px;background:#f8fbff}.ops-check svg+div strong{display:block;margin-bottom:3px}.ops-check svg[aria-hidden=true]{margin-top:1px}.ops-check.ok svg{color:var(--ok)}.ops-check.missing svg{color:var(--danger)}@media (max-width:1180px){.dashboard-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px}.paket-main-row{align-items:flex-start;flex-direction:column}.paket-main-row button{align-self:flex-end}}@media (max-width:980px){.dashboard-grid{grid-template-columns:1fr;padding:24px 16px}.dashboard-grid>.main-column{order:-1}.portal-header{align-items:stretch;flex-direction:column;gap:10px;padding:12px 16px 0}.portal-nav{width:100%;justify-content:flex-end;align-self:auto;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.portal-nav a{height:58px}.hero-band{min-height:220px}.hero-content{padding:32px 18px 34px}.calendar-grid{grid-template-columns:26px repeat(6,minmax(0,1fr))}.paket-heading{grid-template-columns:36px minmax(0,360px)}}@media (max-width:760px){.brand-block strong{font-size:15px}.hero-content p{font-size:14px}.countdown-panel{grid-template-columns:1fr;padding:10px 12px}.countdown-time{justify-self:center;text-align:center}.countdown-status{font-size:12px}.countdown-status,.ready-badge{justify-self:center}.left-rail,.main-column{gap:16px}.krs-card{min-height:168px}.schedule-card{min-height:0}.schedule-title-bar{align-items:flex-start;flex-direction:column}.schedule-title-bar h2{font-size:19px}.calendar-grid{grid-template-columns:26px repeat(6,minmax(0,1fr));min-width:0}.paket-heading{grid-template-columns:32px minmax(0,1fr)}.search-mark{width:32px;height:32px}.paket-card{padding:16px}.paket-main-row button{align-self:stretch}}@media (max-width:640px){.portal-header{min-height:0;padding-inline:12px}.portal-nav{gap:4px;justify-content:space-between}.portal-nav a{min-width:68px;font-size:12px}.portal-nav svg{width:16px;height:16px}.hero-band{min-height:208px}.hero-content{gap:12px;padding:28px 14px 30px}.hero-content h1{font-size:25px}.hill-left{left:-110px;width:290px;height:186px}.cloud-two,.hill-right,.rocket-stairs{opacity:.55}.dashboard-grid{gap:16px;padding:18px 10px 24px}.card-title-row{padding-inline:16px}.empty-krs{width:min(212px,calc(100% - 32px))}.krs-total{padding-inline:16px}.calendar-grid{grid-template-columns:26px repeat(6,minmax(46px,1fr));min-width:0}.paket-heading h2{font-size:15px}.paket-main-row h3 span{display:table;margin:6px 0 0}.ledger-card{padding:16px}td,th{padding:11px 10px}}@media (max-width:430px){.brand-seal{width:30px;height:30px}.brand-block strong{font-size:13px}.brand-block span{font-size:11px}.portal-nav a{min-width:62px}.hero-content h1{font-size:23px}.hero-content p{font-size:13px}.countdown-panel{width:100%;border-radius:10px}.countdown-time{text-align:center}.submit-button{width:100%}.calendar-grid{grid-template-columns:30px repeat(6,minmax(120px,1fr));min-width:760px}.calendar-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #e2e8f0;border-radius:6px}.schedule-title-bar{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px}.title-with-icon h2{font-size:14px!important;line-height:1.35}.legend-wrap{font-size:11px;flex-wrap:wrap}.calendar-day,.calendar-hour{font-size:10px}.verify-strip{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.verify-actions{grid-column:1/-1;justify-content:flex-start}.subpage-heading{align-items:flex-start;flex-direction:column}.subpage-heading h1{font-size:25px}.verify-page-card{padding:18px}.verify-page-intro{flex-direction:column}}.subpage-shell{max-width:1400px;margin:0 auto;padding:32px 24px}.allocations-view-shell,.subpage-shell{display:flex;flex-direction:column;gap:24px}.allocations-view-shell{width:100%}.allocations-stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.stat-card{padding:18px 22px;background:#ffffff;border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.03)}.stat-icon{padding:12px;background:#f1f5f9}.stat-icon.text-blue{color:#0284c7;background:#e0f2fe}.stat-icon.text-green{color:#16a34a;background:#dcfce7}.stat-icon.text-amber{color:#d97706;background:#fef3c7}.stat-label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:2px}.stat-value{font-size:24px;font-weight:850;color:var(--text)}.allocations-toolbar{justify-content:space-between;gap:16px;padding:16px 20px;background:#ffffff;border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 8px rgba(0,0,0,.03)}.allocations-toolbar,.toolbar-search-filter{display:flex;flex-wrap:wrap;align-items:center}.toolbar-search-filter{gap:12px}.filter-select-wrap,.search-input-wrap{display:flex;align-items:center;gap:10px;height:40px;padding:0 14px;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;transition:border-color .15s ease}.filter-select-wrap:focus-within,.search-input-wrap:focus-within{border-color:#0284c7;background:#ffffff}.filter-select-wrap select,.search-input-wrap input{border:none;background:transparent;outline:none;font-size:13.5px;font-weight:600;color:var(--text)}.toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.view-mode-toggle{display:flex;padding:3px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px}.view-mode-toggle button{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border:none;border-radius:6px;background:transparent;color:#64748b;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s ease}.view-mode-toggle button.active{background:#ffffff;color:#0f172a;box-shadow:0 1px 4px rgba(0,0,0,.1)}.action-btn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 16px;border:1px solid #cbd5e1;border-radius:8px;background:#ffffff;color:#0f172a;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s ease}.action-btn.download-btn{background:#0284c7;color:#ffffff;border-color:#0284c7;box-shadow:0 2px 6px rgba(2,132,199,.25)}.action-btn.download-btn:hover{background:#0369a1}.action-btn.spin svg{animation:spin 1s linear infinite}.auto-refresh-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#475569;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.spreadsheet-card{padding:0;overflow:hidden;border-radius:14px}.spreadsheet-title-row{padding:18px 24px;border-bottom:1px solid var(--border);background:#ffffff}.spreadsheet-title-row h2{font-size:18px;font-weight:850;margin:0 0 2px}.spreadsheet-title-row span{font-size:13px;color:var(--muted)}.spreadsheet-table-container{max-width:100%;max-height:640px;overflow:auto;position:relative}.spreadsheet-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.spreadsheet-table th{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:#f8fafc;padding:13px 16px;border-bottom:2px solid #e2e8f0;font-size:11px;font-weight:800;text-transform:uppercase;color:#475569;white-space:nowrap}.spreadsheet-table td{padding:12px 16px;border-bottom:1px solid #f1f5f9;white-space:nowrap}.sticky-col{position:-webkit-sticky;position:sticky;background:#ffffff;z-index:5}.spreadsheet-table th.sticky-col{z-index:15;background:#f1f5f9}.nim-col{left:0;min-width:140px}.name-col{left:140px;min-width:230px;border-right:2px solid #e2e8f0;box-shadow:4px 0 8px -2px rgba(0,0,0,.06)}.committed-row:hover{background:#f0fdf4}.uncommitted-row{background:#fffdf0}.uncommitted-row:hover{background:#fef9c3}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;color:#0f172a}.paket-badge{display:inline-flex;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:800;background:#dbeafe;color:#1d4ed8}.paket-badge.paket-1{background:#dbeafe;color:#1e40af}.paket-badge.paket-2{background:#e0e7ff;color:#3730a3}.paket-badge.paket-3{background:#fae8ff;color:#86198f}.paket-badge.paket-4{background:#ffe4e6;color:#9f1239}.paket-badge.paket-5{background:#ffedd5;color:#9a3412}.paket-badge.individu{background:#f8fafc;color:#475569;border:1px solid #cbd5e1}.uncommitted-badge{display:inline-flex;font-size:11px;color:#64748b}.class-pill,.uncommitted-badge{padding:4px 10px;border-radius:6px;font-weight:700;background:#f1f5f9}.class-pill{display:inline-block;color:#334155;font-size:12px}.course-rosters-card{padding:24px;display:flex;flex-direction:column;gap:24px;border-radius:14px;background:#ffffff}.course-tabs-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;width:100%}.course-tab-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:64px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;cursor:pointer;transition:all .15s ease}.course-tab-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.course-tab-btn.active{background:#0284c7;color:#ffffff;border-color:#0284c7;box-shadow:0 4px 12px rgba(2,132,199,.25)}.tab-course-name{font-size:13px;font-weight:800;line-height:1.3;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tab-course-code{font-size:11px;font-weight:700;opacity:.8;font-family:ui-monospace,monospace;margin-top:3px}.course-sections-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));grid-gap:20px;gap:20px}.section-roster-box{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#ffffff;box-shadow:0 2px 8px rgba(0,0,0,.03)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.section-header h3{margin:0;font-size:16px;font-weight:850;color:#0f172a}.section-group-sub{display:block;font-size:12px;color:#64748b;margin-top:2px}.section-capacity-badge{font-size:12px;padding:5px 12px;border-radius:999px;background:#e2e8f0;font-weight:700;color:#334155}.section-students-table-wrap{min-height:140px;max-height:320px;overflow-y:auto}.roster-table{width:100%;border-collapse:collapse;font-size:13px}.roster-table th{position:-webkit-sticky;position:sticky;top:0;background:#f1f5f9;padding:10px 14px;font-size:11px;font-weight:800;color:#475569;text-transform:uppercase;border-bottom:1px solid #e2e8f0;text-align:left}.roster-table td{padding:11px 14px;border-bottom:1px solid #f1f5f9;color:#334155;text-align:left}.roster-table tr:hover{background:#f8fafc}.empty-roster-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:36px 16px;color:#64748b;font-size:13px;font-weight:600;text-align:center;background:#fafafa}.empty-roster-state .empty-icon{color:#94a3b8}.paket-courses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:8px;gap:8px;margin-top:14px;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.paket-notice-banner{display:flex;align-items:center;gap:9px;margin-top:12px;padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.45}.paket-notice-banner.warning{background:#fffbebf5;border:1.5px solid #fde68a;color:#92400e}.paket-notice-banner svg{flex:0 0 auto;color:#d97706}.paket-course-chip{display:flex;flex-direction:column;gap:3px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.chip-course-title{font-size:12px;font-weight:700;color:#475569;line-height:1.2}.chip-class-code{font-size:14px;font-weight:850;color:#0284c7}.paket-card-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px dashed #e2e8f0}.preview-schedule-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:700;background:#e0f2fe;color:#0284c7;border:1px solid #bae6fd;border-radius:6px;text-decoration:none;transition:all .15s ease}.preview-schedule-btn:hover{background:#0284c7;color:#ffffff;border-color:#0284c7}.advanced-meetings-details{font-size:12px;color:#64748b}.advanced-meetings-details summary{cursor:pointer;font-weight:600;-webkit-user-select:none;-moz-user-select:none;user-select:none}.schedule-visualizer-shell{display:flex;flex-direction:column;gap:24px;width:100%}.schedule-header-card{padding:24px;background:#ffffff;border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 8px rgba(0,0,0,.03)}.schedule-header-intro{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.schedule-header-intro h2{font-size:20px;font-weight:850;margin:0 0 4px}.schedule-header-intro p{margin:0;font-size:13.5px;color:var(--muted)}.take-paket-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:#0284c7;color:#ffffff;font-size:13.5px;font-weight:800;border-radius:8px;text-decoration:none;box-shadow:0 4px 12px rgba(2,132,199,.25);transition:background .15s ease}.take-paket-btn:hover{background:#0369a1}.committed-status-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#dcfce7;color:#15803d;font-size:13px;font-weight:800;border-radius:999px;border:1px solid #bbf7d0}.schedule-paket-tabs{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.schedule-tab-btn{justify-content:center;padding:12px 16px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;transition:all .15s ease}.schedule-tab-btn:hover{background:#f1f5f9;border-color:#94a3b8}.schedule-tab-btn.active{background:#0284c7;color:#ffffff;border-color:#0284c7;box-shadow:0 4px 12px rgba(2,132,199,.25)}.tab-main-info{display:flex;align-items:center;justify-content:space-between;gap:8px}.tab-main-info strong{font-size:15px;font-weight:850}.badge-committed{font-size:10px;padding:2px 6px;border-radius:4px;background:#dcfce7;color:#16a34a;font-weight:800}.schedule-tab-btn.active .badge-committed{background:#ffffff;color:#15803d}.schedule-tab-btn small{font-size:11.5px;opacity:.8;margin-top:2px}.timetable-card{padding:24px;border-radius:14px;background:#ffffff}.timetable-legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;padding:12px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;font-size:12.5px}.legend-title{font-weight:800;color:#475569}.legend-items{display:flex;flex-wrap:wrap;gap:10px}.legend-item{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-weight:700;font-size:11.5px}.legend-item.blue{background:#dbeafe;color:#1e40af}.legend-item.indigo{background:#e0e7ff;color:#3730a3}.legend-item.emerald{background:#d1fae5;color:#065f46}.legend-item.purple{background:#f3e8ff;color:#6b21a8}.legend-item.amber{background:#fef3c7;color:#92400e}.legend-item.rose{background:#ffe4e6;color:#9f1239}.timetable-grid-wrapper{display:flex;flex-direction:column;border:1px solid #cbd5e1;border-radius:12px;overflow:hidden}.timetable-header{display:grid;grid-template-columns:75px repeat(5,1fr);background:#f1f5f9;border-bottom:2px solid #cbd5e1;font-weight:850;text-align:center;color:#334155;font-size:13px}.time-corner-cell{padding:12px 8px;background:#e2e8f0}.day-header-cell{padding:12px 8px;border-left:1px solid #cbd5e1}.timetable-body{display:grid;grid-template-columns:75px repeat(5,1fr);height:620px;position:relative;background:#ffffff}.time-axis{display:flex;flex-direction:column;justify-content:space-between;background:#f8fafc;border-right:1px solid #cbd5e1;font-size:11px;font-weight:700;color:#64748b;padding:6px 0;text-align:center;font-family:ui-monospace,monospace}.day-column{position:relative;border-left:1px solid #cbd5e1;height:100%}.grid-hour-line{position:absolute;left:0;right:0;height:1px;background:#f1f5f9;border-top:1px dashed #e2e8f0}.course-event-block{position:absolute;left:5px;right:5px;border-radius:8px;padding:8px 10px;border:1px solid rgba(0,0,0,.12);box-shadow:0 2px 6px rgba(0,0,0,.06);overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,z-index .15s ease;cursor:pointer;z-index:10}.course-event-block:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 16px rgba(0,0,0,.15);z-index:30}.event-content{display:flex;flex-direction:column;gap:2px;height:100%}.event-course-name{font-size:12px;font-weight:850;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-class-badge{font-size:11px;font-weight:800;opacity:.9}.event-meta-time{display:flex;align-items:center;gap:4px;font-family:ui-monospace,monospace}.event-meta-time,.event-room{font-size:10px;font-weight:700;opacity:.85}.event-room{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:220px;padding:10px 12px;background:#0f172a;color:#ffffff;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:11.5px;display:flex;flex-direction:column;gap:3px;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:50}.course-event-block:hover .event-tooltip{opacity:1}.event-tooltip strong{font-size:12.5px;color:#38bdf8}.objective-time-cell{display:flex;flex-direction:column;gap:2px}.objective-time-cell strong{font-size:13px;color:#0f172a}.relative-offset-cell{display:flex;align-items:center;gap:6px}.relative-time-pill{display:inline-block;padding:3px 8px;background:#f1f5f9;border-radius:6px;font-size:12px;font-weight:700;font-family:ui-monospace,monospace;color:#475569}.activity-dashboard-shell{display:flex;flex-direction:column;gap:20px}.activity-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:16px;gap:16px}.stat-card{gap:16px;padding:16px 20px}.stat-card,.stat-icon{display:flex;align-items:center}.stat-icon{width:44px;height:44px;border-radius:12px;justify-content:center;flex-shrink:0}.stat-icon.blue{background:#e0f2fe;color:#0284c7}.stat-icon.green{background:#dcfce7;color:#15803d}.stat-icon.purple{background:#f3e8ff;color:#7e22ce}.stat-info{display:flex;flex-direction:column;gap:2px}.stat-info small{font-size:12px;color:#64748b;font-weight:600}.stat-info strong{font-size:18px;color:#0f172a;font-weight:800}.activity-notice{font-size:13.5px;color:#475569;line-height:1.5;margin-bottom:16px;background:#f8fafc;padding:12px 16px;border-radius:8px;border-left:4px solid #0284c7}.student-identity-cell{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;background:#e2e8f0;color:#475569;display:flex;align-items:center;justify-content:center;flex-shrink:0}.student-identity-cell div{display:flex;flex-direction:column;gap:1px}.student-identity-cell strong{font-size:13.5px;color:#0f172a}.nim-badge{display:inline-block;padding:2px 8px;background:#f1f5f9;border-radius:6px;font-size:12px;font-weight:700;color:#334155}.anti-spam-cell{display:flex;align-items:center;gap:8px}.activity-count-badge{font-size:12px;font-weight:700;color:#0f172a;background:#e2e8f0;padding:2px 8px;border-radius:6px}.spam-throttled-pill{display:inline-flex;align-items:center;gap:4px;color:#c2410c;background:#ffedd5}.spam-normal-pill,.spam-throttled-pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}.spam-normal-pill{color:#15803d;background:#dcfce7}.offline-pill{background:#f1f5f9;color:#64748b}.standalone-course-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow)}.standalone-tag{font-size:11px;font-weight:750;color:var(--accent);background:var(--blue-soft);padding:4px 10px;border-radius:999px;text-transform:uppercase}.standalone-desc{font-size:13px;color:#53627a;margin-top:6px;margin-bottom:12px;line-height:1.45}.standalone-classes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px;margin-top:10px}.standalone-class-item{background:#f8fbff;padding:12px 14px;border-radius:12px;border:1px solid #dbeafe;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.standalone-class-info{display:flex;flex-direction:column;gap:2px}.standalone-class-item strong{font-size:13.5px;color:#0f172a}.standalone-class-item span{font-size:12px;color:#475569}.standalone-class-item .seats-indicator{font-size:11.5px;font-weight:700;color:#0284c7;margin-top:2px}.standalone-take-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#0284c7;color:#ffffff;font-size:13px;font-weight:600;padding:8px 14px;border-radius:6px;border:none;cursor:pointer;white-space:nowrap;transition:background .15s ease,transform .1s ease}.visualizer-section-title{margin-top:12px;margin-bottom:6px;font-size:13px;color:#334155}.reset-selection-btn:hover{background:#f1f5f9!important;color:#1e293b!important}.standalone-take-btn:disabled{opacity:.65;cursor:not-allowed;transform:none}.standalone-take-btn.committed{background:#15803d;color:#ffffff}.course-color-blue{background:#dbeafe;color:#1e40af;border-color:#93c5fd}.course-color-indigo{background:#e0e7ff;color:#3730a3;border-color:#a5b4fc}.course-color-emerald{background:#d1fae5;color:#065f46;border-color:#6ee7b7}.course-color-purple{background:#f3e8ff;color:#6b21a8;border-color:#d8b4fe}.course-color-amber{background:#fef3c7;color:#92400e;border-color:#fde68a}.course-color-rose{background:#ffe4e6;color:#9f1239;border-color:#fca5a5}.course-color-gray{background:#f1f5f9;color:#334155;border-color:#cbd5e1}@media (max-width:768px){.allocations-view-shell{gap:16px}.allocations-stats-grid{grid-template-columns:1fr;gap:12px}.stat-card{padding:14px 16px;border-radius:12px}.stat-value{font-size:20px}.allocations-toolbar{flex-direction:column;align-items:stretch;gap:12px;padding:14px;border-radius:12px}.toolbar-search-filter{flex-direction:column;align-items:stretch;width:100%;gap:10px}.filter-select-wrap,.filter-select-wrap select,.search-input-wrap,.search-input-wrap input{width:100%}.toolbar-actions{flex-direction:column;align-items:stretch;width:100%;gap:10px}.view-mode-toggle{width:100%;display:grid;grid-template-columns:1fr 1fr}.view-mode-toggle button{justify-content:center;padding:0 8px;font-size:12px}.action-btn{width:100%;justify-content:center}.auto-refresh-toggle{justify-content:center;padding:4px 0}.spreadsheet-title-row{padding:14px 16px}.spreadsheet-title-row h2{font-size:16px}.sticky-col{position:static!important;box-shadow:none!important}.name-col{border-right:1px solid #e2e8f0}.spreadsheet-table-container{max-height:520px}.spreadsheet-table td,.spreadsheet-table th{padding:10px 12px;font-size:12px}.course-rosters-card{padding:14px;gap:16px}.course-tabs-nav{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.course-tab-btn{min-height:54px;padding:8px 10px}.tab-course-name{font-size:12px}.course-sections-grid{grid-template-columns:1fr;gap:14px}.section-students-table-wrap{overflow-x:auto}.roster-table{min-width:500px}}.schedule-paket-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px;margin-top:10px}.schedule-tab-btn{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:8px;padding:14px 16px;border-radius:12px;border:1px solid var(--border,#cbd5e1);background:#ffffff;color:#1e293b;text-align:left;cursor:pointer;transition:all .2s ease}.schedule-tab-btn:hover{border-color:var(--accent,#0284c7);box-shadow:0 4px 12px rgba(2,132,199,.08)}.schedule-tab-btn.active{background:#0284c7!important;border-color:#0284c7!important;color:#ffffff!important;box-shadow:0 4px 14px rgba(2,132,199,.25)}.schedule-tab-btn.active small,.schedule-tab-btn.active strong{color:#ffffff!important}.schedule-tab-btn.active .badge-committed{background:#ffffff!important;color:#0284c7!important}.schedule-tab-btn strong{font-size:13px;font-weight:700;line-height:1.4;color:inherit}.schedule-tab-btn small{font-size:12px;color:#64748b}.session-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.session-gate-card{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%;max-width:440px;padding:32px 28px;border-radius:20px;background:#ffffff;border:1px solid rgba(226,232,240,.8);box-shadow:0 20px 40px rgba(0,0,0,.2);text-align:center}.session-gate-copy p{margin:0 0 4px;color:#0284c7;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.session-gate-copy h2{margin:0 0 8px;color:#0f172a!important;font-size:22px;font-weight:800;line-height:1.3}.session-gate-copy span{display:block;color:#475569!important;font-size:14px;line-height:1.5}.session-gate-captcha{display:flex;justify-content:center;align-items:center;min-height:65px;margin:8px 0}.session-gate-status{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#334155;padding:8px 14px;background:#f8fafc;border-radius:20px;border:1px solid #e2e8f0}.session-gate-status .dot{width:8px;height:8px;border-radius:50%;background:#22c55e}.session-gate-status .dot.offline{background:#ef4444}.delete-confirm-btn{background:#fef2f2!important;border-color:#fca5a5!important;color:#b91c1c!important;animation:pulse-delete .6s ease-in-out}@keyframes pulse-delete{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.krs-selection-heading button{min-height:44px}.toast-container{position:fixed;bottom:24px;right:24px;z-index:10000;display:flex;flex-direction:column;gap:10px;max-width:420px;width:calc(100vw - 32px);pointer-events:none}.toast-card{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:12px;background:#ffffff;box-shadow:0 10px 25px -5px rgba(0,0,0,.15),0 4px 6px -2px rgba(0,0,0,.05);border:1px solid #e2e8f0;animation:toast-slide-up .25s cubic-bezier(.16,1,.3,1)}@keyframes toast-slide-up{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-success{border-left:4px solid #16a34a}.toast-error,.toast-unavailable{border-left:4px solid #dc2626}.toast-info{border-left:4px solid #2563eb}.toast-icon{flex-shrink:0;margin-top:2px}.toast-icon .text-success{color:#16a34a}.toast-icon .text-error{color:#dc2626}.toast-icon .text-info{color:#2563eb}.toast-body{flex:1 1;min-width:0}.toast-title{display:block;font-size:.9rem;font-weight:700;color:#0f172a;margin-bottom:2px}.toast-message{margin:0;font-size:.85rem;line-height:1.4;color:#334155;word-break:break-word}.toast-receipt-link{display:inline-flex;align-items:center;gap:4px;margin-top:8px;font-size:.78rem;font-weight:600;color:#0284c7;text-decoration:underline}.toast-close-btn{flex-shrink:0;background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.toast-close-btn:hover{background:#f1f5f9;color:#475569}.mode-switcher-card{margin-bottom:24px;display:flex;flex-direction:column;gap:16px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #cbd5e1}.mode-switcher-intro h3{font-size:1.15rem;font-weight:700;color:#0f172a;margin-bottom:4px}.mode-switcher-intro p{font-size:.88rem;color:#475569}.mode-toggle-group{display:flex;gap:12px;flex-wrap:wrap}.mode-toggle-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:10px;font-size:.92rem;font-weight:600;border:1.5px solid #cbd5e1;background:#ffffff;color:#334155;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.05)}.mode-toggle-btn:hover{border-color:#0284c7;color:#0284c7;background:#f0f9ff}.mode-toggle-btn.active{background:#0284c7;color:#ffffff;border-color:#0284c7;box-shadow:0 4px 12px rgba(2,132,199,.25)}.satuan-controls-wrapper{display:flex;flex-direction:column;gap:24px;margin-bottom:24px}.satuan-selector-card{border:1px solid #e2e8f0}.satuan-header-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid #e2e8f0}.satuan-header-row h2{font-size:1.15rem;font-weight:700;color:#0f172a;margin-bottom:4px}.satuan-header-row p{font-size:.88rem;color:#64748b}.satuan-preset-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.preset-label{font-size:.82rem;font-weight:600;color:#475569}.preset-btn{padding:6px 12px;border-radius:6px;font-size:.8rem;font-weight:600;border:1px solid #cbd5e1;background:#f8fafc;color:#334155;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:4px}.preset-btn:hover{background:#e2e8f0;color:#0f172a}.claim-status.approved{background:#def7ec;border-color:#31C48D;color:#03543F}.unlock-claim-wrapper{display:flex;flex-direction:column;gap:10px;margin-top:16px}.unlock-claim-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:10px;border:1.5px solid #cbd5e1;background:#ffffff;color:#334155;font-weight:700;font-size:14px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px rgba(0,0,0,.05)}.unlock-claim-btn:hover:not(:disabled){background:#fef2f2;color:#b91c1c;border-color:#fca5a5;box-shadow:0 4px 12px rgba(220,38,38,.15)}.unlock-claim-btn:disabled{opacity:.6;cursor:not-allowed}.preset-btn.reset{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.preset-btn.reset:hover{background:#fee2e2;color:#991b1b}.course-groups-container{display:flex;flex-direction:column;gap:20px}.course-group-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:16px}.course-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.course-group-header strong{font-size:.95rem;color:#1e293b}.selected-counter{font-size:.78rem;font-weight:600;color:#0284c7;background:#e0f2fe;padding:2px 8px;border-radius:999px}.section-buttons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:10px;gap:10px}.section-select-btn{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:8px;border:1.5px solid #cbd5e1;background:#ffffff;text-align:left;cursor:pointer;transition:all .2s ease}.section-select-btn:hover{border-color:#0284c7;box-shadow:0 2px 6px rgba(2,132,199,.15)}.section-select-btn.selected{border-color:#0284c7;background:#f0f9ff;box-shadow:0 2px 8px rgba(2,132,199,.2)}.section-select-btn.has-conflict{border-color:#ef4444!important;background:#fef2f2!important;animation:pulseConflict 2s infinite}@keyframes pulseConflict{0%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}70%{box-shadow:0 0 0 6px rgba(239,68,68,0)}to{box-shadow:0 0 0 0 rgba(239,68,68,0)}}.section-select-btn.is-overcapacity{border-color:#f97316}.section-btn-top{display:flex;justify-content:space-between;align-items:center}.class-code-badge{font-weight:700;font-size:.9rem;color:#0f172a}.component-tag{font-size:.72rem;font-weight:600;color:#475569;background:#e2e8f0;padding:1px 6px;border-radius:4px}.check-icon{color:#0284c7}.section-btn-schedule{font-size:.82rem;font-weight:600;color:#334155}.section-btn-capacity{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:#64748b;margin-top:4px;padding-top:4px;border-top:1px dashed #cbd5e1}.overcap-warn{color:#dc2626;font-weight:700}.normal-cap{color:#0284c7;font-weight:600}.simulation-panel-card{border:1px solid #cbd5e1;background:#fafafa}.simulation-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.sim-title-group{display:flex;align-items:center;gap:12px}.sim-icon{color:#0284c7}.sim-title-group h3{font-size:1.1rem;font-weight:700;color:#0f172a}.sim-title-group p{font-size:.85rem;color:#64748b}.sim-batch-control{display:flex;align-items:center;gap:10px;background:#ffffff;padding:8px 16px;border-radius:8px;border:1px solid #cbd5e1}.sim-batch-control label{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700;color:#334155}.batch-input-field{width:70px;padding:4px 8px;border-radius:6px;border:1px solid #cbd5e1;font-size:.9rem;font-weight:700;text-align:center;color:#0284c7}.distribute-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;border-radius:6px;background:#0284c7;color:#ffffff;font-size:.78rem;font-weight:600;border:none;cursor:pointer;transition:background .15s}.distribute-btn:hover{background:#0369a1}.simulation-inputs-grid{display:flex;flex-direction:column;gap:14px}.sim-course-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#ffffff;padding:10px 14px;border-radius:8px;border:1px solid #e2e8f0;flex-wrap:wrap}.sim-course-label{font-size:.88rem;font-weight:700;color:#1e293b;min-width:180px}.sim-sections-flex{display:flex;gap:10px;flex-wrap:wrap;flex:1 1}.sim-input-box{display:flex;flex-direction:column;gap:4px;background:#f8fafc;border:1px solid #cbd5e1;padding:6px 10px;border-radius:6px;min-width:90px;transition:border-color .15s,background .15s}.sim-input-box.overcapacity{background:#fef2f2;border-color:#ef4444}.sim-box-header{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}.sim-box-header strong{color:#0f172a}.sim-box-header small{color:#64748b}.sim-count-input{width:100%;padding:2px 4px;border-radius:4px;border:1px solid #cbd5e1;font-size:.85rem;background:#ffffff}.sim-count-input,.sim-over-tag{font-weight:700;text-align:center}.sim-over-tag{font-size:.7rem;color:#dc2626}.conflict-alert-banner{background:#fef2f2;border:2px solid #ef4444;border-radius:12px;padding:16px 20px;margin-bottom:24px;box-shadow:0 4px 14px rgba(239,68,68,.15)}.conflict-banner-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.conflict-icon{color:#dc2626;flex-shrink:0}.conflict-banner-header h3{font-size:1.05rem;font-weight:800;color:#991b1b;margin-bottom:2px}.conflict-banner-header p{font-size:.85rem;color:#7f1d1d}.conflict-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.conflict-list li{font-size:.88rem;color:#991b1b;background:#ffffff;padding:8px 12px;border-radius:6px;border-left:4px solid #ef4444;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vs-tag{font-size:.72rem;font-weight:800;color:#ffffff;background:#dc2626;padding:2px 6px;border-radius:4px}.calendar-event.conflict{background:#fef2f2!important;border:2px solid #ef4444!important;color:#991b1b!important;box-shadow:0 0 10px rgba(239,68,68,.4)!important;animation:calendarConflictPulse 1.5s infinite alternate}@keyframes calendarConflictPulse{0%{transform:scale(1)}to{transform:scale(1.02)}}.calendar-event.conflict strong{color:#991b1b!important}.calendar-event.conflict span{color:#7f1d1d!important}.event-conflict-badge{font-size:.7rem;font-weight:700;color:#ffffff;background:#dc2626;padding:2px 4px;border-radius:4px;margin-top:4px;display:flex;align-items:center;gap:3px}.calendar-event.overcapacity-event{border-right:4px solid #f97316!important}.event-overcap-badge{font-size:.7rem;font-weight:700;color:#9a3412;background:#ffedd5;padding:1px 4px;border-radius:3px;margin-top:2px}.legend-pills .conflict-legend{background:#fef2f2;color:#dc2626;border:1px solid #ef4444}.legend-pills .sim-active-legend{background:#f0fdf4;color:#16a34a;border:1px solid #22c55e;font-weight:700}.satuan-toolbar-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;background:var(--surface-card);border:1px solid var(--border-color);border-radius:12px;margin-top:16px;margin-bottom:16px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.satuan-toolbar-label{font-size:.85rem;font-weight:700;color:var(--text-secondary);margin-right:4px}.satuan-toolbar-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;border:1px solid var(--border-color);background:var(--surface-card);color:var(--text-primary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.satuan-toolbar-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.satuan-toolbar-btn.active{background:#0284c7;color:#ffffff;border-color:#0284c7;font-weight:700;box-shadow:0 4px 12px rgba(2,132,199,.25)}.satuan-toolbar-btn .active-badge{background:#22c55e;color:#ffffff;font-size:.72rem;font-weight:800;padding:2px 6px;border-radius:4px;text-transform:uppercase}.satuan-toolbar-btn.active .active-badge{background:#ffffff;color:#0284c7}@media (max-width:640px){.toast-container{bottom:16px;right:16px;left:16px;width:auto}}.allocations-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:16px;gap:16px;margin:16px 0 24px;width:100%}.allocations-stats-grid .stat-card{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;text-align:left!important;background:#ffffff!important;border:1px solid #e2e8f0!important;border-radius:14px!important;padding:18px 20px!important;gap:16px!important;box-shadow:0 4px 14px rgba(15,23,42,.05)!important;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.allocations-stats-grid .stat-card:hover{border-color:#cbd5e1!important;transform:translateY(-2px);box-shadow:0 6px 20px rgba(15,23,42,.08)!important}.allocations-stats-grid .stat-card>div{display:flex;flex-direction:column;align-items:flex-start!important;justify-content:center;text-align:left!important;width:auto}.allocations-stats-grid .stat-card .stat-icon{width:44px;height:44px;padding:10px;border-radius:12px;margin:0;flex-shrink:0}.allocations-stats-grid .stat-card .stat-icon.text-blue{color:#0284c7!important;background:#e0f2fe!important}.allocations-stats-grid .stat-card .stat-icon.text-green{color:#059669!important;background:#d1fae5!important}.allocations-stats-grid .stat-card .stat-icon.text-amber{color:#d97706!important;background:#fef3c7!important}.allocations-stats-grid .stat-card .stat-label{font-size:.8rem!important;font-weight:700!important;color:#64748b!important;text-transform:uppercase!important;letter-spacing:.04em!important;text-align:left!important;display:block}.allocations-stats-grid .stat-card .stat-value{font-size:1.75rem!important;font-weight:850!important;color:#0f172a!important;line-height:1.15;text-align:left!important;display:block;margin-top:2px}.summary-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:16px;gap:16px;margin:16px 0;width:100%}.summary-stats-grid .stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--bg-card,#0f172a);border:1px solid var(--border-color,#334155);border-radius:12px;padding:20px 16px;gap:8px;box-shadow:0 4px 12px rgba(0,0,0,.12);transition:transform .2s ease,border-color .2s ease}.summary-stats-grid .stat-card:hover{border-color:#475569;transform:translateY(-2px)}.summary-stats-grid .stat-card>div{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%}.summary-stats-grid .stat-card .stat-icon{width:44px;height:44px;padding:10px;border-radius:12px;margin-bottom:4px;flex-shrink:0}.summary-stats-grid .stat-card .stat-icon.text-blue{color:#38bdf8;background:rgba(56,189,248,.12)}.summary-stats-grid .stat-card .stat-icon.text-green{color:#34d399;background:rgba(52,211,153,.12)}.summary-stats-grid .stat-card .stat-icon.text-amber{color:#fbbf24;background:rgba(251,191,36,.12)}.summary-stats-grid .stat-card .stat-label{font-size:.82rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;text-align:center;display:block;width:100%}.summary-stats-grid .stat-card .stat-value{font-size:2rem;font-weight:800;color:#f8fafc;line-height:1.1;text-align:center;display:block;width:100%;margin-top:4px}.summary-stats-grid .stat-card.live-remaining-card .stat-value{color:#38bdf8}.summary-stats-grid .stat-card.success .stat-value{color:#34d399}.summary-stats-grid .stat-card.warning .stat-value{color:#fbbf24}.summary-stats-grid .stat-card.backtrack .stat-value{color:#c084fc}.activity-stats-grid .stat-card{display:flex!important;flex-direction:row!important;align-items:center!important;gap:14px!important;background:#ffffff!important;border:1px solid var(--border,#cbd5e1)!important;border-radius:14px!important;padding:18px 20px!important;box-shadow:0 4px 12px rgba(15,23,42,.06)!important;text-align:left!important}.activity-stats-grid .stat-info{display:flex!important;flex-direction:column!important;gap:3px!important;text-align:left!important}.activity-stats-grid .stat-info small{color:#64748b!important;font-size:.8rem!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.03em!important;display:block!important}.activity-stats-grid .stat-info strong{color:#0f172a!important;font-size:1.35rem!important;font-weight:850!important;line-height:1.2!important;display:block!important}.activity-stats-grid .stat-info strong.text-success{color:#059669!important}.auto-simulator-panel{padding:24px!important;display:flex;flex-direction:column;gap:20px}.sim-dashboard-body{display:grid;grid-template-columns:1fr 340px;grid-gap:20px;gap:20px;margin-top:8px}.sim-tree-tracker{background:#0f172a;border:1px solid #334155;border-radius:12px;padding:18px 16px!important;display:flex;flex-direction:column;gap:12px;box-sizing:border-box}.sim-tree-tracker h4{margin:0;font-size:.9rem;font-weight:700;color:#38bdf8;letter-spacing:.02em}.tree-depth-nodes{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow-y:auto;padding-right:4px}.tree-node{display:flex;align-items:center;gap:14px!important;background:#1e293b;border:1px solid #334155;border-radius:10px;padding:12px 14px!important;transition:all .2s ease;box-sizing:border-box}.tree-node.completed{background:rgba(16,185,129,.14)!important;border-color:#10b981!important}.tree-node.exploring{background:rgba(56,189,248,.16)!important;border-color:#38bdf8!important;box-shadow:0 0 12px rgba(56,189,248,.35)}.node-num{width:30px;height:30px;border-radius:50%;background:#334155;color:#f8fafc;font-weight:800;font-size:.82rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tree-node.completed .node-num{background:#10b981;color:#ffffff}.tree-node.exploring .node-num{background:#38bdf8;color:#0f172a}.node-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1}.node-info strong{font-size:.85rem;font-weight:700;color:#f8fafc;line-height:1.3;word-break:break-word}.node-info small{font-size:.76rem;color:#94a3b8;line-height:1.2}.tree-node.completed .node-info small{color:#34d399;font-weight:600}.inline-icon{display:inline-block;vertical-align:-1px;flex-shrink:0}.calendar-event-lecturer-snippet{font-size:8px;line-height:1.1;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.krs-courses-enrolled-list{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:8px}.krs-enrolled-item{background:rgba(241,245,249,.7);border:1px solid var(--border);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:5px}.krs-course-title-line{display:flex;justify-content:space-between;align-items:center;gap:8px}.course-name-text{font-size:.88rem;font-weight:700;color:var(--text)}.class-badge-pill{font-size:.75rem;font-weight:700;background:var(--blue-soft);color:var(--accent-strong);padding:2px 8px;border-radius:6px;border:1px solid rgba(45,140,255,.2)}.krs-sessions-detail-list{display:flex;flex-direction:column;gap:3px}.krs-session-detail-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.78rem;color:#475569}.session-component-badge{font-weight:700;font-size:.72rem;background:#e2e8f0;color:#334155;padding:1px 5px;border-radius:4px}.session-time-text{color:#64748b;display:flex;align-items:center;gap:3px}.session-room-badge{color:#0369a1;font-weight:600;background:#e0f2fe}.session-lecturer-badge,.session-room-badge{padding:1px 6px;border-radius:4px;display:flex;align-items:center;gap:3px}.session-lecturer-badge{color:#4338ca;font-weight:500;background:#e0e7ff;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-btn-location{font-size:.74rem;color:#38bdf8;font-weight:600}.section-btn-lecturer,.section-btn-location{display:flex;align-items:center;gap:4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-btn-lecturer{font-size:.72rem;color:#cbd5e1;opacity:.88}.section-meta-strip{display:flex;flex-wrap:wrap;gap:6px;padding:6px 12px 8px;background:rgba(15,23,42,.03);border-bottom:1px solid var(--border)}.section-meeting-badge{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.78rem;background:#f8fafc;border:1px solid #e2e8f0;padding:3px 8px;border-radius:6px}.meeting-code-tag{font-weight:750;background:#0ea5e9;color:#ffffff;padding:1px 5px;border-radius:4px;font-size:.72rem}.meeting-time-tag{color:#64748b;display:inline-flex;align-items:center;gap:3px}.meeting-room-tag{font-weight:650;color:#0284c7;background:#e0f2fe}.meeting-lecturer-tag,.meeting-room-tag{padding:1px 6px;border-radius:4px;display:inline-flex;align-items:center;gap:3px}.meeting-lecturer-tag{color:#4f46e5;background:#eef2ff;font-weight:500}.meeting-modal-backdrop{background:rgba(15,23,42,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;animation:modalBackdropFadeIn .2s ease-out}@keyframes modalBackdropFadeIn{0%{opacity:0}to{opacity:1}}.meeting-modal-card{width:min(100%,540px);background:#0f172a;color:#f8fafc;border:1px solid rgba(56,189,248,.35);border-radius:16px;box-shadow:0 20px 45px rgba(0,0,0,.5),0 0 30px rgba(56,189,248,.15);animation:modalScaleIn .22s cubic-bezier(.16,1,.3,1)}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.meeting-modal-header{padding:18px 20px;background:#0f172a;border-bottom:1px solid rgba(255,255,255,.08)}.meeting-course-code{font-size:.78rem;color:#38bdf8;letter-spacing:.05em}.meeting-modal-title h3{font-size:1.15rem;font-weight:750;color:#ffffff}.meeting-modal-close{background:rgba(255,255,255,.08);border:none;color:#94a3b8;display:grid;place-items:center}.meeting-modal-close:hover{background:rgba(239,68,68,.2);color:#f87171}.meeting-modal-body{padding:20px}.info-box{background:rgba(30,41,59,.6);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.info-box.full-width{grid-column:1/-1}.info-box.highlight-room{background:#0f172a;border:1px solid #0284c7}.info-box.highlight-lecturer{background:#0f172a;border:1px solid #475569}.info-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:#94a3b8}.info-value{display:flex;align-items:center;gap:8px;font-size:.88rem;color:#f1f5f9}.class-badge-lg{background:#38bdf8;color:#0f172a;font-size:.82rem}.room-name-highlight{font-size:1.05rem;color:#38bdf8}.dosen-list-box{align-items:flex-start}.dosen-item-name{font-size:.88rem;line-height:1.45;color:#e0e7ff;font-weight:500}.text-accent{color:#38bdf8}.real-krs-badge{display:inline-flex;align-items:center;gap:4px;background:#ecfdf5;color:#059669;border:1px solid rgba(16,185,129,.28);font-size:.72rem;font-weight:750;padding:2px 7px;border-radius:9999px;letter-spacing:.02em}.krs-header-right{display:flex;align-items:center;gap:8px}.view-mode-pills{display:flex;background:#f1f5f9;padding:3px;border-radius:8px;border:1px solid #e2e8f0;gap:2px}.mode-pill-btn{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-weight:700;padding:4px 9px;border-radius:6px;border:none;background:transparent;color:#64748b;cursor:pointer;transition:all .15s ease}.mode-pill-btn.active{background:#ffffff;color:#0284c7;box-shadow:0 1px 3px rgba(0,0,0,.08)}.meeting-modal-backdrop{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:16px;animation:modalFadeIn .2s cubic-bezier(.16,1,.3,1)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.meeting-modal-card{width:100%;max-width:520px;background:#ffffff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 25px 50px -12px rgba(15,23,42,.25),0 0 0 1px rgba(15,23,42,.05);overflow:hidden;animation:modalSlideUp .25s cubic-bezier(.16,1,.3,1)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.meeting-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.meeting-modal-title{display:flex;flex-direction:column;gap:4px}.meeting-course-code{display:inline-block;font-size:11px;font-weight:800;color:#0284c7;text-transform:uppercase;letter-spacing:.04em}.meeting-modal-title h3{margin:0;font-size:18px;font-weight:800;color:#1e293b;line-height:1.3}.meeting-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid #e2e8f0;background:#ffffff;color:#64748b;cursor:pointer;transition:all .15s ease;flex-shrink:0}.meeting-modal-close:hover{background:#fee2e2;border-color:#fecaca;color:#ef4444}.meeting-modal-body{padding:20px 24px}.meeting-modal-info-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.meeting-modal-info-grid .info-box{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.meeting-modal-info-grid .info-box.full-width{grid-column:1/-1}.meeting-modal-info-grid .info-label{font-size:10px;font-weight:700;text-transform:uppercase;color:#64748b;letter-spacing:.04em}.meeting-modal-info-grid .info-value{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#1e293b}.class-badge-lg{display:inline-block;padding:2px 8px;border-radius:6px;background:#e0f2fe;color:#0284c7;font-size:12px;font-weight:800}.highlight-room{background:#f0f9ff!important;border-color:#bae6fd!important}.room-info-value{align-items:flex-start!important;gap:10px!important}.room-details-column{display:flex;flex-direction:column;gap:4px;flex:1 1}.room-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.room-name-highlight{font-size:14px;font-weight:800;color:#0369a1}.room-fakultas-tag{display:inline-block;font-size:11px;font-weight:750;color:#0369a1;background:#e0f2fe;padding:2px 8px;border-radius:6px;border:1px solid #bae6fd}.room-specific-location-tag{display:block;font-size:12px;font-weight:600;color:#334155;line-height:1.35}.room-capacity-desc{display:block;font-size:11px;font-weight:600;color:#64748b}.dosen-list-box{align-items:flex-start!important}.dosen-list-items{display:flex;flex-direction:column;gap:4px}.dosen-item-name{font-size:12px;font-weight:600;color:#334155;line-height:1.4}.ipb-native-app-root{min-height:100vh;min-height:100dvh;background:#090e17;color:#f8fafc;align-items:stretch;overflow-x:hidden}.ipb-loading-screen,.ipb-native-app-root{display:flex;justify-content:center;width:100%}.ipb-loading-screen{align-items:center;height:100vh;color:#94a3b8;font-weight:700}.ipb-mobile-page-shell{max-width:520px;margin:0 auto;padding:0;flex-direction:column;box-shadow:0 0 50px rgba(0,0,0,.7);position:relative}.ipb-mobile-container,.ipb-mobile-page-shell{width:100%;min-height:100vh;min-height:100dvh;display:flex;background:#0f172a}.ipb-mobile-container{flex:1 1;border:none;border-radius:0;box-shadow:none;flex-direction:column;color:#f8fafc}.ipb-mobile-window-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#090e17;border-bottom:1px solid #1e293b;position:-webkit-sticky;position:sticky;top:0;z-index:50}.window-title-left{display:flex;align-items:center;gap:10px}.window-back-btn{color:#94a3b8;display:flex;align-items:center;transition:color .15s ease}.window-back-btn:hover{color:#ffffff}.window-app-name{font-size:13px;font-weight:750;color:#f8fafc}.ipb-header-mode-link{display:inline-flex;align-items:center;gap:5px;background:#1e293b;color:#38bdf8;border:1px solid #334155;font-size:11px;font-weight:700;padding:4px 10px;border-radius:6px;text-decoration:none;transition:all .15s ease}.ipb-header-mode-link:hover{background:#0284c7;color:#ffffff;border-color:#0284c7}.ipb-profile-header-card{padding:18px 18px 16px;background:linear-gradient(180deg,#131d31,#0f172a);display:flex;flex-direction:column;gap:12px;border-bottom:1px solid rgba(255,255,255,.05)}.profile-info-row{display:flex;align-items:center;gap:14px}.profile-avatar-wrapper{width:48px;height:48px;padding:2.5px;background:#ef4444;flex-shrink:0}.profile-avatar-inner,.profile-avatar-wrapper{border-radius:999px;display:flex;align-items:center;justify-content:center}.profile-avatar-inner{width:100%;height:100%;background:#0284c7}.avatar-initials{font-size:18px;font-weight:800;color:#ffffff}.profile-text-meta{flex:1 1;min-width:0}.profile-student-name{margin:0;font-size:15px;font-weight:750;color:#f8fafc;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-student-nim{display:block;font-size:12px;color:#94a3b8;font-weight:500;margin-top:2px}.ipb-month-control-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#090e17;border-bottom:1px solid #1e293b;gap:8px}.month-display-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.month-display-label{font-size:13px;font-weight:800;color:#f8fafc;letter-spacing:.01em}.holiday-status-badge{font-size:10px;font-weight:800;color:#f87171;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.28);padding:1px 7px;border-radius:999px;text-transform:uppercase}.month-action-buttons{display:flex;align-items:center;gap:6px}.month-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:#1e293b;border:1px solid #334155;color:#94a3b8;cursor:pointer;transition:all .15s ease}.month-nav-btn:hover:not(:disabled){background:#334155;color:#ffffff}.month-nav-btn:disabled{opacity:.35;cursor:not-allowed}.month-today-btn{font-size:10px;font-weight:750;color:#38bdf8;background:#132238;border:1px solid #0284c7;padding:4px 8px;border-radius:8px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.month-today-btn:hover{background:#0284c7;color:#ffffff}.ipb-date-strip-wrapper{padding:12px 10px;background:#0b1120;border-bottom:1px solid #1e293b}.ipb-date-strip-scrollable{display:flex;align-items:center;gap:8px;overflow-x:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:4px 4px 6px;scrollbar-width:thin;scrollbar-color:#334155 #0b1120}.ipb-date-strip-scrollable::-webkit-scrollbar{height:4px}.ipb-date-strip-scrollable::-webkit-scrollbar-thumb{background:#334155;border-radius:999px}.ipb-date-item{display:flex;flex-direction:column;align-items:center;gap:5px;background:transparent;border:none;cursor:pointer;padding:4px;border-radius:12px;transition:all .15s ease;min-width:48px;flex-shrink:0;position:relative}.date-day-label{font-size:11px;font-weight:600;color:#94a3b8}.text-red-label{color:#f87171!important}.date-number-bubble{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:750;color:#cbd5e1;background:#1e293b;transition:all .15s ease}.ipb-date-item:hover .date-number-bubble{background:#334155;color:#ffffff}.bubble-red{color:#fca5a5!important;background:rgba(239,68,68,.15)!important;border:1px solid rgba(239,68,68,.3)!important}.date-number-bubble.bubble-active{background:#0284c7!important;color:#ffffff!important;border-color:#0284c7!important;box-shadow:0 4px 12px rgba(2,132,199,.4)}.ipb-date-item.active .date-day-label{color:#38bdf8;font-weight:800}.holiday-dot{width:5px;height:5px;border-radius:999px;background:#ef4444;position:absolute;bottom:0}.ipb-schedule-section{padding:18px 16px 24px;display:flex;flex-direction:column;gap:14px;min-height:340px;background:#0f172a}.section-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.section-title{margin:0;font-size:16px;font-weight:800;color:#f8fafc;line-height:1.2}.section-subtitle{display:block;font-size:12px;color:#94a3b8;margin-top:2px;font-weight:500}.section-session-count{font-size:11px;font-weight:700;color:#38bdf8;background:rgba(2,132,199,.15);padding:2px 8px;border-radius:999px;border:1px solid rgba(56,189,248,.3);white-space:nowrap}.holiday-count-badge{color:#f87171!important;background:rgba(239,68,68,.15)!important;border-color:rgba(239,68,68,.3)!important}.ipb-holiday-card{padding:32px 20px;background:linear-gradient(135deg,rgba(239,68,68,.1),#1e293b);border:1px solid rgba(239,68,68,.3);border-radius:18px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;box-shadow:0 10px 25px -5px rgba(0,0,0,.3)}.holiday-icon-box{width:60px;height:60px;border-radius:999px;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.35);display:flex;align-items:center;justify-content:center}.holiday-flag-tag{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;color:#f87171;letter-spacing:.05em;background:rgba(239,68,68,.15);padding:2px 8px;border-radius:6px;margin-bottom:6px}.holiday-name-title{margin:0;font-size:16px;font-weight:800;color:#fef2f2;line-height:1.3}.holiday-desc{margin:6px 0 0;font-size:12px;color:#cbd5e1;line-height:1.45;max-width:320px}.sunday-card{border-color:rgba(56,189,248,.25);background:#182338}.ipb-timeline-list{display:flex;flex-direction:column;gap:12px}.ipb-timeline-row{display:flex;align-items:flex-start;gap:12px;cursor:pointer;outline:none}.timeline-time-col{display:flex;flex-direction:column;gap:6px;width:54px;flex-shrink:0;padding-top:4px}.time-start-pill{font-size:12px;font-weight:800;color:#f8fafc;background:#1e293b;padding:2px 6px;border-radius:6px;text-align:center;border:1px solid #334155}.time-end-pill{font-size:11px;font-weight:600;color:#94a3b8;text-align:center}.ipb-schedule-card{flex:1 1;min-width:0;background:#1e293b;border:1px solid #334155;border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.ipb-timeline-row:hover .ipb-schedule-card{transform:translateY(-2px);border-color:#0284c7;box-shadow:0 8px 24px rgba(2,132,199,.25);background:#24344d}.ipb-schedule-card.card-praktikum{border-left:4px solid #2dd4bf}.ipb-schedule-card.card-kuliah{border-left:4px solid #0ea5e9}.ipb-schedule-card.card-responsi{border-left:4px solid #fde047}.card-top-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.card-course-title{margin:0;font-size:14px;font-weight:750;color:#f8fafc;line-height:1.3}.card-badge-group{display:flex;align-items:center;gap:4px;flex-shrink:0}.card-class-badge{font-size:11px;font-weight:800;background:#0284c7;color:#ffffff;padding:2px 7px;border-radius:6px}.card-sks-badge{font-size:10px;font-weight:750;background:#334155;color:#94a3b8;padding:2px 6px;border-radius:6px}.card-lecturer-row,.card-meta-row{display:flex;align-items:center;gap:6px;font-size:12px;color:#cbd5e1}.meta-icon{color:#38bdf8;flex-shrink:0}.room-text{font-size:12px;color:#cbd5e1}.room-desc{color:#94a3b8}.lecturer-text{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-footer-action{display:flex;align-items:center;justify-content:space-between;padding-top:6px;border-top:1px solid rgba(255,255,255,.06);margin-top:2px}.ipb-component-tag{font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:6px;display:inline-flex;align-items:center;line-height:1}.ipb-component-tag.tag-kuliah{background:rgba(14,165,233,.12)!important;color:#38bdf8!important;border:1px solid rgba(56,189,248,.3)!important}.ipb-component-tag.tag-praktikum{background:rgba(45,212,191,.12)!important;color:#2dd4bf!important;border:1px solid rgba(45,212,191,.3)!important}.ipb-component-tag.tag-responsi{background:rgba(253,224,71,.12)!important;color:#fde047!important;border:1px solid rgba(253,224,71,.3)!important}.card-tap-hint{font-size:10px;font-weight:700;color:#64748b;transition:color .15s ease}.ipb-timeline-row:hover .card-tap-hint{color:#38bdf8}.ipb-empty-schedule-card{padding:40px 20px;text-align:center;background:#1e293b;border:1px dashed #334155;border-radius:18px;display:flex;flex-direction:column;align-items:center;gap:8px}.ipb-empty-schedule-card .empty-icon{color:#64748b;margin-bottom:4px}.ipb-empty-schedule-card h4{margin:0;font-size:15px;font-weight:750;color:#f8fafc}.ipb-empty-schedule-card p{margin:0;font-size:12px;color:#94a3b8;line-height:1.4;max-width:320px}.ipb-bottom-nav{justify-content:space-around;background:#090e17;border-top:1px solid #1e293b;padding:10px 8px calc(12px + env(safe-area-inset-bottom, 0px));position:-webkit-sticky;position:sticky;bottom:0;z-index:50}.ipb-bottom-nav,.nav-tab-item{display:flex;align-items:center}.nav-tab-item{flex-direction:column;gap:4px;color:#64748b;font-size:10px;font-weight:700;text-decoration:none;cursor:pointer;transition:color .15s ease}.nav-tab-item.active,.nav-tab-item:hover{color:#0284c7}.nav-qr-fab{width:48px;height:48px;border-radius:999px;background:#0284c7;color:#ffffff;border:3px solid #090e17;display:flex;align-items:center;justify-content:center;margin-top:-24px;box-shadow:0 4px 14px rgba(2,132,199,.5);cursor:pointer;transition:all .15s ease}.nav-qr-fab:hover{transform:scale(1.08);background:#0369a1}