@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--primary-h:256;--primary-s:56%;--primary-l:45%;--primary-rgb:94, 53, 177;--secondary-h:174;--secondary-s:60%;--secondary-l:35%;--neutral-h:240;--neutral-s:15%;--md-sys-color-primary:hsl(var(--primary-h), var(--primary-s), var(--primary-l));--md-sys-color-on-primary:#fff;--md-sys-color-primary-container:hsl(var(--primary-h), var(--primary-s), 92%);--md-sys-color-on-primary-container:hsl(var(--primary-h), var(--primary-s), 15%);--md-sys-color-secondary:hsl(var(--secondary-h), var(--secondary-s), var(--secondary-l));--md-sys-color-on-secondary:#fff;--md-sys-color-secondary-container:hsl(var(--secondary-h), var(--secondary-s), 90%);--md-sys-color-on-secondary-container:hsl(var(--secondary-h), var(--secondary-s), 10%);--md-sys-color-background:hsl(var(--neutral-h), 20%, 98%);--md-sys-color-on-background:hsl(var(--neutral-h), 30%, 12%);--md-sys-color-surface:hsl(var(--neutral-h), 15%, 96%);--md-sys-color-on-surface:hsl(var(--neutral-h), 30%, 15%);--md-sys-color-surface-variant:hsl(var(--neutral-h), 12%, 91%);--md-sys-color-on-surface-variant:hsl(var(--neutral-h), 20%, 30%);--md-sys-color-surface-container-lowest:#fff;--md-sys-color-surface-container-low:hsl(var(--neutral-h), 15%, 94%);--md-sys-color-surface-container:hsl(var(--neutral-h), 15%, 92%);--md-sys-color-surface-container-high:hsl(var(--neutral-h), 15%, 90%);--md-sys-color-surface-container-highest:hsl(var(--neutral-h), 15%, 88%);--md-sys-color-outline:hsl(var(--neutral-h), 10%, 75%);--md-sys-color-outline-variant:hsl(var(--neutral-h), 10%, 85%);--md-sys-color-error:#c91d1d;--md-sys-color-on-error:#fff;--md-sys-color-error-container:#fbdfdf;--md-sys-color-on-error-container:#450808;--glass-bg:#ffffff73;--glass-border:#fff9;--glass-shadow:0 8px 32px 0 #1f26870f;--blur-radius:12px;--font-sans:sans-serif;--font-mono:sans-serif;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--border-radius-xs:8px;--border-radius-sm:12px;--border-radius-md:16px;--border-radius-lg:24px;--border-radius-xl:32px;--color-success-bg:#e8f5e9;--color-success-text:#1b5e20;--color-success-border:#81c784;--color-warning-bg:#fff3e0;--color-warning-text:#e65100;--color-warning-border:#ffb74d;--color-allowance-bg:#e8f5e9;--color-allowance-text:#2e7d32;--color-allowance-border:#a5d6a7;--color-waived-bg:#e8f5e9;--color-waived-text:#2e7d32;--color-special-row-bg:#fffde7;--color-special-tag-bg:#ffe082;--color-special-tag-text:#ff8f00;--color-undergrad-row-bg:#ffebee;--color-undergrad-tag-bg:#ffcdd2;--color-undergrad-tag-text:#c62828;--color-row-special-bg:#e8f5e9;--color-row-undergrad-bg:#fff3e0;--color-row-below-bg:#ffebee;--color-slider-below:#ffccd2;--color-slider-undergrad:#ffe0b2;--color-slider-special:#c8e6c9;--slider-label-text-color:#fff;--segment-bg:var(--md-sys-color-surface-variant);--segment-active-bg:var(--md-sys-color-surface);--segment-active-color:var(--md-sys-color-primary);--segment-active-shadow:0 1px 3px #0000001a}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[theme=dark]{--primary-h:256;--primary-s:80%;--primary-l:75%;--primary-rgb:179, 136, 255;--secondary-h:174;--secondary-s:80%;--secondary-l:70%;--neutral-h:240;--neutral-s:18%;--md-sys-color-primary:hsl(var(--primary-h), var(--primary-s), var(--primary-l));--md-sys-color-on-primary:hsl(var(--primary-h), 100%, 10%);--md-sys-color-primary-container:hsl(var(--primary-h), 60%, 20%);--md-sys-color-on-primary-container:hsl(var(--primary-h), var(--primary-s), 95%);--md-sys-color-secondary:hsl(var(--secondary-h), var(--secondary-s), var(--secondary-l));--md-sys-color-on-secondary:hsl(var(--secondary-h), 100%, 10%);--md-sys-color-secondary-container:hsl(var(--secondary-h), 60%, 18%);--md-sys-color-on-secondary-container:hsl(var(--secondary-h), var(--secondary-s), 95%);--md-sys-color-background:hsl(var(--neutral-h), 25%, 6%);--md-sys-color-on-background:hsl(var(--neutral-h), 20%, 93%);--md-sys-color-surface:hsl(var(--neutral-h), 20%, 10%);--md-sys-color-on-surface:hsl(var(--neutral-h), 10%, 90%);--md-sys-color-surface-variant:hsl(var(--neutral-h), 15%, 15%);--md-sys-color-on-surface-variant:hsl(var(--neutral-h), 15%, 80%);--md-sys-color-surface-container-lowest:hsl(var(--neutral-h), 20%, 4%);--md-sys-color-surface-container-low:hsl(var(--neutral-h), 20%, 6%);--md-sys-color-surface-container:hsl(var(--neutral-h), 20%, 8%);--md-sys-color-surface-container-high:hsl(var(--neutral-h), 20%, 12%);--md-sys-color-surface-container-highest:hsl(var(--neutral-h), 20%, 16%);--md-sys-color-outline:hsl(var(--neutral-h), 10%, 32%);--md-sys-color-outline-variant:hsl(var(--neutral-h), 10%, 22%);--md-sys-color-error:#f07575;--md-sys-color-on-error:#300;--md-sys-color-error-container:#4d1919;--md-sys-color-on-error-container:#fad1d1;--glass-bg:#17181ca6;--glass-border:#ffffff0d;--glass-shadow:0 8px 32px 0 #0000004d;--blur-radius:16px;--color-success-bg:#1b5e2033;--color-success-text:#81c784;--color-success-border:#81c78466;--color-warning-bg:#e6510033;--color-warning-text:#ffb74d;--color-warning-border:#ffb74d66;--color-allowance-bg:#2e7d3233;--color-allowance-text:#81c784;--color-allowance-border:#81c78466;--color-waived-bg:#2e7d3240;--color-waived-text:#a5d6a7;--color-special-row-bg:#ffeb3b14;--color-special-tag-bg:#ffe08233;--color-special-tag-text:#ffd54f;--color-undergrad-row-bg:#f4433614;--color-undergrad-tag-bg:#ffcdd233;--color-undergrad-tag-text:#ef9a9a;--color-row-special-bg:#4caf5026;--color-row-undergrad-bg:#ffc1071f;--color-row-below-bg:#f4433626;--color-slider-below:#8c2d2a;--color-slider-undergrad:#8a5d1b;--color-slider-special:#35723e;--slider-label-text-color:#000;--segment-bg:var(--md-sys-color-surface-variant);--segment-active-bg:hsl(var(--neutral-h), 20%, 25%);--segment-active-color:var(--md-sys-color-primary);--segment-active-shadow:none}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--md-sys-color-outline-variant) transparent;margin:0;padding:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline-variant);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--md-sys-color-outline)}html,body{max-width:100vw;overflow-x:hidden}body{font-family:var(--font-sans);background:var(--md-sys-color-background);color:var(--md-sys-color-on-background);min-height:100svh;transition:background-color var(--transition-slow), color var(--transition-normal);flex-direction:column;justify-content:flex-start;align-items:center;padding:0;display:flex}calculator-app{width:100%;max-width:100vw;display:block}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--blur-radius));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--border-radius-lg);transition:background-color var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal)}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:600}code,pre{font-family:var(--font-mono)}.material-symbols-outlined{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-smoothing:antialiased;direction:ltr;font-family:Material Symbols Outlined;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}.graph-path{fill:none;stroke:var(--md-sys-color-primary);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0px 4px 8px rgba(var(--primary-rgb), .3));transition:stroke var(--transition-normal)}.graph-path-area{fill:url(#graph-gradient);pointer-events:none}.graph-grid-line{stroke:var(--md-sys-color-outline-variant);stroke-width:1px;stroke-dasharray:4 4}.graph-axis-line{stroke:var(--md-sys-color-outline);stroke-width:1.5px}.graph-axis-text{font-family:var(--font-sans);fill:var(--md-sys-color-on-surface-variant);font-size:11px;font-weight:500}.graph-hover-line{stroke:var(--md-sys-color-secondary);stroke-width:1.5px;stroke-dasharray:2 2;pointer-events:none}.graph-marker{fill:var(--md-sys-color-secondary);stroke:var(--md-sys-color-background);stroke-width:2.5px;filter:drop-shadow(0 2px 6px #0003);transition:transform .1s ease-out}.graph-bracket-marker{fill:var(--md-sys-color-outline);stroke:var(--md-sys-color-background);stroke-width:2px;cursor:pointer;transition:fill var(--transition-fast)}.graph-bracket-marker:hover{fill:var(--md-sys-color-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-subtle{0%{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}to{opacity:.9;transform:scale(1)}}.animate-fade-in{animation:fadeIn var(--transition-slow) forwards}.app-container{width:100%}.header-bar{justify-content:space-between;align-items:center;width:100%;padding:16px 24px;display:flex}.header-title-container{align-items:center;gap:12px;display:flex}.logo-icon{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container);border-radius:var(--border-radius-sm);justify-content:center;align-items:center;padding:10px;display:flex}.main-layout{grid-template-columns:1.2fr .8fr;align-items:start;gap:24px;display:grid}@media (width<=1024px){.main-layout{grid-template-columns:1fr}}@media (width<=640px){.app-container{gap:16px;padding:12px}.header-bar{padding:12px 16px}.logo-icon{padding:8px}h1{font-size:20px}}@media print{@page{size:auto;margin:0}body{color:#000!important;background:#fff!important;margin:0!important;padding:0!important}body>:not(#print-section){display:none!important}#print-section{box-sizing:border-box!important;width:100%!important;margin:0!important;padding:1.2cm!important;display:block!important;position:static!important}html,body{box-sizing:border-box!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;width:100%!important;height:auto!important;display:block!important;overflow:visible!important}.voucher-wrapper{color:#000!important;box-sizing:border-box!important;background:#fff!important;border:2px solid #000!important;flex-direction:column!important;width:100%!important;max-width:800px!important;min-height:24.5cm!important;margin:0 auto!important;padding:24px 36px!important;display:flex!important;position:relative!important}.voucher-watermark{color:#0000000a!important;letter-spacing:6px!important;white-space:nowrap!important;pointer-events:none!important;z-index:0!important;-webkit-user-select:none!important;user-select:none!important;font-size:64px!important;font-weight:900!important;position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)rotate(-30deg)!important}.voucher-header{text-align:center!important;z-index:1!important;border-bottom:2px double #000!important;margin-bottom:16px!important;padding-bottom:12px!important}.voucher-title{letter-spacing:1px!important;font-size:20px!important;font-weight:700!important}.voucher-subtitle{color:#555!important;margin-top:4px!important;font-size:11px!important}.voucher-grid{z-index:1!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin-bottom:16px!important;font-size:13px!important;display:grid!important}.voucher-section-title{z-index:1!important;border-left:3px solid #000!important;margin:14px 0 8px!important;padding-left:8px!important;font-size:14px!important;font-weight:700!important}.voucher-table{border-collapse:collapse!important;z-index:1!important;width:100%!important;margin-bottom:12px!important;font-size:12px!important}.voucher-table th,.voucher-table td{border:1px solid #000!important;padding:6px 12px!important}.voucher-table th{text-align:center!important;background-color:#f2f2f2!important;font-weight:700!important}.voucher-table td:nth-child(2){text-align:right!important}.voucher-total-row td{background-color:#f9f9f9!important}.voucher-total-amount{font-size:15px!important;font-weight:700!important}.voucher-allowance-note{z-index:1!important;background-color:#f9f9f9!important;border:1px dashed #000!important;margin-bottom:16px!important;padding:8px 12px!important;font-size:12px!important}.voucher-footer{z-index:1!important;border-top:1px dashed #000!important;justify-content:space-between!important;align-items:flex-end!important;margin-top:auto!important;padding-top:12px!important;font-size:13px!important;display:flex!important}.voucher-notes{color:#555!important;z-index:1!important;border-top:1px solid #ccc!important;margin-top:16px!important;padding-top:10px!important;font-size:10px!important;line-height:1.5!important}}#print-section{display:none}:root{--watermark-desktop-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='130' height='130' viewBox='0 0 130 130'%3E%3Ctext x='5' y='65' fill='%23000' font-family='sans-serif' font-size='9' font-weight='bold' transform='rotate(-30 5 65)'%3E内部数据 严禁外传%3C/text%3E%3C/svg%3E");--watermark-desktop-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='130' height='130' viewBox='0 0 130 130'%3E%3Ctext x='5' y='65' fill='%23fff' font-family='sans-serif' font-size='9' font-weight='bold' transform='rotate(-30 5 65)'%3E内部数据 严禁外传%3C/text%3E%3C/svg%3E");--watermark-mobile-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='70' viewBox='0 0 90 70'%3E%3Ctext x='45' y='35' fill='%23000' font-family='sans-serif' font-size='9' font-weight='bold' text-anchor='middle' dominant-baseline='middle' transform='rotate(-30 45 35)'%3E内部数据 严禁外传%3C/text%3E%3C/svg%3E");--watermark-mobile-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='70' viewBox='0 0 90 70'%3E%3Ctext x='45' y='35' fill='%23fff' font-family='sans-serif' font-size='9' font-weight='bold' text-anchor='middle' dominant-baseline='middle' transform='rotate(-30 45 35)'%3E内部数据 严禁外传%3C/text%3E%3C/svg%3E")}body{position:relative}body:after{content:"";pointer-events:none;z-index:9999;opacity:0;transition:opacity var(--transition-normal);position:fixed;inset:0}body.authorized-watermark:after{opacity:.04;background-image:var(--watermark-desktop-light)}:root[theme=dark] body.authorized-watermark:after{opacity:.06;background-image:var(--watermark-desktop-dark)}@media (width<=767px){::-webkit-scrollbar{display:none!important}html,body{scrollbar-width:none!important;-ms-overflow-style:none!important}body.authorized-watermark:after{background-image:var(--watermark-mobile-light)}:root[theme=dark] body.authorized-watermark:after{background-image:var(--watermark-mobile-dark)}}
