:root { --ink:#12231e; --muted:#697873; --paper:#f5f4ec; --lime:#d7ff63; --green:#244c3e; --line:rgba(18,35,30,.12); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Microsoft YaHei UI","PingFang SC","Noto Sans CJK SC",sans-serif; }
button,input { font:inherit; }
a { color:inherit; text-decoration:none; }
main { min-height:100vh; overflow:hidden; position:relative; }
.noise { position:fixed; inset:0; pointer-events:none; opacity:.16; z-index:20; background-image:radial-gradient(rgba(18,35,30,.18) .55px,transparent .55px); background-size:5px 5px; }
.topbar { max-width:1240px; margin:auto; height:72px; display:flex; align-items:center; justify-content:space-between; padding:0 28px; position:relative; z-index:5; }
.brand { display:flex; align-items:center; gap:10px; font-size:18px; font-weight:800; letter-spacing:-.5px; }
.brand-mark { width:34px; height:34px; border-radius:50% 50% 50% 8px; display:grid; place-items:center; color:var(--lime); background:var(--ink); font-family:Georgia,serif; font-style:italic; }
.header-actions { display:flex; align-items:center; gap:16px; }
.monitor-pill { font-size:13px; color:var(--green); display:flex; align-items:center; gap:8px; }
.monitor-pill i { width:8px; height:8px; border-radius:50%; background:#4cb782; box-shadow:0 0 0 5px rgba(76,183,130,.13); }
.ghost-button { border:1px solid var(--line); border-radius:99px; padding:10px 17px; font-weight:700; font-size:13px; transition:.2s; }
.ghost-button:hover { background:var(--ink); color:white; }
.hero { min-height:515px; max-width:1240px; margin:auto; padding:54px 28px 58px; position:relative; }
.hero::before { content:""; position:absolute; width:680px; height:680px; right:-160px; top:-135px; border-radius:50%; background:radial-gradient(circle,rgba(215,255,99,.32),rgba(215,255,99,0) 68%); }
.love-note { position:relative; z-index:2; width:max-content; max-width:100%; display:flex; align-items:center; gap:8px; margin-bottom:16px; padding:9px 14px; border:1px solid rgba(181,112,91,.18); border-radius:999px; background:rgba(255,247,226,.9); color:#755344; box-shadow:0 8px 24px rgba(83,54,38,.07); font-family:Georgia,"Songti SC",serif; font-size:14px; font-weight:700; letter-spacing:.2px; animation:love-in .65s cubic-bezier(.2,.8,.2,1) both; }
.love-note span { color:#d76464; font-size:15px; animation:heartbeat 1.8s ease-in-out infinite; }
@keyframes love-in { from { opacity:0; transform:translateY(-8px); } }
@keyframes heartbeat { 0%,100% { transform:scale(1); } 50% { transform:scale(1.18); } }
.eyebrow { display:flex; gap:10px; align-items:center; color:#4e635c; text-transform:uppercase; letter-spacing:2px; font-size:12px; font-weight:800; }
.eyebrow span { background:var(--lime); padding:5px 8px; border-radius:4px; color:var(--ink); letter-spacing:.5px; }
h1 { font-size:clamp(52px,6.6vw,84px); letter-spacing:-5px; line-height:.96; margin:22px 0; max-width:720px; font-weight:900; }
h1 em { font-family:Georgia,"Songti SC",serif; font-weight:400; color:var(--green); }
.hero-copy { font-size:16px; line-height:1.75; color:var(--muted); margin:0 0 30px; }
.hero-stats { display:flex; width:min(660px,100%); border-top:1px solid var(--line); padding-top:18px; }
.hero-stats div { flex:1; display:flex; flex-direction:column; gap:4px; border-right:1px solid var(--line); padding-left:22px; }
.hero-stats div:first-child { padding-left:0; }
.hero-stats div:last-child { border:0; }
.hero-stats strong { font-family:Georgia,serif; font-size:31px; font-weight:500; }
.hero-stats span { font-size:12px; color:var(--muted); }
.offer-stat strong { color:#4f7337; }
.radar { position:absolute; right:56px; top:42px; width:350px; height:350px; border-radius:50%; border:1px solid rgba(36,76,62,.14); }
.radar-ring { position:absolute; border:1px solid rgba(36,76,62,.14); border-radius:50%; inset:15%; }
.radar-ring.r2 { inset:30%; }.radar-ring.r3 { inset:44%; }
.radar::before,.radar::after { content:""; position:absolute; background:rgba(36,76,62,.12); left:50%; top:0; bottom:0; width:1px; }.radar::after { top:50%; left:0; right:0; width:auto; height:1px; }
.radar-sweep { position:absolute; inset:0; border-radius:50%; overflow:hidden; animation:sweep 7s linear infinite; background:conic-gradient(from 0deg,transparent 0 77%,rgba(72,140,102,.16) 95%,rgba(72,140,102,.45)); clip-path:circle(50%); }
@keyframes sweep { to { transform:rotate(360deg); } }
.dot { position:absolute; width:9px; height:9px; border-radius:50%; background:#75a66f; box-shadow:0 0 0 6px rgba(117,166,111,.14); z-index:2; }.d1{left:30%;top:22%}.d2{left:68%;top:35%}.d3{left:55%;top:72%}.d4{left:18%;top:61%}
.radar-label { position:absolute; inset:0; display:grid; place-items:center; font-size:11px; font-weight:800; letter-spacing:1px; color:var(--green); }
.tracker { background:#fff; border-radius:38px 38px 0 0; padding:66px max(28px,calc((100vw - 1184px)/2)) 80px; position:relative; z-index:2; }
.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:28px; }
.section-kicker { font-size:11px; letter-spacing:3px; font-weight:800; color:#769087; }
h2 { margin:7px 0 0; font-size:42px; letter-spacing:-2px; }
.section-heading p { color:var(--muted); font-size:14px; max-width:350px; line-height:1.7; }
.toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; gap:16px; }
.filters { background:#f1f2ed; border-radius:99px; padding:5px; display:flex; }
.filters button { border:0; background:transparent; color:#68746f; padding:10px 17px; border-radius:99px; cursor:pointer; font-size:13px; }
.filters button.active { background:var(--ink); color:white; box-shadow:0 5px 15px rgba(18,35,30,.15); }
.toolbar-right{display:flex;align-items:center;gap:10px}.category-select{height:42px;border:1px solid var(--line);border-radius:99px;background:#fff;color:#52605a;padding:0 34px 0 14px;font:inherit;font-size:13px;outline:none}
.search { border-bottom:1px solid var(--line); display:flex; gap:8px; align-items:center; padding:9px 3px; color:#8a9792; }
.search input { border:0; outline:0; background:transparent; width:140px; color:var(--ink); }
.company-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.company-card { min-height:244px; border:1px solid var(--line); border-radius:16px; padding:16px; background:#fbfbf8; transition:.25s; animation:rise .45s both; animation-delay:var(--delay); display:flex; flex-direction:column; }
@keyframes rise { from { opacity:0; transform:translateY(8px); } }
.company-card:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(24,48,40,.1); border-color:rgba(36,76,62,.28); }
.card-top { display:flex; justify-content:space-between; align-items:center; }
.company-logo { width:42px; height:42px; border-radius:12px; display:grid; place-items:center; font-weight:900; font-size:12px; background:#fff; color:#294b3f; border:1px solid rgba(18,35,30,.08); overflow:hidden; padding:6px; }
.company-logo img { width:100%; height:100%; object-fit:contain; display:block; }
.company-logo span { display:none; }
.company-logo.blue,.company-logo.sky{background:#e0edfa;color:#35628a}.company-logo.violet,.company-logo.purple{background:#eee7fa;color:#654996}.company-logo.indigo{background:#e4e7f7;color:#4b578d}.company-logo.green,.company-logo.teal,.company-logo.turquoise{background:#e0f0e8;color:#27684e}.company-logo.amber,.company-logo.yellow{background:#f5edcf;color:#8a6922}.company-logo.orange{background:#f6e7da;color:#96572c}.company-logo.red,.company-logo.rose,.company-logo.crimson{background:#f5dfdf;color:#943c42}.company-logo.lime{background:#eaf1d7;color:#5e762d}.company-logo.slate{background:#e7eae9;color:#53615c}
.status { font-size:11px; border-radius:99px; padding:6px 9px; background:#ecefeb; color:#65716c; }
.status-正式校招 { background:#e3f4e7; color:#33724c; }.status-仅实习 { background:#e9efff; color:#4b63a2; }.status-暂未发现 { background:#eef0ed; color:#747b78; }.status-无法确认 { background:#fff2d9; color:#916a28; }
.company-card h3 { font-size:20px; margin:14px 0 5px; letter-spacing:-.5px; }.role { height:18px; margin:0 0 16px; font-size:11px; color:#83908b; }
.progress-row { display:flex; align-items:center; gap:7px; font-size:10px; color:#a7aeab; }.progress-row i { height:1px; background:#dfe3df; flex:1; }.progress-row span.done { color:#3f7b5c; font-weight:800; }.progress-row span.offer { color:#738f2c; }
.card-footer { border-top:1px solid var(--line); margin-top:11px; padding-top:9px; display:flex; justify-content:space-between; gap:10px; font-size:10px; color:#65716c; }.card-footer span:last-child { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; text-align:right; color:#929c98; }.card-footer b { color:#5f8031; }.next-check { color:#a1aaa6; }
.card-actions { display:grid; grid-template-columns:1fr 1.2fr; gap:7px; margin-top:auto; padding-top:11px; }
.card-actions a { min-height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; transition:.2s; }
.site-link { border:1px solid var(--line); color:#64726d; background:#fff; }.site-link:hover { border-color:rgba(36,76,62,.35); color:var(--green); }
.apply-link { color:#fff; background:var(--green); }.apply-link:hover { background:#356650; transform:translateY(-1px); }
.empty { padding:70px; text-align:center; color:var(--muted); }
.morning-callout { max-width:1184px; margin:60px auto; padding:42px 48px; border-radius:24px; background:var(--green); color:white; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:28px; position:relative; overflow:hidden; }
.morning-callout::after { content:""; position:absolute; width:300px; height:300px; border:1px solid rgba(215,255,99,.17); border-radius:50%; right:-85px; top:-155px; box-shadow:0 0 0 65px rgba(215,255,99,.05); }
.sun { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; background:var(--lime); color:var(--ink); font-size:33px; }
.morning-callout span { color:#b8c8c1; font-size:12px; letter-spacing:1px; }.morning-callout h2 { font-size:31px; letter-spacing:-1px; margin:5px 0 8px; }.morning-callout p { margin:0; color:#c3cec9; font-size:13px; max-width:600px; line-height:1.7; }
.time-card { border-left:1px solid rgba(255,255,255,.18); padding-left:30px; display:flex; flex-direction:column; position:relative; z-index:2; }.time-card strong { color:var(--lime); font-family:Georgia,serif; font-size:34px; }.time-card span { letter-spacing:0; }
footer { border-top:1px solid var(--line); max-width:1184px; margin:auto; padding:28px 0 42px; display:flex; justify-content:space-between; color:#85908c; font-size:12px; } footer span { color:var(--ink); font-weight:800; }
@media (max-width:980px) { .radar{opacity:.23;right:-90px;top:55px;width:320px;height:320px}.hero{padding-top:46px}.company-grid{grid-template-columns:repeat(3,1fr)} }
@media (max-width:720px){.toolbar-right{width:100%}.category-select{flex:0 0 116px;max-width:116px}.toolbar-right .search{flex:1}}
@media (max-width:720px) { .topbar{height:62px;padding:0 18px}.monitor-pill{display:none}.hero{padding:38px 18px 42px;min-height:470px}.love-note{margin-bottom:14px;padding:8px 12px;font-size:13px}.hero h1{font-size:48px;letter-spacing:-3.5px;margin:18px 0}.hero-copy{font-size:15px;line-height:1.7;margin-bottom:26px}.radar{width:260px;height:260px;top:85px;right:-100px}.hero-copy br{display:none}.hero-stats{padding-top:16px}.hero-stats div{padding-left:12px}.tracker{padding:46px 18px 54px;border-radius:26px 26px 0 0}.section-heading{align-items:start;margin-bottom:24px}.section-heading p{display:none}.toolbar{align-items:stretch;flex-direction:column;margin-bottom:18px}.filters{overflow-x:auto}.filters button{white-space:nowrap;flex:1;padding:9px 12px}.search input{width:100%}.company-grid{grid-template-columns:repeat(2,1fr);gap:10px}.company-card{min-height:238px}.morning-callout{margin:38px 18px;padding:30px 26px;grid-template-columns:auto 1fr;gap:22px}.time-card{grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.14);padding:16px 0 0;flex-direction:row;align-items:end;gap:10px}footer{margin:0 18px} }
@media (max-width:460px) { .hero{min-height:450px}.hero h1{font-size:44px;letter-spacing:-3px}.hero-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.hero-stats div{border:0;padding:0}.company-grid{grid-template-columns:1fr}.company-card{min-height:232px}.morning-callout{grid-template-columns:1fr}.sun{width:50px;height:50px}.time-card{grid-column:auto}footer{flex-direction:column;gap:7px} }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
.monitor-pill.sync-error i { background:#c76262; box-shadow:0 0 0 5px rgba(199,98,98,.13); }
.ghost-button { background:transparent; cursor:pointer; }
.add-company-button { height:42px; border:0; border-radius:99px; padding:0 16px; background:var(--lime); color:var(--ink); font-size:12px; font-weight:900; cursor:pointer; white-space:nowrap; }
.company-card { min-height:286px; padding:15px; }
.card-manage { display:grid; grid-template-columns:1fr auto; gap:6px; margin-top:10px; }
.card-manage button { min-height:31px; border-radius:9px; cursor:pointer; font-size:10px; font-weight:800; }
.application-toggle { border:1px solid rgba(36,76,62,.18); background:#fff; color:#52665e; }.application-toggle.completed { border-color:rgba(51,114,76,.16); background:#e3f4e7; color:#33724c; }
.delete-company { border:0; background:transparent; color:#a18b86; padding:0 8px; }.delete-company:hover { background:#f8e9e6; color:#a34d43; }
.pending-panel { margin-top:24px; padding:22px 24px; border:1px dashed rgba(36,76,62,.24); border-radius:18px; background:#f8faf4; display:flex; justify-content:space-between; gap:30px; align-items:center; }.pending-panel[hidden]{display:none}.pending-panel h3{margin:5px 0;font-size:19px}.pending-panel p{margin:0;color:var(--muted);font-size:12px}.pending-list{display:flex;flex-wrap:wrap;gap:8px}.pending-list>span{display:flex;align-items:center;gap:7px;border-radius:99px;padding:8px 10px 8px 13px;background:#fff;border:1px solid var(--line);font-size:12px;font-weight:800}.pending-list small{color:#916a28;background:#fff2d9;border-radius:99px;padding:3px 6px}
.toast { position:fixed; z-index:60; left:50%; bottom:24px; transform:translateX(-50%); max-width:min(92vw,720px); border:0; border-radius:14px; padding:13px 18px; background:var(--ink); color:white; box-shadow:0 18px 45px rgba(18,35,30,.25); cursor:pointer; font-size:13px; }.toast[hidden]{display:none}
.modal-backdrop { position:fixed; z-index:50; inset:0; padding:24px; display:grid; place-items:center; background:rgba(9,22,18,.56); backdrop-filter:blur(8px); }.modal-backdrop[hidden]{display:none}.add-modal{width:min(520px,100%);position:relative;border-radius:24px;padding:30px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.22)}.add-modal h2{font-size:31px;margin:8px 0 6px}.add-modal>p{margin:0 0 22px;color:var(--muted);font-size:13px;line-height:1.65}.modal-close{position:absolute;right:18px;top:16px;border:0;background:transparent;color:#7e8a86;font-size:24px;cursor:pointer}.add-modal label{display:block;margin-top:14px;color:#53635d;font-size:12px;font-weight:800}.add-modal input,.add-modal textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:12px;padding:12px 13px;outline:0;color:var(--ink);background:#fbfbf8}.add-modal textarea{min-height:76px;resize:vertical}.fuzzy-result{margin-top:10px;border-radius:12px;padding:10px;background:#f1f6e6;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.fuzzy-result[hidden]{display:none}.fuzzy-result>span{color:#758078;font-size:11px}.fuzzy-result button{border:0;border-radius:99px;padding:6px 9px;background:#fff;color:var(--green);font-size:11px;font-weight:800;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.modal-actions button{border:1px solid var(--line);border-radius:99px;padding:10px 16px;background:#fff;color:#66736e;cursor:pointer;font-size:12px;font-weight:800}.modal-actions button[type=submit]{border-color:var(--ink);background:var(--ink);color:white}
@media(max-width:720px){.toolbar-right{flex-wrap:wrap}.add-company-button{order:3;width:100%}.pending-panel{align-items:flex-start;flex-direction:column;gap:14px}.header-actions .ghost-button{display:none}}
@media(max-width:460px){.company-card{min-height:278px}.modal-backdrop{padding:12px}.add-modal{padding:25px 20px}}
