/* Cassell Editorial V4
   Old academic intranet × early-2000s forum × restrained modern typography.
   Additive and reversible. */
:root{
 --v4-bg:#090c10;
 --v4-surface:#0f1318;
 --v4-surface-2:#14191f;
 --v4-surface-3:#1a2027;
 --v4-line:#2a3139;
 --v4-line-soft:#20262d;
 --v4-text:#e3ded3;
 --v4-body:#c3c0b9;
 --v4-muted:#858c94;
 --v4-faint:#5f6871;
 --v4-gold:#b39a60;
 --v4-gold-soft:#d0bb80;
 --v4-blue:#6e8c9b;
 --v4-red:#8b4048;
 --v4-green:#617c68;
 --v4-radius:3px;
}

html{background:var(--v4-bg)}
body{
 color:var(--v4-text);
 background:
  radial-gradient(circle at 14% -8%,rgba(72,91,106,.11),transparent 31rem),
  radial-gradient(circle at 88% 12%,rgba(111,91,55,.055),transparent 25rem),
  linear-gradient(180deg,#090c10,#0b0e12 46%,#090c10);
 font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
}
body:after{opacity:.08}
::selection{background:rgba(179,154,96,.28);color:#fff}

/* 1. Institutional shell */
.site-head{
 background:rgba(9,12,16,.97);
 box-shadow:0 8px 28px rgba(0,0,0,.24);
 backdrop-filter:blur(9px);
}
.utility{background:#07090c;border-color:#20262d}
.utility-inner{min-height:28px;font-size:9px;letter-spacing:.07em}
.head-main{min-height:68px}
.brand-copy strong{font-size:19px;letter-spacing:.075em}
.brand-copy span{font-size:10px;color:#78818a}
.brand-lockup:after{left:68px;bottom:-10px;color:#58616a;letter-spacing:.18em}
.seal{width:46px;height:46px;box-shadow:inset 0 0 0 3px #0a0d11,inset 0 0 0 4px #6f603e}
.access-chip{padding:7px 10px;background:#15130e;border-color:#4f4633;color:#d0bb80}
.primary-nav{background:#0d1116;border-color:#242b32}
.nav-link{min-height:40px;padding:0 15px;color:#959da4;font-size:12px}
.nav-link:hover{background:#14191f;color:#d8d3c8}
.nav-link.active{background:#151a20;color:#d0bb80;box-shadow:inset 0 -2px 0 #8a7543}
.context-bar{background:#090d11;border-color:#1d2329}
.context-inner{min-height:30px;color:#707983;font-size:9px}
.main{padding-top:22px;padding-bottom:42px}
.site-footer{background:#080b0f;border-color:#20262d}

/* 2. Editorial type and surfaces */
h1,h2,h3,.page-title,.thread-masthead h1,.profile-name-block h1,.panel-head h1,.panel-head h2{
 font-family:"Songti SC","STSong","SimSun",serif;
}
.page-title{font-size:clamp(26px,3.2vw,38px);line-height:1.25;letter-spacing:.035em}
.page-intro{max-width:760px;color:#9ba2a8;font-size:13px;line-height:1.8}
.breadcrumb{margin-bottom:14px;color:#6f7881;font-size:9px}
.panel{
 border:1px solid var(--v4-line);
 border-radius:var(--v4-radius);
 background:var(--v4-surface);
 box-shadow:none;
}
.panel:before{display:none}
.panel-head{
 min-height:48px;
 padding:13px 16px;
 background:#12171d;
 border-color:var(--v4-line);
}
.panel-head h1,.panel-head h2,.panel-head h3{letter-spacing:.035em}
.panel-body{padding:18px}

/* 3. Buttons and controls stop looking like a control room */
.btn,.quick-action,.drawer-link,.reading-action{
 border:1px solid #353d46;
 border-radius:2px;
 background:#12171d;
 color:#aeb4ba;
 box-shadow:none;
 transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.btn:hover,.quick-action:hover,.drawer-link:hover,.reading-action:hover{
 transform:none;
 background:#181e25;
 border-color:#4b5560;
 color:#ddd8ce;
}
.btn-primary{
 background:#a98f53;
 border-color:#b79d60;
 color:#15120d;
 box-shadow:none;
}
.btn-primary:hover{background:#b79c5e;border-color:#c6ad73;color:#15120d}
.btn-small{min-height:34px;padding:6px 10px}
.field,.search-form input{
 border:1px solid #343c45;
 border-radius:2px;
 background:#0b0f14;
 color:#d6d2c9;
}
.field:focus,.search-form input:focus{border-color:#75663e;box-shadow:0 0 0 2px rgba(179,154,96,.08);outline:none}

/* 4. Login: quieter and more believable */
.login{background:linear-gradient(90deg,rgba(6,8,11,.2),rgba(6,8,11,.88)),radial-gradient(circle at 18% 35%,rgba(62,79,92,.22),transparent 34rem),#080b0f}
.login-scene{padding:clamp(34px,5vw,68px)}
.login-scene:before{color:#68717a;letter-spacing:.15em}
.login-scene h1{max-width:760px;font-size:clamp(40px,6vw,72px);letter-spacing:.065em;text-shadow:none}
.login-scene>p{color:#a1a8ae}
.login-panel{background:#0d1217;border-left-color:#272e36;box-shadow:-18px 0 48px rgba(0,0,0,.2)}
.login-panel:before{color:#6f7881}
.preset{background:#121820;border-color:#303944}
.preset:hover{border-color:#77663f;background:#171b20}
.terminal-status div{background:#0b1015;border-color:#29313a}

/* 5. Home workbench: less dashboard, more internal portal */
.workbench-hero{box-shadow:none}
.workbench-hero .panel-body{padding:21px}
.workbench-title-row h1{font-size:clamp(27px,3vw,36px)}
.workbench-copy{color:#a7aeb4;line-height:1.8}
.identity-card{border-top-color:#293039}
.session-ledger{
 gap:0;
 border:0;
 border-top:1px solid var(--v4-line);
 border-bottom:1px solid var(--v4-line);
 background:transparent;
}
.session-ledger div{padding:11px 13px;background:#0d1217;border-right:1px solid #252c33}
.session-ledger div:last-child{border-right:0}
.home-actions{gap:1px;background:#272e35;border:1px solid #272e35}
.quick-action{border:0;border-radius:0;background:#10151b}
.quick-action:after{color:#59616a}
.activity-mini a{border-color:#232a31}
.activity-mini a:hover{background:#12181e}

/* 6. Campus life becomes a compact institutional list */
.campus-life-system{border-color:#29313a;background:#0f1419;box-shadow:none}
.campus-life-head{padding:18px 20px;background:#121820;border-color:#29313a}
.campus-life-head h2{font-size:22px}
.integrity-badge{padding:9px 11px;border-color:#34404a;background:#0c1116}
.campus-life-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;background:transparent}
.campus-service-card{
 display:grid;
 grid-template-columns:72px minmax(0,1fr);
 gap:4px 14px;
 padding:14px 16px;
 border-bottom:1px solid #252c33;
 background:transparent;
}
.campus-service-card:nth-child(odd){border-right:1px solid #252c33}
.campus-service-card>span{grid-row:1/4;align-self:start;padding-top:2px;color:#9a8757}
.campus-service-card h3{margin:0;font-family:inherit;font-size:13px}
.campus-service-card p{font-size:12px;line-height:1.55}
.campus-service-card small{margin-top:1px}
.campus-anomaly{padding:11px 15px;background:#0d151b;border-color:#32404a}

/* 7. Forum directory and lists: rows, not card soup */
.forum-overview{
 grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(100px,.42fr));
 margin-bottom:16px;
 border-color:#29313a;
 background:#29313a;
}
.forum-overview>div{min-height:78px;padding:13px 14px;background:#0f1419}
.forum-overview .forum-intro{background:#121820}
.forum-overview strong{font-size:19px;color:#cfb978}
.forum-group{border-radius:2px;box-shadow:none}
.group-title{min-height:48px;background:#12171d}
.group-title strong:before{content:"";display:inline-block;width:6px;height:6px;margin-right:10px;border:1px solid #7f6d40;transform:rotate(45deg)}
.board-row,.thread-row,.archive-row,.notification-row,.activity-row{
 border-bottom:1px solid #242b32;
 background:transparent;
}
.board-row:last-child,.thread-row:last-child,.archive-row:last-child,.notification-row:last-child{border-bottom:0}
.board-row:hover,.thread-row:hover,.archive-row:hover,.notification-row:hover,.activity-row:hover{background:#13191f}
.board-row.unread-board,.thread-row.unread-thread,.notification-row.unread{background:linear-gradient(90deg,rgba(179,154,96,.055),transparent 30%)}
.board-row.unread-board:before,.thread-row.unread-thread:before{top:0;bottom:0;width:2px;background:#9f864d}
.board-icon{background:#0e141a;border-color:#3b4650}
.thread-title-line{gap:7px}
.thread-title-line a,.board-row a{color:#d8d3c9}
.thread-by,.thread-last,.thread-count{color:#727b84;font-size:10px}
.unread-dot{width:6px;height:6px;background:#b49a5c;box-shadow:none}
.unread-count{border-color:#5b4f35;color:#c1aa70}

/* 8. Thread page: reading first */
.thread-document{overflow:visible}
.thread-masthead{
 padding:22px 24px 18px;
 background:#121820;
 border-color:#29313a;
}
.thread-masthead:after{opacity:.48;font-size:clamp(24px,4vw,46px);bottom:-3px}
.thread-kicker{margin-bottom:9px;color:#7b858e;font-size:9px}
.thread-kicker b{color:#b69d61}
.thread-masthead h1{max-width:860px;font-size:clamp(23px,3vw,34px);line-height:1.38;letter-spacing:.025em}
.thread-meta-grid{margin-top:13px;color:#7d858d;font-size:9px}
.thread-actionbar{
 position:sticky;
 top:137px;
 display:flex;
 flex-wrap:wrap;
 gap:3px;
 padding:8px 12px!important;
 background:rgba(12,16,21,.97);
 border-color:#29313a;
 box-shadow:0 8px 20px rgba(0,0,0,.12);
}
.thread-actionbar .btn{min-height:30px;padding:5px 9px;border-color:transparent;background:transparent;color:#969da4}
.thread-actionbar .btn:hover,.thread-actionbar .btn-primary{border-color:#4d4430;background:#17150f;color:#d0bb80}
.reading-toolbar{padding:8px 12px;background:#0d1217;border-color:#242b32}
.reading-action{min-height:30px;padding:5px 8px;background:transparent;border-color:#303841;color:#8f979f}
.context-banner{padding:9px 13px;background:#15140f;border-color:#403824}
.record-variance{padding:10px 14px;background:#0d151b;border-color:#31404a}

.post-floor{
 display:grid;
 grid-template-columns:168px minmax(0,1fr);
 background:#0f1419;
 border-bottom:1px solid #29313a;
}
.post-floor:nth-of-type(even){background:#10161c}
.post-floor:hover{background:#111820}
.post-floor:before{font-size:30px;top:8px;right:12px;color:rgba(255,255,255,.025)}
.post-user{
 padding:17px 15px;
 background:#0c1116;
 border-right:1px solid #29313a;
}
.post-user .avatar{width:54px;height:54px;margin-bottom:10px}
.post-user strong a{font-size:14px}
.post-user .subtle{font-size:10px;line-height:1.5}
.post-user dl{margin-top:10px;padding-top:9px;border-color:#232a31}
.post-content{padding:16px 20px 18px}
.post-top{padding-bottom:10px;border-bottom:1px solid #222930}
.floor-number{font-size:11px;color:#c3aa6c}
.floor-role{margin-left:0;border-color:#444d56;color:#838c95}
.floor-role.op{border-color:#655839;color:#cbb273}
.post-record-id{opacity:.55;font-size:8px}
.post-body{padding:18px 0 15px;color:var(--v4-body);font-size:15px;line-height:1.85}
.post-body p{max-width:760px}
.quote-card{
 margin-bottom:14px;
 border:0;
 border-left:2px solid #76663e;
 background:#151610;
}
.quote-card-head{padding:7px 10px;border-color:#302f25}
.quote-card-body{padding:9px 11px;color:#aaa69c;line-height:1.65}
.reference-backlinks{margin:13px 0 10px!important;padding-top:11px;border-color:#2b3239}
.reference-heading{margin-bottom:6px}
.reference-list{display:block}
.reference-item{
 display:grid;
 grid-template-columns:26px minmax(0,1fr) auto;
 gap:8px;
 align-items:center;
 padding:7px 0;
 border:0;
 border-bottom:1px solid #232a31;
 background:transparent;
}
.reference-item:last-child{border-bottom:0}
.reference-avatar{width:26px;height:26px;border-color:#51472f;background:#14130f;font-size:11px}
.reference-copy{display:flex;align-items:baseline;gap:8px}
.reference-person{font-size:11px!important}
.reference-copy small{margin:0}
.post-actions{display:flex;flex-wrap:wrap;gap:4px;padding-top:10px;border-top:1px solid #232a31}
.post-actions .btn{min-height:30px;padding:5px 8px;border-color:transparent;background:transparent;color:#868f97;opacity:1}
.post-actions .btn:hover,.post-actions .btn-primary{border-color:#3e4650;background:#151b21;color:#d2cdc3}
.reply-launch{padding:12px 14px;background:#0f1419;border-color:#303841}
.notice-strip{padding:10px 14px}

/* 9. History and moderation are quiet secondary records */
.record-history,.moderation-console{margin-top:14px;background:#0d1217;border-color:#29313a}
.record-history summary,.moderation-console summary{min-height:44px;padding:9px 12px}
.history-row{grid-template-columns:112px minmax(0,1fr);padding:9px 12px;border-color:#222930}
.moderation-console{background:#13110d;border-color:#443a28}
.moderation-actions{padding:12px;border-color:#3a3225}

/* 10. Personnel dossier */
.dossier-shell{background:#0f1419}
.profile-hero{padding:23px;background:#121820}
.profile-hero:after{font-size:30px}
.profile-access{padding:10px 11px;background:#0c1116;border-color:#343d46}
.profile-record-strip{border-color:#29313a;background:#29313a}
.profile-record-strip div{padding:9px 12px;background:#0d1217}
.profile-tabs{border-color:#29313a;background:#29313a}
.profile-tab{min-height:54px;padding:10px 13px;background:#0f1419;color:#858d95}
.profile-tab:hover{background:#141a20}
.profile-tab.active{background:#161b21;color:#ccb574}
.profile-tab.active:after{left:0;right:0;height:2px;background:#8f7845}
.profile-tab strong{font-size:10px}
.profile-overview{background:#29313a}
.identity-overview-card,.visibility-overview-card{padding:20px;background:#0f1419}
.identity-facts{gap:0;border-top:1px solid #29313a;border-left:1px solid #29313a}
.identity-fact{padding:12px 13px;border:0;border-right:1px solid #29313a;border-bottom:1px solid #29313a;background:#10161c}
.identity-fact strong{font-size:15px}
.profile-signature-card{background:#14140f;border-left-color:#73633d}
.profile-record-section{padding:16px;background:#0f1419}
.profile-record-section+.profile-record-section{border-color:#29313a}
.profile-record-heading{margin-bottom:10px;padding-bottom:10px;border-color:#29313a}
.profile-record-row{
 grid-template-columns:36px minmax(0,1fr) auto;
 gap:11px;
 padding:11px 0;
 border:0;
 border-bottom:1px solid #242b32;
 background:transparent;
}
.profile-record-row:last-child{border-bottom:0}
.profile-record-row:hover{transform:none;background:#12181e}
.profile-record-icon{width:34px;min-height:34px;border-color:#3b4650;background:#0d1318}
.profile-record-main p{margin-top:5px;line-height:1.6}

/* 11. Notifications and search: lists, not cards */
.notification-summary{margin-bottom:12px;border-color:#29313a;background:#29313a}
.notification-summary div{padding:11px 13px;background:#0f1419}
.notification-summary strong{font-size:17px;color:#c3aa6c}
.notification-tabs{border-bottom:1px solid #29313a;background:#0e1318}
.notification-row{padding-top:12px;padding-bottom:12px}
.notification-row.unread{box-shadow:inset 2px 0 0 #8f7845}
.activity-icon{width:24px;height:24px;background:#0c1217;border-color:#3b4650}
.empty-state{background:#0d1217;border-color:#303841;color:#7d858d}

/* 12. Archive: colder than forum */
.archive-row:before{top:0;bottom:0;width:2px;background:#3c4650}
.restricted-panel{box-shadow:none}
.redaction-lines i{background:#030405}

/* 13. Mobile: truly mobile */
@media(max-width:980px){
 .thread-actionbar{top:0}
 .post-floor{grid-template-columns:150px minmax(0,1fr)}
}

@media(max-width:700px){
 body{background:#090c10}
 .utility{display:none}
 .head-main{min-height:58px}
 .brand-copy strong{font-size:17px}
 .seal{width:40px;height:40px}
 .primary-nav{overflow-x:auto;white-space:nowrap}
 .nav-link{min-height:38px;padding:0 12px;font-size:11px}
 .main{padding-top:14px;padding-bottom:78px}
 .page-title{font-size:27px}
 .page-intro{font-size:12px}
 .panel-head{padding:11px 13px}
 .panel-body{padding:14px}

 .login-scene{padding:30px 22px}
 .login-scene h1{font-size:38px}
 .login-panel{border-left:0;border-top:1px solid #29313a}

 .session-ledger{grid-template-columns:repeat(2,minmax(0,1fr))}
 .session-ledger div:nth-child(2){border-right:0}
 .session-ledger div:nth-child(-n+2){border-bottom:1px solid #252c33}
 .campus-life-head{padding:16px}
 .campus-life-grid{grid-template-columns:1fr}
 .campus-service-card{grid-template-columns:62px minmax(0,1fr);border-right:0!important;padding:12px 14px}

 .forum-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
 .forum-overview .forum-intro{grid-column:1/-1}
 .forum-overview>div{min-height:68px;padding:11px 12px}

 .thread-masthead{padding:17px 15px 14px}
 .thread-masthead h1{font-size:23px}
 .thread-meta-grid{gap:4px}
 .thread-actionbar{
  position:sticky;
  top:auto;
  bottom:0;
  z-index:70;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  order:99;
  padding:5px!important;
  border-top:1px solid #34404a;
  border-bottom:0;
  background:rgba(9,12,16,.98);
 }
 .thread-actionbar .btn{width:100%;min-height:42px;padding:6px 4px;font-size:10px}
 .thread-actionbar .btn:nth-child(n+5){display:none}
 .reading-toolbar{padding:8px 10px}
 .reading-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
 .reading-action{min-height:38px}
 .post-floor{display:block;background:#0f1419}
 .post-user{
  display:grid;
  grid-template-columns:50px minmax(0,1fr) auto;
  gap:10px;
  align-items:start;
  padding:13px 14px;
  border-right:0;
  border-bottom:1px solid #29313a;
  background:#0c1116;
 }
 .post-user .avatar{width:50px;height:50px;margin:0}
 .post-user>div{min-width:0}
 .post-user dl{display:none}
 .member-status-note{grid-column:1/-1;margin-top:3px}
 .post-content{padding:13px 15px 16px}
 .post-top{padding-bottom:8px}
 .post-body{padding:15px 0 12px;font-size:15px;line-height:1.82}
 .post-record-id{display:none}
 .reference-list{display:block}
 .reference-item{grid-template-columns:24px minmax(0,1fr);padding:7px 0}
 .reference-copy{display:block}
 .reference-copy small{margin-top:1px}
 .post-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}
 .post-actions .btn{min-height:38px;padding:6px 4px;font-size:10px}
 .post-actions .btn:nth-child(n+4){display:none}
 .reply-launch{margin-top:12px;padding:11px 12px}

 .profile-hero{padding:16px}
 .profile-name-block h1{font-size:27px}
 .profile-record-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .profile-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
 .profile-tab:first-child{grid-column:1/-1}
 .profile-tab{min-height:48px;padding:8px 10px}
 .identity-overview-card,.visibility-overview-card{padding:15px}
 .identity-facts{grid-template-columns:1fr}
 .profile-record-section{padding:12px 14px}
 .profile-record-row{grid-template-columns:32px minmax(0,1fr);padding:10px 0}
 .profile-record-side{grid-column:2;align-items:flex-start;flex-direction:row;justify-content:space-between;width:100%}

 .notification-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
 .notification-summary div{padding:9px 10px}
 .notification-summary span{font-size:8px}
 .notification-summary strong{font-size:15px}
 .history-row{grid-template-columns:1fr}
 .moderation-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:420px){
 .forum-overview{grid-template-columns:1fr 1fr}
 .forum-overview .forum-intro{grid-column:1/-1}
 .profile-record-strip{grid-template-columns:1fr 1fr!important}
 .profile-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
 .profile-tab:first-child{grid-column:1/-1}
 .notification-summary{grid-template-columns:1fr 1fr 1fr}
 .thread-actionbar{grid-template-columns:repeat(4,minmax(0,1fr))}
 .thread-actionbar .btn{font-size:9px}
 .post-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(prefers-reduced-motion:reduce){
 *{scroll-behavior:auto!important}
 .btn,.quick-action,.drawer-link,.reading-action,.board-row,.thread-row,.notification-row,.archive-row,.profile-record-row{transition:none!important}
}
