*{box-sizing:border-box;margin:0}:root{--bg: #f5f6f8;--fg: #1a1a2e;--card: #ffffff;--border: #e3e3e8;--muted: #666;--muted2: #888;--chip-bg: #f0f2f7;--chip-border: #c5c9d6;--accent: #1a1a2e;--accent-fg: #ffffff;--link: #2456d6;--notes: #7a5b00;--star: #d9a400}:root[data-theme=dark]{--bg: #15161a;--fg: #e8e8ef;--card: #1e2027;--border: #2e313a;--muted: #9a9ab0;--muted2: #83839a;--chip-bg: #262933;--chip-border: #3a3e4a;--accent: #e8e8ef;--accent-fg: #15161a;--link: #7ea6ff;--notes: #d8b34a;--star: #ffcc33}body{font-family:PingFang TC,Microsoft JhengHei,system-ui,sans-serif;background:var(--bg);color:var(--fg);line-height:1.6}.app{max-width:960px;margin:0 auto;padding:24px 16px}.header-row{display:flex;align-items:center;justify-content:space-between}header h1{font-size:1.5rem}.header-actions{display:flex;gap:6px}.lang-toggle{border:1px solid var(--border);background:var(--card);color:var(--fg);border-radius:8px;font-size:.85rem;font-weight:600;padding:4px 10px;cursor:pointer}.theme-toggle{border:1px solid var(--border);background:var(--card);border-radius:8px;font-size:1rem;padding:4px 10px;cursor:pointer}.tagline{color:var(--muted);font-size:.9rem;margin-bottom:12px}.tabs{display:flex;gap:8px;margin-bottom:12px}.tab{border:1px solid var(--border);background:var(--card);color:var(--fg);border-radius:8px;padding:6px 16px;font-size:.95rem;cursor:pointer}.tab.on{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}header input[type=search]{width:100%;padding:10px 14px;font-size:1rem;border:1px solid var(--chip-border);border-radius:8px;background:var(--card);color:var(--fg)}.filters{margin:16px 0;display:flex;flex-direction:column;gap:8px}fieldset{border:1px solid var(--border);border-radius:8px;padding:8px 12px;display:flex;flex-wrap:wrap;gap:4px 14px}legend{font-size:.85rem;color:var(--muted);padding:0 4px}fieldset label{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.fav-only{margin-left:auto}.tag-tree{border:1px solid var(--border);border-radius:8px;padding:8px 12px}.tag-tree summary{font-size:.85rem;color:var(--muted);cursor:pointer}.tag-group{margin-top:10px}.tag-children{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0 12px}.tag.cat{font-weight:600}.active-areas{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.active-areas button{border:none;background:var(--accent);color:var(--accent-fg);border-radius:999px;padding:2px 10px;cursor:pointer}.count{color:var(--muted);font-size:.9rem;margin-bottom:8px}.cards{list-style:none;padding:0;display:grid;gap:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.card-head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.card-head strong{font-size:1.1rem}.card-head .title{color:var(--muted);font-size:.9rem}.card-head .school{color:var(--muted2);font-size:.85rem;margin-left:auto}.fav{border:none;background:none;font-size:1.15rem;cursor:pointer;color:var(--muted2);line-height:1}.fav.on{color:var(--star)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}.tag{border:1px solid var(--chip-border);background:var(--chip-bg);color:var(--fg);border-radius:999px;padding:1px 10px;font-size:.85rem;cursor:pointer}.tag.on{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.institutes{font-size:.85rem;color:var(--muted);margin-top:6px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.inst{border:1px dashed var(--chip-border);background:none;color:var(--fg);border-radius:6px;padding:0 8px;font-size:.8rem;cursor:pointer}.inst.on{background:var(--accent);color:var(--accent-fg);border-style:solid}.lab{font-size:.9rem;color:var(--muted)}.lab a{color:var(--link)}.hl{font-size:.9rem;margin-top:4px}.notes{font-size:.9rem;color:var(--notes);margin-top:4px}.links{margin-top:8px;display:flex;gap:14px;font-size:.9rem;flex-wrap:wrap}.links a{color:var(--link)}.empty{text-align:center;color:var(--muted2);padding:40px 0}.sched-intro{color:var(--muted);font-size:.9rem;margin:4px 0 12px}.round{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border)}.round:first-of-type{border-top:none;padding-top:0}.round-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.round-name{font-weight:600}.year{color:var(--muted2);font-size:.85rem}.prev-badge{background:var(--notes);color:var(--card);border-radius:999px;padding:1px 8px;font-size:.75rem}.sched-table{width:100%;border-collapse:collapse;font-size:.9rem}.sched-table th{text-align:left;vertical-align:top;white-space:nowrap;color:var(--muted);font-weight:500;padding:3px 12px 3px 0;width:5.5em}.sched-table td{vertical-align:top;padding:3px 0}:root{--k-apply: #2f6fd0;--k-review: #7a5bd0;--k-interview: #c2761c;--k-result: #1f8f57}:root[data-theme=dark]{--k-apply: #4d8ae8;--k-review: #9a7fe8;--k-interview: #d99441;--k-result: #35ab70}.sched-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.tabs.sub{margin-bottom:0}.tabs.sub .tab{padding:4px 12px;font-size:.9rem}.ics-btn{margin-left:auto;border:1px solid var(--chip-border);background:var(--chip-bg);color:var(--fg);border-radius:8px;padding:5px 12px;font-size:.9rem;cursor:pointer}.ics-btn.sm{margin-left:0;padding:3px 10px;font-size:.85rem}.push-right{margin-left:auto}.stale-notice{background:var(--chip-bg);border:1px solid var(--notes);border-left:4px solid var(--notes);border-radius:8px;padding:10px 14px;margin-bottom:10px}.stale-notice strong{color:var(--notes)}.stale-notice p{font-size:.9rem;color:var(--muted);margin-top:2px}.kind-dot{width:10px;height:10px;border-radius:3px;display:inline-block}.kind-dot.apply{background:var(--k-apply)}.kind-dot.review{background:var(--k-review)}.kind-dot.interview{background:var(--k-interview)}.kind-dot.result{background:var(--k-result)}.event-detail{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:10px;padding:12px 14px;margin-bottom:12px}.ed-head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.ed-close{margin-left:auto;border:none;background:none;color:var(--muted);cursor:pointer;font-size:1rem}.cal-month{margin-bottom:20px}.cal-month h3{font-size:1.05rem;margin-bottom:6px}.cal-weekdays,.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-weekdays span{font-size:.8rem;color:var(--muted);text-align:center;padding-bottom:2px}.cal-week{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:4px;margin-bottom:4px;align-content:start}.cal-day{font-size:.8rem;color:var(--muted);text-align:right;padding:0 4px}.cal-day.out{opacity:.35}.cal-bar{border:none;border-radius:4px;color:#fff;font-size:.75rem;line-height:1.5;padding:1px 6px;margin:1px 0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.cal-bar.apply{background:var(--k-apply)}.cal-bar.review{background:var(--k-review)}.cal-bar.interview{background:var(--k-interview)}.cal-bar.result{background:var(--k-result)}.cal-bar.cont-l{border-top-left-radius:0;border-bottom-left-radius:0}.cal-bar.cont-r{border-top-right-radius:0;border-bottom-right-radius:0}.cal-bar.on{outline:2px solid var(--fg);outline-offset:1px}.timeline{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;overflow-x:auto}.tl-months,.tl-row{display:flex;align-items:flex-start;gap:8px}.tl-months{align-items:center;min-height:24px}.tl-row+.tl-row{margin-top:4px;padding-top:4px;border-top:1px dashed var(--border)}.tl-label{width:4.5em;flex:none;font-size:.85rem;color:var(--muted);text-align:right}.tl-track{position:relative;flex:1;min-width:320px;height:20px}.tl-month{position:absolute;top:0;font-size:.75rem;color:var(--muted);border-left:1px solid var(--border);padding-left:4px}.tl-gridline{position:absolute;top:0;bottom:0;border-left:1px solid var(--border)}.tl-bar{position:absolute;height:14px;min-width:4px;border:none;border-radius:3px;padding:0;cursor:pointer;overflow:hidden}.tl-bar.apply{background:var(--k-apply)}.tl-bar.review{background:var(--k-review)}.tl-bar.interview{background:var(--k-interview)}.tl-bar.result{background:var(--k-result)}.tl-bar.on{outline:2px solid var(--fg);outline-offset:1px}.tl-bar-text{color:#fff;font-size:.65rem;line-height:14px;padding:0 3px;white-space:nowrap}
