:root{--color-brand: #e63946;--color-brand-hover: #d32f2f;--color-brand-active: #b71c1c;--color-brand-soft: #fee2e4;--color-brand-subtle: #fff5f5;--color-accent: #d4a574;--color-accent-hover: #c4925e;--color-accent-soft: #f5ede4;--color-accent-subtle: #fdfaf6;--color-surface-bg: #fafaf8;--color-surface-card: #ffffff;--color-surface-card-subtle: rgba(255, 255, 255, .92);--color-surface-hover: #f3f3f0;--color-surface-active: #ebebe6;--color-text-primary: #2d2d2d;--color-text-secondary: #5c5c5c;--color-text-muted: #8a8a8a;--color-text-inverse: #ffffff;--color-success: #2e7d32;--color-success-soft: #e8f5e9;--color-warning: #ed8b00;--color-warning-soft: #fff3e0;--color-danger: #d32f2f;--color-danger-soft: #ffebee;--color-info: #1976d2;--color-info-soft: #e3f2fd;--color-border: #e8e4df;--color-border-subtle: #f0ece7;--color-border-strong: #d5d0c9;--color-divider: #ede9e3;--shadow-sm: 0 2px 6px rgba(45, 45, 45, .04);--shadow-md: 0 4px 14px rgba(45, 45, 45, .07);--shadow-lg: 0 8px 24px rgba(45, 45, 45, .1);--shadow-brand: 0 4px 18px rgba(230, 57, 70, .18);--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-pill: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--font-body: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-title: "STSong", "SimSun", "Noto Serif SC", "Songti SC", serif;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 15px;--font-size-lg: 17px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 28px;--line-height-tight: 1.25;--line-height-base: 1.5;--line-height-relaxed: 1.7;--breakpoint-compact-max: 599px;--breakpoint-medium-min: 600px;--breakpoint-medium-max: 839px;--breakpoint-expanded-min: 840px;--breakpoint-desktop-min: 1024px;--content-max-compact: 480px;--content-max-medium: 768px;--content-max-expanded: 1280px}.layout-container{width:100%;margin:0 auto;padding:var(--space-4) var(--space-4) calc(var(--space-12) + var(--space-8));max-width:var(--content-max-compact);transition:max-width .2s ease,padding .2s ease}@media(min-width:600px)and (max-width:839px){.layout-container{max-width:var(--content-max-medium);padding:var(--space-5) var(--space-6) var(--space-12)}}@media(min-width:840px){.layout-container{max-width:var(--content-max-expanded);padding:var(--space-6) var(--space-8) var(--space-10)}}.grid-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}@media(min-width:600px)and (max-width:839px){.grid-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}}@media(min-width:840px){.grid-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}}@media(min-width:1100px){.grid-actions-dense{grid-template-columns:repeat(4,minmax(0,1fr))}}.grid-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}@media(min-width:840px){.grid-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}}.grid-split{display:flex;flex-direction:column;gap:var(--space-5)}@media(min-width:840px){.grid-split{display:grid;grid-template-columns:320px 1fr;gap:var(--space-6);align-items:start}.grid-split-sticky{position:sticky;top:var(--space-6)}}@media(min-width:1100px){.grid-split{grid-template-columns:360px 1fr;gap:var(--space-8)}}.content-stack{display:flex;flex-direction:column;gap:var(--space-4)}.content-stack-sm{display:flex;flex-direction:column;gap:var(--space-2)}.content-stack-lg{display:flex;flex-direction:column;gap:var(--space-6)}.state-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm)}.state-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-muted)}.state-error{background:var(--color-danger-soft);border:1px solid rgba(211,47,47,.2);border-radius:var(--radius-md);padding:var(--space-4);color:var(--color-danger);font-size:var(--font-size-sm)}.state-disabled{opacity:.55;pointer-events:none;filter:grayscale(.5)}.state-success{background:var(--color-success-soft);border:1px solid rgba(46,125,50,.2);border-radius:var(--radius-md);padding:var(--space-4);color:var(--color-success);font-size:var(--font-size-sm)}.container.module-dashboard-container{width:100%;max-width:var(--content-max-compact, 480px);margin:0 auto;padding:16px 16px 100px;transition:max-width .2s ease,padding .2s ease}.module-dashboard-body,.module-dashboard-sidebar,.module-dashboard-main{display:contents}@media(min-width:600px)and (max-width:839px){.container.module-dashboard-container{max-width:var(--content-max-medium, 768px);padding:24px 24px 100px}.module-dashboard-container .action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}}@media(min-width:840px){.container.module-dashboard-container{max-width:var(--content-max-expanded, 1240px);padding:32px 36px 60px}.module-dashboard-container .header{display:flex;align-items:center;text-align:left;padding:18px 24px;margin-bottom:24px;background:var(--color-surface-card, #fff);border:1px solid var(--color-border, #e8e4df);border-radius:var(--radius-lg, 16px);box-shadow:0 2px 12px var(--shadow);gap:20px}.module-dashboard-container .header:before{top:50%;left:0;width:4px;height:36px;transform:translateY(-50%);border-radius:0 2px 2px 0}.module-dashboard-container .header .module-switch{position:static;margin:0;flex-shrink:0}.module-dashboard-container .header-copy{flex:1;min-width:0}.module-dashboard-container .header-title{margin-bottom:2px;font-size:22px}.module-dashboard-container .header-subtitle{font-size:13px}.module-dashboard-body{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}.module-dashboard-sidebar{display:flex;flex-direction:column;gap:16px;position:sticky;top:24px}.module-dashboard-main{display:flex;flex-direction:column;gap:16px;min-width:0}.module-dashboard-container .user-card{margin-bottom:0}.module-dashboard-container .action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-dashboard-container .action-card{min-height:140px;padding:22px 16px;transition:transform .2s,box-shadow .2s,border-color .2s}.module-dashboard-container .action-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px var(--shadow-md, rgba(45, 45, 45, .08));border-color:var(--color-accent, #d4a574)}.module-dashboard-container .bottom-nav{display:none!important}}@media(min-width:840px){.modal-overlay,.drawer-overlay,.detail-overlay{align-items:center!important;justify-content:center!important;padding:24px!important}.modal,.modal-box,.drawer,.detail-drawer,.care-modal,.poster-modal-dialog,.qr-modal-dialog{border-radius:var(--radius-lg, 16px)!important;max-height:85vh!important;border:1px solid var(--color-border, #e8e4df)!important;box-shadow:0 16px 48px #0000002e!important;transform:none!important;margin:auto!important}}@media(min-width:840px){body:not(.workspace-page) .bottom-nav,body:not(.workspace-page) .portal-bottom-nav{display:none!important}}.ui-card{background:var(--color-surface-card, #ffffff);border:1px solid var(--color-border, #e8e4df);border-radius:var(--radius-lg, 16px);box-shadow:var(--shadow-sm, 0 2px 6px rgba(45, 45, 45, .04));padding:var(--space-4, 16px);transition:box-shadow .2s ease,border-color .2s ease}.ui-card:hover{box-shadow:var(--shadow-md, 0 4px 14px rgba(45, 45, 45, .07))}.ui-action-card{display:block;background:var(--color-surface-card, #ffffff);border:1px solid var(--color-border, #e8e4df);border-radius:var(--radius-lg, 16px);padding:var(--space-4, 16px);box-shadow:var(--shadow-sm, 0 2px 6px rgba(45, 45, 45, .04));color:inherit;text-align:center;text-decoration:none;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.ui-action-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md, 0 4px 14px rgba(45, 45, 45, .07));border-color:var(--color-accent, #d4a574);text-decoration:none}.ui-action-card:active{transform:scale(.98)}.ui-stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-3, 12px) var(--space-2, 8px);background:var(--color-surface-bg, #fafaf8);border:1px solid var(--color-border-subtle, #f0ece7);border-radius:var(--radius-sm, 8px);gap:var(--space-1, 4px)}.ui-stat-card .ui-stat-value{font-family:var(--font-title, serif);font-size:var(--font-size-2xl, 24px);font-weight:700;color:var(--color-brand, #e63946);line-height:var(--line-height-tight, 1.25)}.ui-stat-card .ui-stat-label{font-size:var(--font-size-xs, 11px);color:var(--color-text-muted, #8a8a8a)}.ui-section-title{display:flex;align-items:center;gap:var(--space-2, 8px);margin:0 0 var(--space-3, 12px);padding-left:var(--space-1, 4px);color:var(--color-text-primary, #2d2d2d);font-family:var(--font-title, serif);font-size:var(--font-size-md, 15px);font-weight:600}.ui-section-title:before{content:"";width:var(--space-1, 4px);height:var(--space-4, 16px);flex-shrink:0;border-radius:var(--radius-xs, 4px);background:linear-gradient(180deg,var(--color-brand, #e63946) 0%,var(--color-accent, #d4a574) 100%)}.ui-page-header{display:flex;align-items:center;gap:var(--space-3, 12px);margin-bottom:var(--space-6, 24px)}.ui-page-header .ui-page-title{font-family:var(--font-title, serif);font-size:var(--font-size-2xl, 24px);font-weight:600;color:var(--color-text-primary, #2d2d2d);margin:0;letter-spacing:.02em}.ui-field{display:flex;flex-direction:column;gap:var(--space-1, 4px);margin-bottom:var(--space-4, 16px)}.ui-field label{font-size:var(--font-size-sm, 13px);font-weight:500;color:var(--color-text-secondary, #5c5c5c)}.ui-field input,.ui-field select,.ui-field textarea{width:100%;padding:var(--space-2, 8px) var(--space-3, 12px);border:1px solid var(--color-border, #e8e4df);border-radius:var(--radius-sm, 8px);background:var(--color-surface-card, #ffffff);color:var(--color-text-primary, #2d2d2d);font-size:var(--font-size-base, 14px);line-height:var(--line-height-base, 1.5);box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease}.ui-field input:focus,.ui-field select:focus,.ui-field textarea:focus{outline:none;border-color:var(--color-brand, #e63946);box-shadow:0 0 0 3px var(--color-brand-soft, #fee2e4)}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) var(--space-4, 16px);font-size:var(--font-size-base, 14px);font-weight:500;border-radius:var(--radius-sm, 8px);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:all .18s ease;box-sizing:border-box}.ui-button-primary{background:var(--color-brand, #e63946);color:var(--color-text-inverse, #ffffff)}.ui-button-primary:hover{background:var(--color-brand-hover, #d32f2f);color:var(--color-text-inverse, #ffffff)}.ui-button-secondary{background:var(--color-accent-soft, #f5ede4);color:var(--color-text-primary, #2d2d2d);border-color:var(--color-accent, #d4a574)}.ui-button-secondary:hover{background:var(--color-accent, #d4a574);color:var(--color-text-inverse, #ffffff)}.ui-button-outline{background:transparent;border-color:var(--color-border, #e8e4df);color:var(--color-text-secondary, #5c5c5c)}.ui-button-outline:hover{border-color:var(--color-border-strong, #d5d0c9);background:var(--color-surface-hover, #f3f3f0)}.ui-button-sm{padding:var(--space-1, 4px) var(--space-2, 8px);font-size:var(--font-size-xs, 11px);border-radius:var(--radius-xs, 4px)}.ui-badge{display:inline-flex;align-items:center;padding:var(--space-1, 4px) var(--space-2, 8px);font-size:var(--font-size-xs, 11px);font-weight:500;border-radius:var(--radius-pill, 9999px);line-height:1;white-space:nowrap}.ui-badge-brand{background:var(--color-brand-soft, #fee2e4);color:var(--color-brand, #e63946)}.ui-badge-accent{background:var(--color-accent-soft, #f5ede4);color:var(--color-accent, #d4a574)}.ui-badge-success{background:var(--color-success-soft, #e8f5e9);color:var(--color-success, #2e7d32)}.ui-badge-warning{background:var(--color-warning-soft, #fff3e0);color:var(--color-warning, #ed8b00)}.ui-badge-danger{background:var(--color-danger-soft, #ffebee);color:var(--color-danger, #d32f2f)}.ui-empty{text-align:center;padding:var(--space-8, 32px) var(--space-4, 16px);color:var(--color-text-muted, #8a8a8a);font-size:var(--font-size-sm, 13px)}.ui-error{background:var(--color-danger-soft, #ffebee);border:1px solid rgba(211,47,47,.2);border-radius:var(--radius-md, 12px);padding:var(--space-4, 16px);color:var(--color-danger, #d32f2f);font-size:var(--font-size-sm, 13px)}.ui-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8, 32px) var(--space-4, 16px);color:var(--color-text-muted, #8a8a8a);font-size:var(--font-size-sm, 13px);gap:var(--space-2, 8px)}:root{--bg-primary: var(--color-surface-bg, #fafaf8);--bg-card: var(--color-surface-card, #ffffff);--ink-dark: var(--color-text-primary, #2d2d2d);--ink-light: var(--color-text-secondary, #5c5c5c);--ink-muted: var(--color-text-muted, #8a8a8a);--vermillion: var(--color-brand, #e63946);--vermillion-light: var(--color-brand-soft, #fee2e4);--gold: var(--color-accent, #d4a574);--gold-light: var(--color-accent-soft, #f5ede4);--border: var(--color-border, #e8e4df);--shadow: rgba(45, 45, 45, .055);--radius: var(--radius-lg, 16px);--green: var(--color-success, #2e7d32);--green-light: var(--color-success-soft, #e8f5e9)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--ink-dark);min-height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}body:before{display:none}.container{position:relative;z-index:1;max-width:480px;margin:0 auto;padding:16px 16px 120px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:10px 0;padding-bottom:max(10px,env(safe-area-inset-bottom));z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1 1 0;min-width:0;padding:6px 0;cursor:pointer;text-decoration:none;color:var(--ink-muted);transition:color .2s,background-color .2s;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.nav-item.active{color:var(--vermillion)}.nav-item:active{background-color:#0000000d;opacity:.7}.nav-item:hover{text-decoration:none}.nav-icon{font-size:20px}.nav-label{font-size:11px;font-weight:500;white-space:nowrap}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes confirmFadeIn{0%{opacity:0}to{opacity:1}}#toast{position:fixed;top:60px;left:50%;transform:translate(-50%);background:#000000bf;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:9999;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap;max-width:85vw;overflow:hidden;text-overflow:ellipsis}#toast.show{opacity:1}#toast.success{background:#2e7d32d9}#toast.error{background:#e63946d9}.empty-state{text-align:center;padding:40px 20px;color:var(--ink-muted);font-size:14px;line-height:1.7}.empty-state .icon{font-size:40px;margin-bottom:12px;display:block}.empty-state .title{font-weight:600;color:var(--ink-dark);font-size:15px;margin-bottom:4px}.empty-state .desc{font-size:13px;color:var(--ink-muted)}.loading-spinner{display:inline-block;width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--vermillion);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-wrap{text-align:center;padding:32px 8px;color:var(--ink-muted);font-size:13px}.loading-wrap .loading-spinner{margin-bottom:8px}.page-header{display:flex;align-items:center;gap:12px;padding:18px 0}.page-title{font-family:STSong,SimSun,"Noto Serif SC",serif;font-size:22px;flex:1;color:var(--ink-dark)}.back-btn{width:40px;height:40px;border-radius:10px;background:var(--bg-card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;color:var(--ink-dark);font-size:0;line-height:1;flex-shrink:0}.back-btn:active{background:var(--border)}.back-btn:before{content:none!important;background-image:none!important}.header>.module-switch{margin:12px auto 0 -20px}.header>.module-switch-wrap{margin:12px 0 0 -20px;text-align:left}.module-switch-wrap>.module-switch{margin:0}.app-icon,[data-icon]{display:inline-flex;align-items:center;justify-content:center;line-height:0}.back-btn[data-icon]{display:flex}.back-btn[data-icon]>svg{width:20px;height:20px}[data-icon]>svg{width:1em;height:1em;display:block}.section{background:#ffffffeb;border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px;box-shadow:0 2px 12px var(--shadow)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}.form-item{margin-bottom:12px}.form-label{display:block;margin-bottom:6px;color:var(--ink-light);font-size:13px}.form-input,.form-select,.form-textarea{width:100%;border:1px solid var(--border);border-radius:10px;background:var(--bg-primary);padding:11px 12px;color:var(--ink-dark);font-size:14px;font-family:inherit;box-sizing:border-box}select{-moz-appearance:auto;appearance:auto;-webkit-appearance:menulist;padding-right:12px}.datepicker-wrap{position:relative;width:100%}.datepicker-wrap>input[type=hidden]{display:none}.datepicker-trigger{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:11px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-primary);color:var(--ink-dark);font-size:14px;font-family:inherit;cursor:pointer;box-sizing:border-box}.datepicker-runtime-icon{display:inline-flex;width:18px;height:18px;margin-left:auto;flex-shrink:0}.datepicker-popup{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:2100;background:#fffffff5;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px #00000026;overflow:hidden}.dp-nav{width:32px;height:32px;border-radius:50%;border:none;background:var(--bg-primary);color:var(--ink-dark);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}.dp-nav:active{background:var(--vermillion-light)}.dp-day{text-align:center;padding:4px 2px;cursor:pointer;border-radius:8px;min-height:44px;display:flex;align-items:center;justify-content:center}.dp-day:hover{background:var(--vermillion-light)}.dp-day.today{border:1px solid rgba(179,45,55,.42)}.dp-footer .dp-today-btn{background:var(--vermillion-light);color:var(--vermillion)}.btn{border:none;border-radius:10px;padding:10px 14px;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn-primary{background:var(--vermillion);color:#fff}.btn-secondary{background:var(--gold-light);color:var(--ink-dark)}.btn-danger{background:var(--vermillion-light);color:var(--vermillion)}.btn-sm{padding:6px 10px;font-size:12px}.btn-cancel{background:var(--bg-primary);color:var(--ink-dark);border:1px solid var(--border)}.datepicker-wrap{position:relative}.datepicker-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-primary);font-size:14px;color:var(--ink-dark);cursor:pointer;box-sizing:border-box;font-family:inherit}.datepicker-trigger:focus{outline:none;border-color:var(--vermillion);box-shadow:0 0 0 3px var(--vermillion-light)}.datepicker-trigger .placeholder{color:var(--ink-muted)}.datepicker-trigger .lunar-show{color:var(--ink-muted);font-size:12px;margin-left:auto}.datepicker-popup{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px #00000026;overflow:hidden}.datepicker-popup.open{display:block}.dp-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px}.dp-nav{width:32px;height:32px;border-radius:50%;border:none;background:var(--bg-primary);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;color:var(--ink-dark)}.dp-nav:active{background:var(--gold-light)}.dp-year-month{font-size:15px;font-weight:600;color:var(--ink-dark);text-align:center}.dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:4px 8px}.dp-weekday{text-align:center;font-size:11px;color:var(--ink-muted);padding:4px 0}.dp-weekday.sun{color:var(--vermillion)}.dp-days{display:grid;grid-template-columns:repeat(7,1fr);padding:0 8px 8px}.dp-day{text-align:center;padding:4px 2px;cursor:pointer;border-radius:8px;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center}.dp-day:hover{background:var(--gold-light)}.dp-day.other-month{opacity:.25}.dp-day.today{border:1px solid var(--gold)}.dp-day.selected{background:var(--vermillion)}.dp-day.selected .dp-solar{color:#fff;font-weight:700}.dp-day.selected .dp-lunar{color:#fffc}.dp-day.past{opacity:.35;cursor:default}.dp-day.past:hover{background:transparent}.dp-solar{font-size:14px;color:var(--ink-dark);line-height:1.3}.dp-day.selected .dp-solar{color:#fff}.dp-lunar{font-size:10px;color:var(--ink-muted);line-height:1.2;transform:scale(.92)}.dp-footer{display:flex;gap:6px;padding:8px 14px 12px;border-top:1px solid var(--border)}.dp-footer button{flex:1;padding:8px;border:none;border-radius:8px;font-size:13px;cursor:pointer}.dp-footer .dp-today-btn{background:var(--gold-light);color:var(--ink-dark)}.dp-footer .dp-confirm-btn{background:var(--vermillion);color:#fff}.dp-footer .dp-cancel-btn{background:var(--bg-primary);color:var(--ink-muted)}.user-card,.semester-card,.admin-section,.profile-card,.menu-section,.system-users-card,.filter-section,.log-item,.rank-card,.bigclass-header,.date-selector,.tab-selector{background-color:#ffffffeb}.back-btn,.date-nav-btn,.modal-close,.load-more button{box-shadow:0 1px 6px #2d2d2d0b}a.back-btn{font-size:0;line-height:1}.semester-subtitle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-muted)}.semester-subtitle .dot{width:6px;height:6px;border-radius:50%;background:var(--vermillion);flex-shrink:0}.semester-subtitle .name{color:var(--ink-dark);font-weight:500}.semester-wrap{display:flex;align-items:center;justify-content:center;padding:14px 18px;margin-bottom:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.semester-tag{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-dark)}.semester-tag .dot{width:8px;height:8px;border-radius:50%;background:var(--vermillion);flex-shrink:0}.semester-tag .label{font-size:.85em;color:var(--ink-muted)}.semester-tag .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.semester-tag.lg{font-size:18px;gap:10px}.semester-tag.lg .dot{width:10px;height:10px}.org-cascade{display:flex;gap:12px}.org-cascade .org-group{flex:1}.org-cascade .org-label{display:block;font-size:12px;color:var(--ink-muted);margin-bottom:4px}.org-cascade .org-select{width:100%;padding:6px 8px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary);color:var(--ink-dark);font-family:inherit}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid rgba(176,38,33,.42);outline-offset:2px}[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}[data-icon]>svg{width:1em;height:1em}[data-icon] svg [fill=currentColor]{fill:none}[data-icon] svg{overflow:visible;stroke-width:1.8}.datepicker-runtime-icon,.details-runtime-icon{display:inline-flex;align-items:center;justify-content:center}.bigclass-arrow{display:inline-flex;transition:transform .2s ease}.bigclass-arrow.collapsed{transform:rotate(-90deg)}.app-loading main,.app-loading .page-container,.app-loading .dashboard-content{opacity:.55;pointer-events:none}.app-week-switcher-host{margin-bottom:14px}.app-week-switcher-host--flush{margin-bottom:0}.app-week-switcher{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);box-shadow:0 2px 12px var(--shadow);width:100%;box-sizing:border-box}.section .app-week-switcher{background:transparent;border:none;box-shadow:none;padding:0}.app-week-nav,.app-week-actions{display:flex;align-items:center}.app-week-nav{min-width:0;flex:1;gap:8px}.app-week-actions{flex:0 0 auto;gap:6px;margin-left:4px}.app-week-arrow{display:inline-flex;width:32px;height:32px;flex:0 0 32px;align-items:center;justify-content:center;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);color:var(--ink-dark);box-shadow:0 1px 6px #2d2d2d0b;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;flex-shrink:0}.app-week-arrow:hover{border-color:#b32d374d;background:var(--vermillion-light);color:var(--vermillion)}.app-week-arrow:active{transform:scale(.94)}.app-week-arrow:disabled,.app-week-today:disabled{opacity:.42;cursor:not-allowed}.app-week-arrow-icon,.app-week-arrow-icon svg{display:block;width:18px;height:18px}.app-week-current{min-width:0;flex:1;text-align:center}.app-week-label{color:var(--ink-dark);font-size:14px;font-weight:650;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-week-range{margin-top:2px;color:var(--ink-muted);font-size:11px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-week-caption{margin-top:3px;color:var(--ink-muted);font-size:11px}.app-week-today{flex-shrink:0;white-space:nowrap;padding:5px 10px;border:1px solid rgba(179,45,55,.2);border-radius:999px;background:var(--vermillion-light);color:var(--vermillion);font-size:11px;font-weight:600;cursor:pointer}@media(max-width:520px){.app-week-switcher{gap:10px;padding:12px 14px}.app-week-nav{flex:1;gap:8px}.app-week-current{min-width:0;flex:1}.app-week-arrow{width:34px;height:34px;flex-basis:34px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
