@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--canvas:#f8faf8;--surface:#fff;--surface-raised:#fff;--surface-subtle:#f4f6f4;--surface-muted:#ecefe9;--surface-hover:#f1f4f0;--border-subtle:#e5e9e3;--border-medium:#d1d8ce;--border-strong:#9ca897;--border-focus:#14532d;--text-main:#141f17;--text-secondary:#475549;--text-muted:#748375;--text-on-dark:#fff;--primary:#14532d;--primary-hover:#0f3e21;--primary-active:#0a2d17;--primary-subtle:#ecfdf3;--primary-border:#a7f3d0;--primary-glow:#14532d14;--accent:#9a3412;--accent-hover:#7c2d12;--accent-subtle:#fff7ed;--accent-border:#fed7aa;--success-bg:#f0fdf4;--success-text:#166534;--success-border:#bbf7d0;--warning-bg:#fffbeb;--warning-text:#92400e;--warning-border:#fde68a;--danger-bg:#fef2f2;--danger-text:#991b1b;--danger-border:#fecaca;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-xs:0 1px 2px #141f170a;--shadow-sm:0 1px 3px #141f170d, 0 1px 2px #141f1708;--shadow-md:0 4px 6px -1px #141f170f, 0 2px 4px -2px #141f1708;--shadow-lg:0 10px 15px -3px #141f1714, 0 4px 6px -4px #141f1708;--shadow-dropdown:0 12px 28px #141f171f, 0 4px 10px #141f170a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--canvas);color:var(--text-main);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}h1,h2,h3,h4,h5,h6{color:var(--text-main);letter-spacing:-.02em;font-weight:700}button{font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;transition:all .15s}input,select,textarea{font-family:var(--font-sans);color:var(--text-main);background-color:var(--surface);border:1px solid var(--border-medium);border-radius:var(--radius-sm);outline:none;padding:7px 12px;font-size:13px;transition:all .15s}input:focus,select:focus,textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-glow)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border-subtle);z-index:100;height:56px;box-shadow:var(--shadow-xs);justify-content:space-between;align-items:center;padding:0 20px;display:flex;position:sticky;top:0}.brand-wrapper{align-items:center;gap:12px;display:flex}.university-seal{background:var(--primary);border-radius:var(--radius-sm);color:#fff;letter-spacing:.05em;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:800;display:flex;box-shadow:0 2px 4px #14532d33}.brand-info{flex-direction:column;display:flex}.brand-title{color:var(--text-main);letter-spacing:-.01em;font-size:13px;font-weight:700;line-height:1.2}.brand-term-tag{color:var(--text-muted);font-size:11px;font-weight:500;line-height:1.2}.header-center{align-items:center;gap:12px;display:flex}.header-search{width:300px;position:relative}.header-search input{border-radius:var(--radius-sm);background:var(--surface-subtle);border:1px solid var(--border-subtle);width:100%;height:32px;padding-left:32px;font-size:12px}.header-search input:focus{background:var(--surface);border-color:var(--primary)}.header-actions{align-items:center;gap:12px;display:flex}.user-menu-btn{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-subtle);align-items:center;gap:10px;padding:4px 10px;transition:all .15s;display:flex}.user-menu-btn:hover{background:var(--surface-hover);border-color:var(--border-medium)}.user-avatar-initials{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:flex}.user-menu-meta{text-align:left;line-height:1.2}.user-menu-name{color:var(--text-main);font-size:12px;font-weight:600}.user-menu-role{color:var(--text-muted);font-size:10px;font-weight:500}.persona-dropdown-modal{background:var(--surface);border:1px solid var(--border-medium);border-radius:var(--radius-lg);width:360px;max-height:min(600px,100vh - 72px);box-shadow:var(--shadow-dropdown);z-index:200;box-sizing:border-box;flex-direction:column;padding:16px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.persona-dropdown-header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:10px;display:flex}.persona-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11px;font-weight:750;display:flex}.persona-list{overscroll-behavior:contain;flex-direction:column;flex:1;gap:3px;max-height:330px;margin-right:-4px;padding-right:4px;display:flex;overflow-y:auto}.persona-list::-webkit-scrollbar{width:6px}.persona-list::-webkit-scrollbar-track{background:var(--surface-subtle);border-radius:4px}.persona-list::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px}.persona-list::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.persona-item-btn{border-radius:var(--radius-sm);text-align:left;cursor:pointer;box-sizing:border-box;background:0 0;border:1px solid #0000;align-items:center;gap:10px;width:100%;margin-bottom:2px;padding:8px 10px;transition:all .15s;display:flex}.persona-item-btn:hover{background:var(--surface-subtle)}.persona-item-btn.selected,.persona-item-btn.active{background:var(--primary-subtle);border:1px solid var(--primary-border)}.persona-btn-avatar{background:var(--surface-subtle);border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.persona-btn-info{flex:1;min-width:0}.persona-btn-name{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:700;overflow:hidden}.persona-btn-meta{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.persona-dropdown-footer{border-top:1px solid var(--border-subtle);flex-shrink:0;margin-top:10px;padding-top:10px}.logout-action-btn{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-subtle);width:100%;color:var(--accent);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:650;transition:all .15s;display:flex}.logout-action-btn:hover{background:var(--accent-subtle);border-color:var(--accent-border)}.app-body{flex:1;display:flex}.app-sidebar{background:var(--surface);border-right:1px solid var(--border-subtle);flex-direction:column;gap:20px;width:230px;padding:16px 10px;display:flex}.sidebar-heading{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px;padding:0 10px;font-size:10px;font-weight:700}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);align-items:center;gap:10px;padding:8px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{background:var(--surface-subtle);color:var(--text-main);text-decoration:none}.nav-item.active{background:var(--primary);color:#fff;font-weight:600;box-shadow:0 1px 2px #14532d26}.nav-item.active svg{color:#fff}.nav-badge-pill{background:var(--surface-muted);color:var(--text-muted);border-radius:10px;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:600}.nav-item.active .nav-badge-pill{color:#fff;background:#fff3}.app-content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:24px 32px}.dash-masthead{background:var(--surface);border:1px solid var(--border-subtle);border-top:3px solid var(--primary);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;padding:22px 28px;display:flex;box-shadow:0 1px 3px #141f1708,0 4px 12px #141f1705}.dash-masthead-ribbon{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:10px;margin-bottom:6px;font-size:11px;font-weight:600;display:flex}.dash-masthead-ribbon .pulse-dot{background:#16a34a;border-radius:50%;width:6px;height:6px;display:inline-block;box-shadow:0 0 0 3px #16a34a33}.dash-masthead-title{color:var(--text-main);letter-spacing:-.02em;font-size:22px;font-weight:800;line-height:1.2}.dash-masthead-sub{color:var(--text-secondary);margin-top:4px;font-size:13px}.dash-masthead-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.dash-metrics-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px;display:grid}@media (width<=1024px){.dash-metrics-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.dash-metrics-grid{grid-template-columns:1fr}}.dash-metric-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);flex-direction:column;padding:16px 18px;transition:all .2s;display:flex;position:relative;overflow:hidden}.dash-metric-card:hover{border-color:var(--border-medium);box-shadow:var(--shadow-sm)}.dash-metric-card:before{content:"";background:var(--border-medium);height:2px;position:absolute;top:0;left:0;right:0}.dash-metric-card.accent-emerald:before{background:var(--primary)}.dash-metric-card.accent-terracotta:before{background:var(--accent)}.dash-metric-card.accent-amber:before{background:#d97706}.dash-metric-card.accent-stone:before{background:var(--text-muted)}.dash-metric-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.dash-metric-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.dash-metric-value{color:var(--text-main);font-feature-settings:"tnum";letter-spacing:-.02em;font-size:26px;font-weight:800;line-height:1.1}.dash-metric-footer{color:var(--text-secondary);border-top:1px solid var(--surface-subtle);align-items:center;gap:6px;margin-top:8px;padding-top:8px;font-size:12px;display:flex}.dash-panel{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);margin-bottom:22px;padding:20px 22px}.dash-panel-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:14px;display:flex}.dash-panel-title{color:var(--text-main);letter-spacing:-.01em;font-size:15px;font-weight:750}.dash-panel-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.timetable-timeline{flex-direction:column;gap:10px;display:flex}.timetable-slot{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface);align-items:flex-start;gap:14px;padding:12px 14px;transition:all .15s;display:flex}.timetable-slot.active-session{background:var(--primary-subtle);border-color:var(--primary-border);box-shadow:0 0 0 1px var(--primary-border)}.timetable-time-box{flex-direction:column;min-width:130px;display:flex}.timetable-time-str{font-family:var(--font-mono);color:var(--text-main);font-size:12px;font-weight:700}.timetable-room-chip{color:var(--text-muted);align-items:center;gap:4px;margin-top:3px;font-size:11px;display:inline-flex}.timetable-detail{flex:1;min-width:0}.timetable-subject{color:var(--text-main);font-size:13px;font-weight:700}.timetable-faculty{color:var(--text-secondary);margin-top:2px;font-size:12px}.course-roster-list{flex-direction:column;gap:10px;display:flex}.course-roster-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;transition:all .15s;display:flex}.course-roster-card:hover{background:var(--surface-hover);border-color:var(--border-medium)}.course-code-badge{font-family:var(--font-mono);border-radius:var(--radius-xs);background:var(--primary-subtle);color:var(--primary);border:1px solid var(--primary-border);padding:3px 7px;font-size:11px;font-weight:700}.course-name-text{color:var(--text-main);font-size:13px;font-weight:700}.course-meta-text{color:var(--text-muted);margin-top:3px;font-size:12px}.attendance-meter{text-align:right;min-width:120px}.attendance-pct-text{font-size:13px;font-weight:800;font-family:var(--font-mono)}.attendance-track{background:var(--border-subtle);border-radius:3px;width:100%;height:5px;margin-top:4px;position:relative;overflow:hidden}.attendance-fill{border-radius:3px;height:100%;transition:width .3s}.circular-list{flex-direction:column;gap:10px;display:flex}.circular-card{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface);padding:12px 14px;transition:all .15s}.circular-card:hover{border-color:var(--border-medium);background:var(--surface-hover)}.circular-meta-top{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.circular-ref-code{font-family:var(--font-mono);color:var(--text-muted);font-size:10px;font-weight:600}.circular-title{color:var(--text-main);font-size:13px;font-weight:700;line-height:1.3}.circular-footer{color:var(--text-muted);border-top:1px dashed var(--border-subtle);justify-content:space-between;align-items:center;margin-top:6px;padding-top:6px;font-size:11px;display:flex}.prestige-id-pass{border:1px solid var(--border-medium);border-radius:var(--radius-lg);background:#fff;width:100%;position:relative;overflow:hidden;box-shadow:0 4px 14px #14532d0f,0 1px 3px #14532d0a}.id-pass-top-band{background:var(--primary);color:#fff;border-bottom:2px solid #d97706;padding:14px 18px 12px;position:relative}.id-pass-institution{letter-spacing:.05em;text-transform:uppercase;color:#fff;font-size:12px;font-weight:800;line-height:1.2}.id-pass-subtag{letter-spacing:.08em;text-transform:uppercase;color:#a7f3d0;margin-top:2px;font-size:9px;font-weight:600}.id-pass-seal-watermark{color:#fffc;letter-spacing:.05em;border:1px dashed #ffffff59;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:10px;font-weight:800;display:flex;position:absolute;top:10px;right:14px}.id-pass-main-grid{gap:16px;padding:18px;display:flex}.id-pass-portrait-frame{background:var(--surface-subtle);border:1px solid var(--border-medium);border-radius:var(--radius-sm);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:90px;height:112px;display:flex;position:relative}.id-pass-verified-seal{background:var(--primary);color:#fff;text-transform:uppercase;letter-spacing:.06em;border:1px solid #fff;border-radius:3px;padding:1px 6px;font-size:8px;font-weight:700;position:absolute;bottom:-6px}.id-pass-info-block{flex:1;min-width:0}.id-pass-name{color:var(--text-main);font-size:15px;font-weight:800;line-height:1.2}.id-pass-role-title{color:var(--primary);margin-top:2px;font-size:12px;font-weight:700}.id-pass-field-grid{grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:10px;display:grid}.id-pass-field-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:9px;font-weight:700}.id-pass-field-value{color:var(--text-main);font-size:11px;font-weight:600;font-family:var(--font-mono)}.id-pass-security-footer{background:var(--surface-subtle);border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:10px 18px;display:flex}.barcode-svg-container{align-items:flex-end;gap:2px;height:22px;display:flex}.barcode-bar{background:#1c1917;height:100%}.student-id-card{border:1px solid var(--border-medium);border-radius:var(--radius-lg);background:#fff;width:100%;max-width:520px;position:relative;overflow:hidden;box-shadow:0 4px 14px #14532d0f,0 1px 3px #14532d0a}.id-card-top-stripe{background:var(--primary);color:#fff;border-bottom:2px solid #d97706;justify-content:space-between;align-items:center;padding:14px 18px 12px;display:flex;position:relative}.id-card-college-name{letter-spacing:.05em;text-transform:uppercase;color:#fff;font-size:12px;font-weight:800;line-height:1.2}.id-card-body{gap:16px;padding:18px;display:flex}.id-photo-box{background:var(--surface-subtle);border:1px solid var(--border-medium);border-radius:var(--radius-sm);width:90px;height:112px;color:var(--text-muted);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;display:flex;position:relative}.id-info-col{flex:1;min-width:0}.id-student-name{color:var(--text-main);font-size:15px;font-weight:800;line-height:1.2}.id-student-degree{color:var(--primary);margin-top:2px;font-size:12px;font-weight:700}.id-meta-grid{grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:10px;display:grid}.id-meta-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:9px;font-weight:700}.id-meta-val{color:var(--text-main);font-size:11px;font-weight:600;font-family:var(--font-mono)}.id-card-footer{background:var(--surface-subtle);border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:10px 18px;display:flex}.barcode-mockup{font-family:var(--font-mono);letter-spacing:.15em;color:#1c1917;font-size:14px;font-weight:900}.cr-coordination-deck{background:var(--accent-subtle);border:1px solid var(--accent-border);border-radius:var(--radius-md);margin-bottom:22px;padding:16px}.cr-deck-header{color:var(--accent);align-items:center;gap:8px;font-size:13px;font-weight:750;display:flex}.cr-deck-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.service-hub-list{flex-direction:column;gap:8px;display:flex}.service-hub-item{background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;justify-content:space-between;align-items:center;padding:10px 12px;transition:all .15s;display:flex}.service-hub-item:hover{background:var(--surface);border-color:var(--border-medium);box-shadow:var(--shadow-xs)}.service-hub-label{color:var(--text-main);font-size:13px;font-weight:600}.service-hub-sla{color:var(--text-muted);margin-top:1px;font-size:10px}.tab-row{border-bottom:1px solid var(--border-subtle);gap:8px;margin-bottom:18px;display:flex}.tab-btn{color:var(--text-muted);border-bottom:2px solid #0000;padding:8px 14px;font-size:13px;font-weight:600;transition:all .15s}.tab-btn:hover{color:var(--text-main)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.data-table-container{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.table-controls{background:var(--surface-subtle);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.app-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.app-table th{background:var(--surface-subtle);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);padding:10px 14px;font-size:11px;font-weight:700}.app-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-main);vertical-align:middle;padding:11px 14px}.app-table tr:hover td{background:var(--surface-hover)}.badge-tag{border-radius:var(--radius-xs);align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-tag.emerald{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}.badge-tag.amber{background:var(--warning-bg);color:var(--warning-text);border:1px solid var(--warning-border)}.badge-tag.terracotta{background:var(--accent-subtle);color:var(--accent);border:1px solid var(--accent-border)}.badge-tag.neutral{background:var(--surface-subtle);color:var(--text-secondary);border:1px solid var(--border-subtle)}.app-btn,.btn{border-radius:var(--radius-sm);font-family:var(--font-sans);letter-spacing:-.01em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:8px 16px;font-size:13px;font-weight:600;line-height:1.35;text-decoration:none;transition:all .15s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;overflow:hidden}.app-btn:focus-visible,.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app-btn-primary,.btn-primary{background:var(--primary);color:#fff;border-color:#0f3e21;box-shadow:0 1px 2px #14532d3d,inset 0 1px #ffffff29}.app-btn-primary:hover,.btn-primary:hover{background:var(--primary-hover);color:#fff;border-color:#0a2d17;transform:translateY(-1px);box-shadow:0 3px 8px -1px #14532d59,inset 0 1px #fff3}.app-btn-primary:active,.btn-primary:active{background:var(--primary-active);transform:translateY(0);box-shadow:inset 0 2px 4px #00000040}.app-btn-secondary,.btn-secondary{background:var(--surface);color:var(--text-main);border-color:var(--border-medium);box-shadow:0 1px 2px #141f170a,inset 0 1px #fffc}.app-btn-secondary:hover,.btn-secondary:hover{background:var(--surface-subtle);border-color:var(--border-strong);color:var(--text-main);transform:translateY(-1px);box-shadow:0 2px 5px #141f1714}.app-btn-secondary:active,.btn-secondary:active{background:var(--surface-muted);transform:translateY(0);box-shadow:inset 0 1px 2px #141f170f}.app-btn-secondary.active,.btn-secondary.active{background:var(--primary-subtle);border-color:var(--primary);color:var(--primary);font-weight:700;box-shadow:0 1px 3px #14532d1f}.app-btn-accent,.btn-accent{background:var(--accent);color:#fff;border-color:#7c2d12;box-shadow:0 1px 2px #9a341240,inset 0 1px #ffffff29}.app-btn-accent:hover,.btn-accent:hover{background:var(--accent-hover);color:#fff;border-color:#63220e;transform:translateY(-1px);box-shadow:0 3px 8px -1px #9a341259}.app-btn-accent:active,.btn-accent:active{background:#63220e;transform:translateY(0);box-shadow:inset 0 2px 4px #00000040}.app-btn-danger,.btn-danger{color:#fff;background:#b91c1c;border-color:#991b1b;box-shadow:0 1px 2px #b91c1c40,inset 0 1px #ffffff29}.app-btn-danger:hover,.btn-danger:hover{color:#fff;background:#991b1b;border-color:#7f1d1d;transform:translateY(-1px);box-shadow:0 3px 8px -1px #b91c1c59}.app-btn-danger:active,.btn-danger:active{background:#7f1d1d;transform:translateY(0);box-shadow:inset 0 2px 4px #00000040}.app-btn-ghost,.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.app-btn-ghost:hover,.btn-ghost:hover{background:var(--surface-subtle);color:var(--text-main)}.app-btn-xs,.btn-xs{border-radius:var(--radius-xs);gap:4px;padding:3px 8px;font-size:11px}.app-btn-sm,.btn-sm{border-radius:var(--radius-sm);gap:5px;padding:5px 11px;font-size:12px}.app-btn-lg,.btn-lg{border-radius:var(--radius-md);gap:8px;padding:10px 20px;font-size:14px}.app-btn:disabled,.btn:disabled,.app-btn.disabled,.btn.disabled{opacity:.55;pointer-events:none;cursor:not-allowed!important;box-shadow:none!important;transform:none!important}.surface-card,.app-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:border-color .18s,box-shadow .18s}.surface-card:hover,.app-card:hover{border-color:var(--border-medium);box-shadow:var(--shadow-sm)}.input-field,.form-input{width:100%;font-size:13px;font-family:var(--font-sans);color:var(--text-main);background:var(--surface);border:1px solid var(--border-medium);border-radius:var(--radius-sm);outline:none;padding:8px 12px;transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 1px 2px #141f1708}.input-field:focus,.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.input-field::placeholder,.form-input::placeholder{color:var(--text-muted)}.input-label,.form-label{color:var(--text-main);letter-spacing:-.01em;margin-bottom:5px;font-size:12px;font-weight:600;display:block}.app-card-header{border-bottom:1px solid var(--border-subtle);flex-direction:column;gap:3px;padding:16px 20px;display:flex}.app-card-body{padding:20px}.data-table,.app-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.data-table th,.app-table th{background:var(--surface-subtle);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-subtle);padding:10px 14px;font-size:11px;font-weight:700}.data-table td,.app-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-main);vertical-align:middle;padding:11px 14px}.data-table tr:hover td,.app-table tr:hover td{background:var(--surface-hover)}.stats-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);flex-direction:column;padding:16px 18px;transition:all .2s;display:flex;position:relative;overflow:hidden}.stats-card:hover{border-color:var(--border-medium);box-shadow:var(--shadow-sm)}.stats-card:before{content:"";background:var(--primary);height:2px;position:absolute;top:0;left:0;right:0}.stats-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:700}.stats-value{color:var(--text-main);font-feature-settings:"tnum";letter-spacing:-.02em;font-size:24px;font-weight:800;line-height:1.1}.stats-meta{color:var(--text-secondary);margin-top:6px;font-size:11px}.badge-tag.success{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}.badge-tag.danger{background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-border)}.badge-tag.muted{background:var(--surface-subtle);color:var(--text-secondary);border:1px solid var(--border-subtle)}.toast-shelf{z-index:1000;position:fixed;bottom:24px;right:24px}.toast-pill{background:var(--surface);border:1px solid var(--border-strong);border-left:4px solid var(--primary);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);color:var(--text-main);align-items:center;gap:10px;padding:12px 18px;font-size:13px;font-weight:600;display:flex}.gform-modal-overlay{z-index:1000;background:#ecefe8;flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.gform-top-nav{z-index:100;background:#fff;border-bottom:1px solid #dadce0;justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex;position:sticky;top:0;left:0;right:0;box-shadow:0 1px 2px #3c404314}.gform-nav-left{align-items:center;gap:12px;display:flex}.gform-nav-logo{color:#14532d;letter-spacing:-.01em;align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.gform-nav-title{color:#202124;white-space:nowrap;text-overflow:ellipsis;border-left:1px solid #dadce0;max-width:380px;padding-left:12px;font-size:14px;font-weight:600;overflow:hidden}.gform-nav-right{align-items:center;gap:12px;display:flex}.gform-close-btn{color:#5f6368;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;transition:background .15s,color .15s;display:flex}.gform-close-btn:hover{color:#202124;background:#f1f3f4}.gform-container{flex-direction:column;gap:12px;width:100%;max-width:680px;margin:18px auto 60px;padding:0 16px;display:flex}.gform-card{background:#fff;border:1px solid #dadce0;border-radius:8px;padding:24px 26px;transition:box-shadow .2s,border-color .2s;position:relative;box-shadow:0 1px 2px #3c40431a,0 1px 3px 1px #3c40430d}.gform-card:hover{box-shadow:0 1px 3px #3c404333,0 2px 6px 2px #3c40431a}.gform-card-header{border-top:10px solid #14532d;border-radius:8px}.gform-card-title{color:#202124;margin:0 0 10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Google Sans,sans-serif;font-size:30px;font-weight:500;line-height:1.25}.gform-card-desc{color:#3c4043;white-space:pre-line;margin-top:8px;font-size:14px;line-height:1.55}.gform-account-strip{border-top:1px solid #dadce0;flex-direction:column;gap:6px;margin-top:16px;padding-top:14px;display:flex}.gform-account-row{color:#5f6368;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font-size:13px;display:flex}.gform-account-email{color:#202124;font-weight:600}.gform-account-notice{color:#5f6368;margin-top:2px;font-size:12px;line-height:1.4}.gform-required-note{color:#d93025;margin-top:4px;font-size:12px;font-weight:500}.gform-question-title{color:#202124;justify-content:space-between;align-items:baseline;gap:8px;font-size:15px;font-weight:500;line-height:1.4;display:flex}.gform-required-star{color:#d93025;margin-left:3px;font-weight:600}.gform-question-help{color:#5f6368;margin-top:4px;margin-bottom:12px;font-size:12px}.gform-prefilled-badge{color:#14532d;background:#14532d14;border:1px solid #14532d33;border-radius:4px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.gform-prefilled-box{background:#f9faf8;border:1px solid #d1d5db;border-bottom:2px solid #14532d;border-radius:4px;justify-content:space-between;align-items:center;margin-top:8px;padding:10px 14px;display:flex}.gform-prefilled-val{color:#111827;font-size:14px;font-weight:600}.gform-prefilled-note{color:#14532d;align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex}.gform-underline-wrap{width:100%;margin-top:8px;position:relative}.gform-underline-input{color:#202124;background:0 0;border:none;border-bottom:1px solid #dadce0;outline:none;width:100%;padding:8px 0;font-family:inherit;font-size:14px;transition:border-bottom-color .2s}.gform-underline-input:focus{border-bottom:2px solid #14532d}.gform-underline-input::placeholder{color:#80868b;font-weight:400}.gform-date-input{color:#202124;background:#fff;border:1px solid #dadce0;border-radius:4px;outline:none;padding:8px 12px;font-size:14px;transition:border-color .2s}.gform-date-input:focus{border-color:#14532d;box-shadow:0 0 0 1px #14532d}.gform-select-input{color:#202124;cursor:pointer;background:#fff;border:1px solid #dadce0;border-radius:4px;outline:none;min-width:220px;padding:10px 14px;font-size:14px}.gform-select-input:focus{border-color:#14532d}.gform-options-list{flex-direction:column;gap:10px;margin-top:10px;display:flex}.gform-radio-label,.gform-checkbox-label{color:#202124;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:4px 0;font-size:14px;display:flex}.gform-radio-label input[type=radio]{accent-color:#14532d;cursor:pointer;width:18px;height:18px}.gform-checkbox-label input[type=checkbox]{accent-color:#14532d;cursor:pointer;border-radius:2px;width:18px;height:18px}.gform-actions-row{justify-content:space-between;align-items:center;margin-top:8px;padding:4px 0;display:flex}.gform-submit-btn{color:#fff;letter-spacing:.01em;cursor:pointer;background:#14532d;border:none;border-radius:4px;padding:10px 26px;font-size:14px;font-weight:500;transition:background .15s,box-shadow .15s;box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.gform-submit-btn:hover{background:#0f3d21;box-shadow:0 1px 3px #3c404366,0 2px 4px 2px #3c404333}.gform-submit-btn:disabled{opacity:.65;cursor:not-allowed}.gform-clear-btn{color:#14532d;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:8px 14px;font-size:14px;font-weight:500;transition:background .15s}.gform-clear-btn:hover{background:#14532d14}.gform-footer{text-align:center;color:#5f6368;margin-top:24px;margin-bottom:30px;font-size:12px}.gform-footer-warning{margin-bottom:6px}.gform-footer-links{color:#70757a;margin-bottom:12px;font-size:11px}.gform-footer-logo{color:#5f6368;letter-spacing:-.02em;font-size:18px}.gform-footer-logo strong{color:#14532d}@media print{body *{visibility:hidden}.printable-certificate-container,.printable-certificate-container *,#printable-hall-ticket,#printable-hall-ticket *,#printable-grade-sheet,#printable-grade-sheet *{visibility:visible}.printable-certificate-container,#printable-hall-ticket,#printable-grade-sheet{width:100%;margin:0;position:absolute;top:0;left:0;box-shadow:none!important;border:2px solid #14532d!important;padding:20px!important}.no-print,.app-sidebar,.app-header,.toast-shelf{display:none!important}}body.low-bandwidth-mode{--shadow-xs:none;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--shadow-dropdown:none;background-color:#fff!important}body.low-bandwidth-mode *{box-shadow:none!important;text-shadow:none!important;transition:none!important;animation:none!important}body.low-bandwidth-mode img,body.low-bandwidth-mode svg.decorative{display:none!important}.low-bandwidth-banner{color:#92400e;background:#fef3c7;border-bottom:1px solid #fde68a;justify-content:space-between;align-items:center;padding:6px 16px;font-size:11px;font-weight:600;display:flex}.bandwidth-badge{font-family:var(--font-mono);border-radius:var(--radius-xs);background:#92400e1a;padding:2px 6px;font-size:10px}.feature-phone-wrapper{background:#27272a;border:4px solid #3f3f46;border-radius:28px;max-width:380px;margin:0 auto;padding:16px;box-shadow:0 10px 25px #00000026}.feature-phone-speaker{background:#52525b;border-radius:2px;width:50px;height:4px;margin:4px auto 12px}.feature-phone-screen{font-family:var(--font-mono);color:#14532d;white-space:pre-wrap;background:#dcfce7;border:3px solid #14532d;border-radius:8px;min-height:200px;padding:12px;font-size:12px;line-height:1.4;overflow-y:auto}.feature-phone-keypad{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;display:grid}.feature-key{color:#fafafa;text-align:center;cursor:pointer;background:#3f3f46;border:1px solid #52525b;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:10px 0;font-size:14px;font-weight:700;display:flex}.feature-key:hover{background:#52525b}.feature-key-sub{color:#a1a1aa;font-size:8px;font-weight:500}.gatepass-qr-frame{border:2px dashed var(--border-medium);border-radius:var(--radius-md);background:#fff;flex-direction:column;justify-content:center;align-items:center;padding:16px;display:inline-flex}.gatepass-timer-badge{font-family:var(--font-mono);background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.mess-day-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.mess-day-card.active-today{border:2px solid var(--primary)}.mess-meal-row{border-bottom:1px solid var(--border-subtle);padding:8px 12px;font-size:12px}.mess-meal-row:last-child{border-bottom:none}.academic-calendar-layout{grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:20px;display:grid}@media (width<=1024px){.academic-calendar-layout{grid-template-columns:1fr}}.academic-calendar-header{text-align:center;color:var(--text-secondary);text-transform:uppercase;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;font-size:11px;font-weight:800;display:grid}.academic-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%;display:grid}.academic-calendar-day{border-radius:var(--radius-sm);cursor:pointer;box-sizing:border-box;flex-direction:column;gap:4px;min-width:0;min-height:86px;padding:6px 7px;transition:all .15s;display:flex;position:relative;overflow:hidden}.academic-calendar-day:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000000d}.academic-badge{text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;border-radius:3px;max-width:100%;padding:2px 5px;font-size:9.5px;font-weight:800;line-height:1.25;display:block;overflow:hidden}.academic-badge-holiday{color:#fff;background:#dc2626}.academic-badge-od{color:#fff;background:#7c3aed}.academic-badge-exam{color:#fff;background:#d97706}
