:root{--bg:#11131c;--panel:#1a1e2a;--line:#343c50;--ink:#f5f1e8;--muted:#aeb5c5;--gold:#eabd4a;--gold2:#ffd978;--green:#6fd6a3;--red:#ff7f85;--blue:#8eb9ff;--radius:22px;font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 75% -10%,#263452 0,transparent 30rem),linear-gradient(145deg,#10131c,#151924 55%,#0d0f16);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:25px 18px;border-right:1px solid var(--line);background:rgba(14,16,24,.76);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:12px;padding:8px 9px 26px;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:45px;height:45px;border-radius:15px;background:linear-gradient(145deg,#ffe5a2,var(--gold));color:#342708;font-size:27px;font-weight:1000;box-shadow:0 12px 28px #0004}.brand strong{display:block;font-size:18px;letter-spacing:.05em}.brand small{display:block;margin-top:3px;color:#8f98aa;font-size:9px;letter-spacing:.16em}.main-nav{display:grid;gap:6px}.nav-item{border:0;border-radius:13px;padding:12px 14px;background:transparent;color:#bac1d0;text-align:left;font-weight:800;transition:.18s}.nav-item:hover{background:#222838;color:#fff}.nav-item.active{background:linear-gradient(105deg,#4e4022,#2d2b29);color:var(--gold2);box-shadow:inset 2px 0 var(--gold)}.local-note{margin-top:auto;padding:16px 9px 2px;color:#7f889a;font-size:12px;line-height:1.7}.main-content{width:min(1430px,100%);margin:0 auto;padding:46px clamp(20px,4vw,58px) 72px}.mobile-head{display:none}.view{display:none;animation:fade .2s ease}.view.active{display:block}@keyframes fade{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:none}}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading h1,.student-intro h1{margin:3px 0 7px;font-size:clamp(30px,4vw,46px);line-height:1.1;letter-spacing:.02em}.page-heading p:not(.eyebrow),.student-intro p{margin:0;color:var(--muted);line-height:1.65}.eyebrow{margin:0;color:var(--gold);font-size:11px;font-weight:1000;letter-spacing:.16em}.button{min-height:43px;padding:0 15px;border:1px solid #4b5367;border-radius:12px;background:#272d3c;color:var(--ink);font-weight:850;transition:.18s}.button:hover{transform:translateY(-1px);border-color:#737e97;background:#30384a}.button.gold{border-color:#e6bd52;background:linear-gradient(145deg,#f6d574,#dba73c);color:#302407;box-shadow:0 10px 25px #cb972633}.button.gold:hover{background:#ffe18a}.button.ghost{background:transparent}.button:disabled{cursor:not-allowed;filter:grayscale(.75);opacity:.55;transform:none}.danger-button{border-color:#94474e!important;background:#552b32!important;color:#ffdadd!important}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.stat-card{min-height:155px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#202635,#181c27);box-shadow:0 17px 45px #0003}.stat-card.gold-card{border-color:#715d2c;background:radial-gradient(circle at 88% 12%,#ffe07a4d,transparent 38%),linear-gradient(145deg,#3d3420,#211f1a)}.stat-card span,.stat-card small{display:block;color:var(--muted);font-size:13px;font-weight:800}.stat-card strong{display:block;margin:14px 0 5px;color:#fff;font-size:38px;line-height:1}.gold-card strong{color:var(--gold2)}.panel{margin-bottom:20px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:#1a1e2ae0;box-shadow:0 15px 42px #0002}.panel.compact{height:max-content}.panel h2{margin:0 0 16px;font-size:19px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.panel-title h2{margin:0}.muted{color:var(--muted);font-size:13px;line-height:1.6}.small{font-size:12px}.milestone-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.milestone{padding:17px;border:1px solid #384056;border-radius:16px;background:#202635}.milestone-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:13px;font-weight:900}.milestone small{display:block;margin-top:8px;color:var(--muted);font-size:11px}.progress{height:8px;overflow:hidden;border-radius:99px;background:#111521}.progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#dbaa3f,#ffe38b)}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rank-list,.quick-actions,.record-list,.shop-items,.student-history{display:grid;gap:10px}.rank-row{display:grid;grid-template-columns:62px 1fr 35px;align-items:center;gap:12px;font-size:13px;font-weight:850}.rank-row span:last-child{text-align:right;color:var(--muted)}.rank-bar{height:10px;overflow:hidden;border-radius:99px;background:#111521}.rank-bar i{display:block;height:100%;border-radius:inherit;background:var(--rank)}.quick-actions .button{display:flex;justify-content:space-between;align-items:center}.quick-actions b{color:var(--gold2)}.record-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #ffffff12}.record-item:last-child{border-bottom:0}.record-main{min-width:0}.record-main strong,.record-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-main strong{font-size:13px}.record-main small{margin-top:3px;color:var(--muted);font-size:11px}.record-amount{color:var(--green);font-size:16px;font-weight:950;white-space:nowrap}.record-amount.negative{color:var(--red)}.empty{padding:20px 4px;color:#8790a2;font-size:13px;text-align:center}.form-grid{align-items:start}.form-grid-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.form-grid-fields .wide{grid-column:span 3}.panel label{display:grid;gap:7px;margin-bottom:14px;color:#cfd4df;font-size:13px;font-weight:850}.panel label small{color:var(--muted);font-size:11px;font-weight:700}.panel input,.panel select,.lookup-form input{width:100%;min-height:43px;padding:0 12px;border:1px solid #424b60;border-radius:10px;outline:0;background:#121722;color:var(--ink)}.panel input:focus,.panel select:focus,.lookup-form input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #eabd4a21}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.salary-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:5px 0 17px}.salary-preview div,.balance-box{padding:13px;border-radius:12px;background:#121722;border:1px solid #30394e}.salary-preview span,.salary-preview strong{display:block}.salary-preview span{color:var(--muted);font-size:11px;font-weight:800}.salary-preview strong{margin-top:5px;color:var(--gold2);font-size:23px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:780px}th,td{padding:13px 10px;border-bottom:1px solid #ffffff14;text-align:left;font-size:13px}th{color:#99a3b8;font-size:11px;letter-spacing:.07em}td small{display:block;color:var(--muted);margin-top:3px}.rank-chip,.status-chip{display:inline-flex;padding:4px 9px;border-radius:99px;background:#2a3040;color:#dce1eb;font-size:11px;font-weight:900}.rank-chip.diamond{background:#43426d;color:#d9d8ff}.rank-chip.platinum{background:#25555d;color:#c8f6f8}.rank-chip.gold{background:#5d4b21;color:#ffe29a}.rank-chip.silver{background:#424b5a;color:#ebf0f7}.status-chip.off{background:#422d35;color:#ffc8ce}.table-actions{display:flex;gap:7px}.mini-button,.text-button{border:0;background:transparent;color:var(--blue);font-size:12px;font-weight:850}.mini-button.warn{color:#ffc6cb}.shop-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px;border:1px solid #353e52;border-radius:14px;background:#202635}.shop-item strong{display:block;font-size:14px}.shop-item span{color:var(--gold2);font-weight:950}.shop-item small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.status-pill{padding:8px 12px;border-radius:99px;background:#263443;color:#a9e6c4;font-size:12px;font-weight:850}.status-pill.closed{background:#3e3336;color:#ffc7cb}.balance-box{margin:2px 0 14px;color:#bdc5d5;font-size:13px;line-height:1.7}.balance-box strong{color:var(--gold2)}.fund-hero{min-width:160px;padding:15px 21px;border:1px solid #735f2c;border-radius:16px;background:#292315;text-align:right}.fund-hero span,.fund-hero strong{display:block}.fund-hero span{color:#d9c58e;font-size:11px;font-weight:800}.fund-hero strong{margin-top:3px;color:var(--gold2);font-size:27px}.student-shell{width:min(700px,100%);margin:3vh auto}.student-intro{text-align:center}.lookup-form{display:flex;gap:10px;margin:27px 0 12px}.lookup-form input{font-size:16px}.centered{text-align:center}.student-rules{margin-top:25px;padding:20px 22px;border:1px solid #544c35;border-radius:18px;background:linear-gradient(145deg,#2b281e,#1b1e27);color:#e5e0d6;font-size:14px;line-height:1.7}.student-rules h2{margin:0 0 7px;color:var(--gold2);font-size:17px}.student-rules p{margin:8px 0}.student-rules ol{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 22px;margin:8px 0;padding-left:22px}.student-result{margin-top:26px;padding:25px;border:1px solid #4a4f64;border-radius:24px;background:linear-gradient(145deg,#222838,#171b27)}.student-result-header{display:flex;align-items:center;justify-content:space-between;gap:15px}.student-result h2{margin:0;font-size:25px}.student-result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:22px 0}.student-result-grid div{padding:13px;border-radius:13px;background:#111621}.student-result-grid span,.student-result-grid strong{display:block}.student-result-grid span{color:var(--muted);font-size:11px}.student-result-grid strong{margin-top:4px;color:#fff;font-size:20px}.summary-grid{margin:0}.summary-grid .stat-card{min-height:112px}.danger{border-color:#74434b;background:linear-gradient(145deg,#342127,#21191d)}#toast{position:fixed;right:24px;bottom:24px;z-index:30;max-width:min(360px,calc(100vw - 48px));padding:13px 16px;border:1px solid #68728b;border-radius:13px;background:#242b3b;color:#fff;box-shadow:0 18px 45px #0006;opacity:0;pointer-events:none;transform:translateY(13px);transition:.25s;font-size:13px;font-weight:800}#toast.show{opacity:1;transform:none}#toast.error{border-color:#b55c65;background:#4a2931}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:20;left:0;top:0;width:260px;transform:translateX(-105%);transition:.22s}.sidebar.open{transform:none}.main-content{padding-top:82px}.mobile-head{position:fixed;z-index:15;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;height:59px;padding:0 17px;border-bottom:1px solid var(--line);background:#0e1018eb;backdrop-filter:blur(14px)}.mobile-head a,.icon-button{border:0;background:transparent;color:var(--ink);font-size:22px;text-decoration:none}.milestone-grid{grid-template-columns:repeat(2,1fr)}.three-col{grid-template-columns:1fr}.form-grid-fields{grid-template-columns:repeat(2,1fr)}.form-grid-fields .wide{grid-column:span 2}}@media(max-width:620px){.main-content{padding:78px 15px 45px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:20px}.page-heading .button,.fund-hero{width:100%;text-align:center}.stats-grid,.two-col,.salary-preview,.student-result-grid{grid-template-columns:1fr}.milestone-grid{grid-template-columns:1fr}.form-grid-fields,.form-grid-fields .wide{grid-template-columns:1fr;grid-column:span 1}.lookup-form{flex-direction:column}.student-result-header{align-items:flex-start;flex-direction:column}.panel{padding:18px;border-radius:18px}.stat-card{min-height:120px}.record-item{align-items:flex-start}.fund-hero{text-align:left}.shop-layout{gap:0}.student-rules ol{grid-template-columns:1fr}}
