:root{--ink:#193846;--muted:#607680;--line:#dfe8eb;--teal:#23786e;--paper:#f4f7f9;--navy:#153f50;--orange:#b8623c}
.location-detail{font-size:12px;color:var(--muted);max-width:100%;padding:4px 8px}.location-detail summary{cursor:pointer}.location-detail p{margin:8px 0;overflow-wrap:anywhere}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.65 "Segoe UI","Microsoft YaHei UI","PingFang SC",sans-serif}button,input{font:inherit}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid #2585b1;outline-offset:4px}.masthead{height:80px;background:white;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font:800 14px/1.1 "Segoe UI",sans-serif;letter-spacing:1.8px}.brand-mark{width:32px;height:32px;border:2px solid var(--teal);border-radius:50%;position:relative}.brand-mark:after{content:"";position:absolute;left:14px;top:14px;width:11px;height:2px;background:var(--teal);transform:rotate(-40deg);transform-origin:left}.edition{font-size:12px;color:var(--muted)}.edition span{margin-left:16px;color:var(--teal);font-family:Consolas,monospace}
main{max-width:1550px;margin:auto;padding:34px 38px 70px 240px;display:grid;grid-template-columns:minmax(0,1fr) 276px;column-gap:28px;position:relative}.hero{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;min-width:0}.eyebrow{font:11px Consolas,monospace;letter-spacing:2px;color:var(--teal);margin:0 0 12px}.hero h1{font-size:32px;line-height:1.4;letter-spacing:-1px;margin:0 0 10px;font-weight:650}.intro{font-size:14px;color:var(--muted);margin:0}.radar{width:104px;height:104px;border:1px solid #cbdcdf;border-radius:50%;position:relative;margin-right:14px;flex-shrink:0;background:repeating-radial-gradient(circle,transparent 0 16px,#d7e5e6 17px 18px)}.radar:before,.radar:after{content:"";position:absolute;background:#d1e0e2}.radar:before{height:1px;width:100%;top:50%}.radar:after{width:1px;height:100%;left:50%}.radar i{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 40deg,#5c9c9733,transparent 25%)}.radar b{position:absolute;width:6px;height:6px;border-radius:50%;left:64%;top:28%;background:var(--orange);box-shadow:0 0 0 5px #b8623c12}
.console{grid-column:1;min-width:0}.search{display:flex;align-items:center;gap:16px;background:white;border:1px solid #d4e1e5;border-radius:10px;padding:0 18px;height:54px;font-size:14px;color:#627b85}.search:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px #23786e12}.search>span{font-size:12px;letter-spacing:2px;white-space:nowrap}.search input{border:0;outline:0;background:transparent;color:var(--ink);width:100%;min-width:0;height:100%;font-size:14px}.filters{position:absolute;left:26px;top:46px;width:184px;display:flex;flex-direction:column;gap:7px}.filters:before{content:"发现 DISCOVER";font:11px Consolas,monospace;letter-spacing:1.2px;color:#718993;padding:0 12px 16px}.filters:after{content:"同济大学\A 校内官方资讯";white-space:pre-line;font-size:13px;color:var(--muted);line-height:1.9;padding:26px 13px;margin-top:22px;border-top:1px solid var(--line)}.filters button{border:0;background:transparent;padding:12px 14px;border-radius:8px;text-align:left;font-size:14px;color:var(--muted);cursor:pointer;min-height:44px}.filters button:before{content:"▤";margin-right:12px;font-size:16px}.filters button:first-child:before{content:"⊞"}.filters button.active{background:#e5f0ed;color:#216b60;font-weight:700}.filters button:hover{background:#eaf0f3}.signal-line{display:flex;align-items:center;justify-content:space-between;margin:22px 0 15px;font-size:12px;color:var(--muted)}#count{color:var(--ink);font-size:15px;font-weight:650}.feed{grid-column:1;display:flex;flex-direction:column;gap:14px;min-width:0}.event-card{padding:22px 24px;background:white;border:1px solid var(--line);border-radius:12px;transition:box-shadow .15s,border-color .15s;min-width:0}.event-card:hover{border-color:#b7cfd1;box-shadow:0 5px 20px #153f5007}.event-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font:12px Consolas,monospace}.category{background:#edf3f8;color:#4a718b;padding:3px 9px;border-radius:4px;font-family:inherit}.event-card h2{font-size:19px;line-height:1.65;margin:12px 0 8px;font-weight:650;overflow-wrap:anywhere}.summary{font-size:14px;line-height:1.9;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.facts:empty{display:none}.fact{font-size:12px;padding:4px 8px;border-radius:5px;background:#f3f7f8;color:#617882;max-width:100%;overflow-wrap:anywhere}.fact.expired{background:#fbf1e9;color:#a1613d}.event-foot{margin-top:18px;padding-top:12px;border-top:1px solid #edf2f4;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px}.source{color:#748a95}.event-foot a{white-space:nowrap;color:var(--teal);font-weight:600}.event-foot a span{margin-left:6px}.event-foot a:hover{text-decoration:underline}.empty{padding:48px 22px;background:white;text-align:center;font-size:14px;border:1px dashed #ccdce0;border-radius:12px;color:var(--muted)}
.context-panel{grid-column:2;grid-row:2/4;display:flex;flex-direction:column;gap:22px;align-self:start}.overview{background:var(--navy);color:white;border-radius:12px;padding:24px;position:relative;overflow:hidden}.overview:after{content:"";width:150px;height:150px;position:absolute;right:-60px;bottom:-94px;border:1px solid #7caabf40;border-radius:50%;box-shadow:0 0 0 22px #7caabf0a,0 0 0 44px #7caabf07}.overview>p:first-child{font:10px Consolas,monospace;letter-spacing:1.6px;color:#b0cbd4;margin:0 0 25px}.overview h2{font-size:20px;font-weight:600;margin:0 0 6px}.overview>p{font-size:13px;color:#bfd2d9;margin:0}.metrics{display:flex;gap:35px;margin:25px 0 20px}.metrics strong{display:block;font:300 38px/1.3 "Segoe UI",sans-serif}.metrics span{font-size:12px;color:#bfd2d9}.source-panel{border:1px solid var(--line);border-radius:12px;padding:21px;background:white}.source-panel h2{display:flex;justify-content:space-between;align-items:center;font-size:14px;margin:0 0 14px}.source-panel small{font:9px Consolas,monospace;color:#748b95;letter-spacing:1px}.source-row{padding:13px 0;border-bottom:1px solid #edf2f4;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}.source-row:last-child{border:0;padding-bottom:0}.source-row span{font:12px Consolas,monospace;color:var(--muted)}.reading-note{padding:0 6px 0 22px;border-left:2px solid #d6e2e4}.reading-note h2{font-size:13px;margin:0 0 8px;font-weight:650}.reading-note p{font-size:12px;line-height:1.9;color:var(--muted);margin:0 0 10px}.context-footer{font-size:11px;text-align:center;color:#7e929c;margin:0}
.calendar-feed{border:1px solid #cfe0df;border-radius:12px;padding:20px;background:#edf5f3}.calendar-feed>p:first-child{font:10px Consolas,monospace;letter-spacing:1.4px;color:var(--teal);margin:0 0 12px}.calendar-feed h2{font-size:16px;margin:0 0 6px}.calendar-feed>p{font-size:12px;color:var(--muted);margin:0 0 14px}.calendar-feed label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}.calendar-feed select,.calendar-feed input{border:1px solid #c7d9d9;border-radius:6px;background:white;color:var(--ink);padding:7px 8px;font:inherit;min-width:0}.calendar-feed input{display:block;width:100%;margin:10px 0;font:11px Consolas,monospace;color:var(--muted)}.calendar-feed>div{display:flex;gap:8px}.calendar-feed button,.calendar-feed a{border:0;border-radius:6px;padding:8px 10px;font-size:12px;cursor:pointer;text-align:center}.calendar-feed button{background:var(--teal);color:white;font-weight:650}.calendar-feed a{background:white;border:1px solid #c7d9d9;flex:1}.calendar-feed small{display:block;margin-top:10px;color:var(--muted);font-size:10px;line-height:1.6}
@media(min-width:1550px){main{padding-left:260px;column-gap:36px}.filters{width:200px}.event-card{padding:26px 30px}}@media(max-width:1100px){main{padding-left:210px;padding-right:24px;grid-template-columns:minmax(0,1fr) 240px;gap:22px}.filters{left:20px;width:165px}.overview{padding:20px}.hero h1{font-size:28px}.event-card{padding:20px}.intro{max-width:400px}.radar{width:80px;height:80px}}@media(max-width:950px){main{grid-template-columns:minmax(0,1fr)}.context-panel{grid-column:1;grid-row:auto;margin-top:24px;display:grid;grid-template-columns:1fr 1fr}.reading-note{grid-column:1/-1}.context-footer{display:none}}@media(max-width:680px){.masthead{height:74px;padding:0 20px}.brand{font-size:12px}.edition{font-size:11px}.edition span{display:block;margin:0}main{padding:25px 18px 44px;display:block}.hero{margin-bottom:22px}.hero h1{font-size:25px;letter-spacing:-.7px}.intro{font-size:13px;line-height:1.8}.eyebrow{font-size:10px}.radar{display:none}.filters{position:static;width:auto;flex-direction:row;overflow-x:auto;margin:17px 0 0;gap:5px}.filters:before,.filters:after{display:none}.filters button{white-space:nowrap;padding:9px 13px;flex-shrink:0}.filters button:before{display:none}.signal-line{margin-top:17px}.event-card{padding:18px}.event-card h2{font-size:18px}.source{font-size:11px}.context-panel{grid-template-columns:1fr}.reading-note{grid-column:auto}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.action-window{margin-top:12px;padding:10px 12px 10px 16px;border:1px solid #d5e3e4;border-radius:10px;background:#edf5f3;display:flex;align-items:center;justify-content:space-between;gap:16px}.action-window-label{display:flex;align-items:center;gap:8px;white-space:nowrap}.action-window-label strong{font-size:13px}.action-window-label small{font-size:11px;color:var(--muted)}.pulse{width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px #b8623c15}.status-filters{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.status-filters button{border:0;background:transparent;color:var(--muted);padding:7px 10px;border-radius:7px;font-size:12px;cursor:pointer}.status-filters button:hover{background:white}.status-filters button.active{background:var(--navy);color:white}.timing{margin-right:auto;padding:3px 8px;border-radius:4px;color:#23786e;background:#e8f4f0}.event-card[data-timing="ongoing"]{border-left:4px solid var(--orange)}.event-card[data-timing="past"]{background:#fbfcfc}.event-card[data-timing="past"] .timing{color:#788a91;background:#eef2f3}
.calendar-box{margin-top:14px;padding:10px 12px;border:1px solid #d5e3e4;border-radius:8px;background:#f4f9f8;display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px}.calendar-box strong{color:#216b60;margin-right:3px}.calendar-box select,.calendar-download{border:1px solid #c7d9d9;border-radius:5px;background:white;color:var(--ink);padding:6px 8px;font:inherit;max-width:100%}.calendar-download{background:var(--teal);border-color:var(--teal);color:white;cursor:pointer;font-weight:650}.calendar-download:hover{filter:brightness(.94)}
@media(max-width:680px){.action-window{align-items:flex-start;flex-direction:column;padding:13px;gap:10px}.action-window-label small{display:none}.status-filters{width:100%;display:grid;grid-template-columns:1fr 1fr}.status-filters button{background:#ffffff80;min-height:38px}.filters{scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.signal-line span:last-child{font-size:11px}.event-meta{flex-wrap:wrap}.event-meta time{margin-left:auto}}
