:root{--bg-base:#eef2f7;--bg-soft:#ffffff8c;--card-bg:#ffffff6b;--card-border:#ffffff8c;--card-shadow:0 8px 32px #1f2d3d14;--text-1:#1c2733;--text-2:#556575;--text-3:#8a99a8;--accent:#3b82f6;--accent-soft:#3b82f61f;--danger:#ef4444;--ok:#10b981;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--nav-h:62px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{-webkit-tap-highlight-color:transparent}a,button,[role=button],div,span,a:focus,button:focus,[role=button]:focus,a:focus-visible,button:focus-visible,[role=button]:focus-visible{-webkit-tap-highlight-color:transparent;outline:none!important}:focus:not(:focus-visible){outline:none}[data-theme=dark]{--bg-base:#0f1419;--bg-soft:#141c2699;--card-bg:#161e298c;--card-border:#ffffff1a;--card-shadow:0 8px 32px #00000059;--text-1:#e8edf3;--text-2:#9aa8b8;--text-3:#64748b;--accent:#60a5fa;--accent-soft:#60a5fa26}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text-1);background:var(--bg-base);-webkit-font-smoothing:antialiased;overflow-x:hidden}.bg-layer{z-index:-2;background:var(--bg-base);transition:background .4s;position:fixed;inset:0}.bg-wallpaper{z-index:-1;filter:blur()brightness(.98);opacity:.92;background-position:50%;background-size:cover;transition:filter .6s,opacity .6s;position:fixed;inset:0}.bg-blur-strong .bg-wallpaper{filter:blur(14px)brightness(.92)}.bg-blur-soft .bg-wallpaper{filter:blur(5px)brightness(.96)}.bg-dimmer:after{content:"";z-index:0;background:#00000047;position:fixed;inset:0}[data-theme=dark] .bg-dimmer:after{background:#00000073}.glass{background:var(--card-bg);-webkit-backdrop-filter:blur(18px)saturate(150%);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--card-shadow)}.glass-btn{background:var(--bg-soft);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);color:var(--text-1);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:8px 18px;font-size:14px;transition:all .2s;display:inline-flex}.glass-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px #1f2d3d1a}.glass-btn:active{transform:translateY(0)}.glass-btn.primary{color:#fff;background:linear-gradient(135deg,#3b82f6eb,#6366f1eb);border-color:#0000}.glass-btn.danger{color:var(--danger)}.glass-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.input-glass{background:var(--bg-soft);border:1px solid var(--card-border);border-radius:var(--radius-md);width:100%;color:var(--text-1);outline:none;padding:11px 14px;font-family:inherit;font-size:14px;transition:border .2s,box-shadow .2s}.input-glass:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input-glass::placeholder{color:var(--text-3)}textarea.input-glass{resize:vertical;min-height:90px}.capsule-nav{bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:50;isolation:isolate;-webkit-backdrop-filter:blur(28px)saturate(190%)brightness(1.06);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:linear-gradient(120deg,#ffffffc7,#ffffff70);border:1px solid #ffffffd1;border-radius:999px;align-items:center;width:min(92vw,460px);height:62px;padding:6px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 24px 50px -18px #1a1e2e47,0 10px 22px -14px #1a1e2e33,inset 0 1px #fffffff2,inset 0 -1px #ffffff59}.capsule-nav:before{content:"";border-radius:inherit;pointer-events:none;z-index:1;background:linear-gradient(#fff9 0%,#fff0 42%),radial-gradient(130% 90% at 8% -10%,#ffffff8c,#0000 55%),radial-gradient(90% 120% at 96% 118%,#fff6,#0000 58%);position:absolute;inset:0}.capsule-nav:after{content:"";border-radius:inherit;pointer-events:none;z-index:4;opacity:.13;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;position:absolute;inset:0}[data-theme=dark] .capsule-nav{background:linear-gradient(120deg,#242c38bd,#10161e85);border-color:#ffffff29;box-shadow:0 24px 50px -18px #0009,0 10px 22px -14px #00000073,inset 0 1px #ffffff29,inset 0 -1px #ffffff0f}.nav-trail{pointer-events:none;z-index:1;filter:blur(12px);opacity:.5;background:radial-gradient(closest-side,#181a2238,#181a220d 70%,#0000 100%);border-radius:999px;height:calc(100% - 12px);transition:left .9s cubic-bezier(.22,.9,.24,1),width .9s cubic-bezier(.22,.9,.24,1);position:absolute;top:6px}.nav-lens{pointer-events:none;z-index:2;-webkit-backdrop-filter:blur(6px)saturate(150%)brightness(1.02);will-change:left, width, transform;background:linear-gradient(160deg,#ffffff85,#ffffff0f 60%),#12141a17;border-radius:999px;height:calc(100% - 12px);transition:left .58s cubic-bezier(.34,1.16,.36,1),width .58s cubic-bezier(.34,1.16,.36,1);position:absolute;top:6px;overflow:hidden;box-shadow:inset 0 1px #ffffffc7,inset 0 -1px 1px #ffffff2e,inset 0 0 0 1px #ffffff47,0 2px 6px #14182414}.nav-lens:before{content:"";filter:blur(6px);pointer-events:none;background:radial-gradient(60% 100% at 50% 0,#ffffff8c,#0000 72%);height:70%;position:absolute;inset:-30% -10% auto}.nav-lens:after{content:"";filter:blur(8px);pointer-events:none;background:radial-gradient(50% 100% at 50% 100%,#14182429,#0000 70%);height:46%;position:absolute;inset:auto 8% -22%}[data-theme=dark] .nav-lens{background:linear-gradient(160deg,#ffffff29,#ffffff08 60%),#ffffff0f;box-shadow:inset 0 1px #ffffff3d,inset 0 -1px 1px #ffffff0f,inset 0 0 0 1px #ffffff1a,0 2px 6px #00000040}.nav-lens.squeeze{animation:.62s cubic-bezier(.3,1.5,.4,1) navSquash}@keyframes navSquash{0%{transform:scaleX(1)scaleY(1)}32%{transform:scaleX(1.05)scaleY(.94)}62%{transform:scaleX(.985)scaleY(1.02)}to{transform:scaleX(1)scaleY(1)}}.nav-item{z-index:3;cursor:pointer;min-width:0;height:100%;color:var(--text-2);-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;outline:none;flex:1 1 0;place-items:center;padding:0;transition:color .3s;display:grid;position:relative}.nav-item.is-active{color:var(--accent)}.nav-item:focus-visible .icon-wrap{outline:none}.icon-wrap{place-items:center;transition:transform .42s cubic-bezier(.34,1.56,.64,1),opacity .3s;display:grid}.nav-item:active .icon-wrap{transform:scale(.9)}.nav-item.is-active .icon-wrap{transform:scale(1.06)}@media (prefers-reduced-motion:reduce){.nav-lens,.nav-trail,.icon-wrap{transition-duration:.01ms!important}.nav-lens.squeeze{animation:none}}.page{max-width:560px;padding:18px 16px calc(var(--nav-h) + 72px);min-height:100vh;margin:0 auto}.page-title{letter-spacing:-.02em;font-size:22px;font-weight:700}.page-sub{color:var(--text-2);margin-top:4px;font-size:13px}.row{align-items:center;gap:10px;display:flex}.spread{justify-content:space-between;align-items:center;gap:10px;display:flex}.muted{color:var(--text-3);font-size:12px}.small{font-size:13px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt20{margin-top:20px}.divider{background:var(--card-border);height:1px;margin:12px 0}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff1a,#ffffff59,#ffffff1a) 0 0/200% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#7f8c9b4d;border-radius:3px}.modal-mask{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a66;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{-webkit-backdrop-filter:blur(26px)saturate(160%);border:1px solid var(--card-border);border-radius:var(--radius-lg);background:#ffffffd9;width:min(92vw,480px);max-height:84vh;padding:20px;overflow-y:auto;box-shadow:0 24px 60px #0f172a40}[data-theme=dark] .modal-card{background:#141c26e6}.badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.badge.ok{color:var(--ok);background:#10b9811f}.badge.warn{color:#d97706;background:#f59e0b24}.badge.danger{color:var(--danger);background:#ef44441f}.school-dropdown{background:var(--card);border:1px solid var(--card-border);z-index:60;-webkit-backdrop-filter:blur(20px);border-radius:14px;max-height:200px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #00000024}.school-option{cursor:pointer;border-radius:9px;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;font-size:13px;transition:background .15s;display:flex}.school-option:hover{background:var(--bg-soft)}.school-dropdown.up{top:auto;bottom:calc(100% + 6px);box-shadow:0 -10px 30px #0000001f}
