:root{color-scheme:light;font-family:DM Sans,PingFang SC,Microsoft YaHei,sans-serif;color:#202020;background:#eeeeec;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #eeeeec;--ink: #202020;--muted: #717171;--line: #d0d0d0;--accent: #2949e8;--selected: #f2ee70;--surface: #f8f8f6;--warning: #8a6500}*,*:before,*:after{box-sizing:border-box}::selection{color:var(--ink);background:var(--selected)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}body{min-width:320px;margin:0;line-height:1.65}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}.skip-link{position:fixed;z-index:20;top:10px;left:10px;padding:8px 12px;background:var(--ink);color:var(--paper);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header,main,footer{width:min(100% - 2 * clamp(18px,5vw,70px),1240px);margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:74px}.brand{font-size:17px;font-weight:700;letter-spacing:-.03em}.brand span,em{color:var(--accent);font-style:normal}.header-links,.header-links a{display:flex;align-items:center;gap:6px}.header-links{gap:18px;color:var(--muted);font-size:12px}.header-links a:hover,footer a:hover{color:var(--accent)}.plain-button{display:inline-grid;place-items:center;min-width:42px;min-height:42px;padding:0;border:0;background:transparent;color:var(--muted)}.plain-button:hover{color:var(--accent)}.intro{padding:clamp(50px,9vw,112px) 0 34px}.eyebrow{margin:0;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.14em;line-height:1.3}.intro-line{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-top:15px}h1{margin:0;font-size:clamp(38px,6vw,72px);font-weight:650;letter-spacing:-.07em;line-height:1.05}.intro-line p:not(.eyebrow){max-width:440px;margin:24px 0 0;color:var(--muted);font-size:14px}.upload-button{display:inline-flex;align-items:center;gap:9px;min-height:48px;padding:0 17px;border:1px solid var(--accent);background:var(--accent);color:#fff;font-size:13px;font-weight:600;white-space:nowrap}.upload-button:hover{background:var(--ink);border-color:var(--ink)}.upload-button.disabled{opacity:.6;pointer-events:none}.upload-button input{position:absolute;width:1px;height:1px;opacity:0}.status-line{display:flex;gap:12px;align-items:center;min-height:26px;margin-top:24px;color:var(--muted);font-size:11px}.progress{color:var(--accent);font-variant-numeric:tabular-nums}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:15px 0;border-block:1px solid var(--line)}.mode-switch,.export-actions{display:flex;align-items:center;gap:4px}.mode-switch button,.export-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 11px;border:0;background:transparent;color:var(--muted);font-size:11px}.mode-switch button:hover,.export-actions button:hover{color:var(--accent)}.mode-switch button.selected{background:var(--selected);color:var(--ink);font-weight:700}.review-strip{padding:18px 0 2px}.review-heading{display:flex;align-items:center;gap:8px;color:var(--warning);font-size:12px}.review-heading span{color:var(--muted)}.review-list{display:grid;gap:6px;margin-top:10px}.review-item{display:flex;align-items:center;gap:12px;min-width:0;padding:7px 0;color:var(--muted);font-size:11px;border-bottom:1px solid var(--line)}.review-item>span{min-width:118px}.review-item strong{min-width:70px;color:var(--ink);font-weight:600}.review-item button{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 7px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:10px}.review-item button:hover{border-color:var(--accent);color:var(--accent)}.review-item .icon-only{margin-left:auto;min-width:28px;justify-content:center;border:0}.schedule-section{padding:42px 0 20px}.schedule-heading,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.schedule-heading>span{color:var(--muted);font-size:11px}.title-input{width:min(100%,440px);padding:0;border:0;background:transparent;color:var(--ink);font-size:25px;font-weight:650;letter-spacing:-.045em;outline:0}.title-input:focus{box-shadow:0 2px var(--accent)}.schedule-scroll{overflow-x:auto;margin-top:18px;padding-bottom:6px}.schedule-sheet{min-width:700px;padding:26px;background:var(--surface)}.schedule-caption{margin-bottom:12px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.16em}.schedule-brand{display:flex;align-items:baseline;justify-content:flex-end;gap:8px;margin-top:14px;color:var(--muted);font-size:10px}.schedule-brand strong{color:var(--ink);font-size:12px;letter-spacing:-.03em}.schedule-brand strong span{color:var(--accent)}.schedule-brand small{font-size:9px}.schedule-table{width:100%;border-collapse:collapse;table-layout:fixed}.schedule-table th,.schedule-table td{position:relative;min-width:108px;border:1px solid var(--line)}.schedule-table thead th{height:42px;background:#f0f0ed;color:var(--muted);font-size:11px;font-weight:700}.schedule-table .period-column{width:70px;min-width:70px;text-align:center}.schedule-table tbody .period-column{background:#f0f0ed;color:var(--ink);font-size:13px}.period-column small{display:block;margin-top:3px;color:var(--muted);font-size:8px;font-weight:400;line-height:1.35}.schedule-table td{height:82px;padding:7px 8px;vertical-align:top;background:var(--surface)}.schedule-table td:focus-within{z-index:1;box-shadow:inset 0 0 0 2px var(--accent)}.schedule-table td.needs-review{background:#fff8d3}.course-input,.meta-input{display:block;width:100%;padding:2px 0;border:0;outline:0;background:transparent;color:var(--ink)}.course-input{font-size:13px;font-weight:650}.meta-input{margin-top:6px;color:var(--muted);font-size:10px}.course-input::placeholder,.meta-input::placeholder{color:#aaa}.remove-cell{position:absolute;top:2px;right:2px;display:none;width:21px;height:21px;padding:0;border:0;background:transparent;color:var(--muted)}.schedule-table td:hover .remove-cell,.remove-cell:focus{display:grid;place-items:center}.remove-cell:hover{color:var(--accent)}.manual-section{padding:38px 0 70px;border-top:1px solid var(--line)}.section-heading h2{margin:5px 0 0;font-size:23px;letter-spacing:-.04em}.text-button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0;border:0;background:transparent;color:var(--muted);font-size:11px}.text-button:hover{color:var(--accent)}.manual-form{display:flex;gap:7px;margin-top:18px}.manual-form input,.manual-form select{height:42px;min-width:0;padding:0 10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:12px}.manual-form select{width:145px}.manual-form input{flex:1}.primary-small{display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 14px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:12px}.primary-small:hover{border-color:var(--accent);background:var(--accent)}footer{display:flex;justify-content:space-between;gap:16px;padding:19px 0 27px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}footer a{display:inline-flex;align-items:center;gap:4px}.settings-backdrop{position:fixed;z-index:10;inset:0;display:flex;justify-content:flex-end;background:#20202055}.settings-panel{width:min(100%,460px);height:100%;overflow:auto;padding:31px clamp(20px,5vw,40px);background:var(--paper)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between}.panel-heading h2{margin:6px 0 0;font-size:25px;letter-spacing:-.045em}.setting-line{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:35px;padding:15px 0;border-block:1px solid var(--line);color:var(--ink);font-size:12px}.setting-line input{width:19px;height:19px;accent-color:var(--accent)}.time-list{padding:9px 0 20px}.time-row{display:flex;align-items:center;gap:8px;min-height:40px;color:var(--muted);font-size:11px}.time-row strong{width:64px;color:var(--ink);font-weight:600}.time-row input{height:30px;padding:0 5px;border:1px solid var(--line);background:var(--surface);font-size:11px}.setting-block{padding-top:19px;border-top:1px solid var(--line)}.setting-block h3{margin:0;font-size:16px}.setting-block p{margin:4px 0 13px;color:var(--muted);font-size:11px}.dictionary-row{display:flex;align-items:center;gap:8px;margin:6px 0}.dictionary-row input{width:0;flex:1;height:34px;padding:0 8px;border:1px solid var(--line);background:var(--surface);font-size:11px}.dictionary-row span{color:var(--muted)}@media(max-width:700px){.site-header,main,footer{width:min(100% - 2 * 18px,1240px)}.intro-line{display:block}.upload-button{margin-top:24px}.toolbar{align-items:flex-start;flex-direction:column;gap:9px}.export-actions{width:100%;overflow-x:auto}.review-item{flex-wrap:wrap;gap:7px}.review-item>span{width:100%}.review-item .icon-only{margin-left:0}.schedule-sheet{padding:18px}.manual-form{flex-wrap:wrap}.manual-form select{flex:1 1 42%;width:auto}.manual-form input{flex:1 1 100%}.manual-form .primary-small{flex:1;justify-content:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
