
/* Generated from branding/design-tokens.json v1.2.0; edit that source only. */
:root{
  --brand:#2F2170;
  --brand-lift:#5A4B9E;
  --brand-soft:#F0EEF9;
  --brand-line:#D6D1EC;
  --gold:#FFDE59;
  --gold-deep:#7A5C00;
  --gold-soft:#FFF8E0;
  --gold-line:#F5E4A8;
  --ink:#1A1626;
  --ink-2:#4A4560;
  --ink-3:#6E6A85;
  --paper:#FFFFFF;
  --wash:#FAF9FC;
  --rule:#E4E2EC;
  --rule-2:#F1F0F6;
  --good:#1F6B4D;
  --good-soft:#EAF5F0;
  --good-line:#C9E3D8;
  --warn:#7A5C00;
  --warn-soft:#FFF8E0;
  --warn-line:#F5E4A8;
  --risk:#A32D2D;
  --risk-soft:#FBEDED;
  --risk-line:#F0D0D0;
  --info:#1F5FA8;
  --info-soft:#EAF1FA;
  --info-line:#CBDCF0;
  --radius:4px;
  --font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
  --font-document-display:"Playfair Display","Didot","Bodoni 72",Georgia,"Times New Roman",serif;
  --font-size-caption:12px;
  --font-size-small:13px;
  --font-size-body:14px;
  --font-size-card-title:16px;
  --font-size-section:18px;
  --font-size-heading:26px;
  --font-weight-body:400;
  --font-weight-control:500;
  --font-weight-heading:600;
  --line-height-body:1.5;
  --line-height-heading:1.2;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --radius-pill:999px;
  --topbar-height:68px;
  --topnav-height:50px;
  --sidebar-width:208px;
  --control-height:44px;
  --icon-size:18px;
  --focus-width:3px;
  --shadow-panel:0 12px 36px rgba(26,22,38,.06);
  --border-width:1px;
  --brand-frame:#2F2170;
  --on-brand-frame:#FFFFFF;
  --font-size-micro:11px;
  --font-size-date:20px;
  --font-size-heading-mobile:22px;
  --line-height-card:1.35;
  --icon-stroke:1.7;
  --focus-offset:3px;
  --accent-width:2px;
  --sidebar-width-compact:184px;
  --phone-width:390px;
  --on-brand:#FFFFFF;
  --calendar-day-height:88px;
  --calendar-agenda-height:350px;
  --popup-width:480px;
  --popup-padding:24px;
  --attention-card-padding:16px;
  --attention-card-title:14px;
  --overlay:rgba(26,22,38,.45);
}
[data-theme="dark"]{
  --brand:#CEC1FF;
  --brand-lift:#AD98F5;
  --brand-soft:#372B56;
  --brand-line:#69558E;
  --gold:#FFDE59;
  --gold-deep:#F4D775;
  --gold-soft:#3C321B;
  --gold-line:#796434;
  --ink:#F3F0FA;
  --ink-2:#D3CEE0;
  --ink-3:#B1A9C3;
  --paper:#201B30;
  --wash:#181421;
  --rule:#494057;
  --rule-2:#352D44;
  --good:#9CDBBB;
  --good-soft:#193C2E;
  --good-line:#39745A;
  --warn:#F4D775;
  --warn-soft:#3C321B;
  --warn-line:#796434;
  --risk:#FFB5B5;
  --risk-soft:#45242B;
  --risk-line:#86505A;
  --info:#A9CDFB;
  --info-soft:#233751;
  --info-line:#4C719C;
  --on-brand:#211538;
}

*{box-sizing:border-box;scrollbar-width:none}*::-webkit-scrollbar{display:none}body{margin:0;background:var(--wash);color:var(--ink);font:var(--font-weight-body) var(--font-size-body)/var(--line-height-body) var(--font-ui);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}button,select,input{font:inherit;color:inherit}button{cursor:pointer}button,select{min-height:var(--control-height);border:var(--border-width) solid var(--rule);border-radius:var(--radius);background:var(--paper);padding:var(--space-2) var(--space-3)}button:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:var(--focus-width) solid var(--brand-lift);outline-offset:var(--focus-offset)}h1,h2,h3,p{margin:0}h1{font-size:var(--font-size-heading);font-weight:var(--font-weight-heading);line-height:var(--line-height-heading);letter-spacing:-.025em}h2{font-size:var(--font-size-section);font-weight:var(--font-weight-heading);line-height:var(--line-height-heading)}h3{font-size:var(--font-size-card-title);font-weight:var(--font-weight-control);line-height:var(--line-height-card)}small{font-size:var(--font-size-caption);color:var(--ink-3)}.icon{width:var(--icon-size);height:var(--icon-size);fill:none;stroke:currentColor;stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.review{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-4) var(--space-6);background:var(--paper);border-bottom:1px solid var(--rule)}.review-title{font-weight:500}.review-caption{color:var(--ink-3);font-size:var(--font-size-caption);margin-top:3px}.review-controls{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.review-controls label{font-size:var(--font-size-caption);display:flex;align-items:center;gap:var(--space-2)}.canvas{padding:var(--space-6)}.app{max-width:1344px;margin:auto;background:var(--paper);border:1px solid var(--rule);box-shadow:var(--shadow-panel)}.brandbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);height:var(--topbar-height);padding:0 var(--space-6);background:var(--brand-soft)}.identity{display:flex;align-items:center;gap:var(--space-5)}.logo{width:120px;display:block}.logo-dark{display:none}[data-theme=dark] .logo-light{display:none}[data-theme=dark] .logo-dark{display:block}.circle{border-left:1px solid var(--brand-line);padding-left:var(--space-5);font-weight:500;font-size:var(--font-size-section);color:var(--brand)}.account{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-small)}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-pill);background:var(--brand);color:var(--on-brand);font-weight:500}.topnav{display:flex;align-items:center;gap:var(--space-6);padding:0 var(--space-6);height:var(--topnav-height);border-bottom:1px solid var(--rule)}.topnav button{border:0;border-radius:0;height:var(--topnav-height);background:none;padding:0;color:var(--ink-2);white-space:nowrap;font-weight:500}.topnav button[aria-current=page]{color:var(--brand);border-bottom:3px solid var(--brand)}.top-note{margin-left:auto;color:var(--ink-3);font-size:var(--font-size-caption)}.bodygrid{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:686px}.sidebar{padding:var(--space-5) var(--space-3);border-right:1px solid var(--rule);background:var(--wash);display:flex;flex-direction:column;gap:var(--space-2)}.menu-caption{font-size:var(--font-size-caption);color:var(--ink-3);padding:0 var(--space-3) var(--space-2)}.submenu{display:flex;flex-direction:column;gap:var(--space-1)}.submenu button,.settings-link{display:flex;align-items:center;gap:var(--space-3);width:100%;border:0;background:transparent;text-align:left;font-weight:var(--font-weight-control);padding:10px var(--space-3);white-space:nowrap}.submenu button[aria-current=page],.settings-link[aria-current=page]{background:var(--brand-soft);color:var(--brand)}.settings-link{margin-top:auto}.main{min-width:0;padding:var(--space-6) var(--space-8)}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-6)}.pagehead p{margin-top:var(--space-2);color:var(--ink-3);font-size:var(--font-size-small)}.primary{background:var(--brand);color:var(--on-brand);border-color:var(--brand);display:inline-flex;gap:var(--space-2);align-items:center;font-weight:500}.new{cursor:default}.menu-toggle{display:none}.schedule{border:1px solid var(--brand-line);border-radius:var(--radius);overflow:hidden}.monthhead{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);background:var(--brand-frame);color:var(--on-brand-frame);gap:var(--space-4)}.monthhead small{color:inherit;opacity:.85}.monthmeta{display:flex;gap:var(--space-4);align-items:center;font-size:var(--font-size-caption)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday{font-size:var(--font-size-micro);padding:var(--space-2) var(--space-3);color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--rule)}.day{min-height:var(--calendar-day-height);padding:6px 8px;border-bottom:1px solid var(--rule-2);border-right:1px solid var(--rule-2);font-size:var(--font-size-micro)}.day:nth-child(7n){border-right:0}.date-number{color:var(--ink-3)}.day.outside .date-number{opacity:.45}.day.today .date-number{color:var(--brand);font-weight:600}.event{font-size:var(--font-size-micro);line-height:1.3;margin-top:2px;color:var(--brand);background:var(--brand-soft);padding:3px 5px;border-left:2px solid var(--brand)}.event.social{background:var(--gold-soft);color:var(--gold-deep);border-left-color:var(--gold-deep)}.agenda{display:none}.attention{margin-top:var(--space-6)}.sectionhead{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.sectionhead small{font-size:var(--font-size-caption)}.taskgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.taskcard{background:var(--wash);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--space-5);min-width:0}.taskcard .brand-label{font-size:var(--font-size-caption);color:var(--ink-3);margin-bottom:var(--space-2)}.taskcard h3{min-height:44px}.cardfoot{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-4);font-size:var(--font-size-caption);flex-wrap:wrap}.owner{color:var(--ink-2)}.status{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:var(--radius);font-size:var(--font-size-caption);line-height:1.4;white-space:nowrap}.status .icon{width:14px;height:14px}.error{color:var(--risk);background:var(--risk-soft)}.warning{color:var(--warn);background:var(--warn-soft)}.success{color:var(--good);background:var(--good-soft)}.info{color:var(--info);background:var(--info-soft)}.neutral{color:var(--ink-2);background:var(--paper);border:1px solid var(--rule)}.range{margin-top:var(--space-3);font-size:var(--font-size-caption);color:var(--ink-3)}.placeholder{margin-top:var(--space-6);border:1px dashed var(--brand-line);padding:var(--space-6);border-radius:var(--radius);max-width:680px}.placeholder p{margin-top:var(--space-3);color:var(--ink-2)}.tokenintro{max-width:620px;color:var(--ink-2);margin-bottom:var(--space-6)}.token-section{margin-top:var(--space-6)}.swatches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-4)}.swatch{padding:var(--space-4);background:var(--wash);border:1px solid var(--rule);border-radius:var(--radius)}.swatch strong{font-weight:500;display:block;margin-top:var(--space-3)}.swatch small{display:block;margin-top:4px}.brandchip{background:var(--brand-frame);color:var(--on-brand-frame);padding:12px;border-radius:var(--radius)}.tokenlist{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-4)}.tokenlist>div{padding:var(--space-4);background:var(--wash);border-radius:var(--radius)}.tokenlist strong{font-weight:500}.tokenlist p{margin-top:var(--space-2);font-size:var(--font-size-small);color:var(--ink-2)}.activityrows article{display:flex;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--rule)}.activityrows p{margin-top:4px;color:var(--ink-2)}.agenda-row{display:flex;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--rule-2)}.agenda-date{min-width:40px;line-height:1.2}.agenda-date b{font-size:var(--font-size-date);font-weight:500}.agenda-row p{font-size:var(--font-size-small)}.agenda-row small{font-size:var(--font-size-caption)}.agenda-cue{font-size:var(--font-size-micro);color:var(--ink-3);padding-top:var(--space-3)}
.phone .app{max-width:var(--phone-width)}.phone .bodygrid{display:block;min-height:620px}.phone .sidebar{display:none}.phone .sidebar.open{display:flex;border:1px solid var(--rule);padding:var(--space-4);margin:var(--space-4);border-radius:var(--radius)}.phone .main{padding:var(--space-5)}.phone .brandbar{padding:0 var(--space-4)}.phone .account span:not(.avatar){display:none}.phone .topnav{padding:0 var(--space-4);gap:var(--space-5);overflow:auto}.phone .top-note{display:none}.phone .pagehead{flex-wrap:wrap;gap:var(--space-3)}.phone h1{font-size:var(--font-size-heading-mobile)}.phone .pagehead p{font-size:var(--font-size-caption)}.phone .new{font-size:var(--font-size-small)}.phone .menu-toggle{display:inline-flex;align-items:center;gap:var(--space-2);width:100%;margin-bottom:var(--space-4);font-size:var(--font-size-small)}.phone .calendar{display:none}.phone .agenda{display:block;max-height:var(--calendar-agenda-height);overflow:auto;padding:0 var(--space-4) var(--space-3)}.phone .monthhead{padding:var(--space-4)}.phone .monthmeta{display:none}.phone .taskgrid{grid-template-columns:1fr}.phone .taskcard{padding:var(--space-4)}.phone .taskcard h3{min-height:0}.phone .cardfoot{margin-top:var(--space-3)}.phone .detail-toggle{margin-top:var(--space-3)}.phone .swatches{grid-template-columns:1fr 1fr}.phone .tokenlist{grid-template-columns:1fr}.phone .circle{padding-left:var(--space-3)}.phone .identity{gap:var(--space-3)}
@media(max-width:850px){.bodygrid{grid-template-columns:var(--sidebar-width-compact) minmax(0,1fr)}.main{padding:var(--space-6)}.taskgrid{grid-template-columns:1fr}.taskcard h3{min-height:0}.top-note{display:none}.monthmeta{display:none}.calendar{display:none}.agenda{display:block;max-height:var(--calendar-agenda-height);overflow:auto;padding:0 var(--space-4) var(--space-3)}}
@media(max-width:600px){.review{display:block;padding:var(--space-4)}.review-controls{margin-top:var(--space-3);gap:var(--space-2)}.review-controls label{font-size:var(--font-size-micro)}.review-controls select{font-size:var(--font-size-caption);padding:6px 8px}.canvas{padding:var(--space-2)}.bodygrid{display:block;min-height:620px}.sidebar{display:none}.sidebar.open{display:flex;border:1px solid var(--rule);padding:var(--space-4);margin:var(--space-4);border-radius:var(--radius)}.main{padding:var(--space-5)}.brandbar{padding:0 var(--space-4)}.account span:not(.avatar){display:none}.topnav{padding:0 var(--space-4);gap:var(--space-5);overflow:auto}.pagehead{flex-wrap:wrap;gap:var(--space-3)}h1{font-size:var(--font-size-heading-mobile)}.pagehead p{font-size:var(--font-size-caption)}.new{font-size:var(--font-size-small)}.menu-toggle{display:inline-flex;align-items:center;gap:var(--space-2);width:100%;margin-bottom:var(--space-4);font-size:var(--font-size-small)}.calendar{display:none}.agenda{display:block;max-height:var(--calendar-agenda-height);overflow:auto;padding:0 var(--space-4) var(--space-3)}.monthhead{padding:var(--space-4)}.taskgrid{grid-template-columns:1fr}.taskcard{padding:var(--space-4)}.cardfoot{margin-top:var(--space-3)}.detail-toggle{margin-top:var(--space-3)}.swatches{grid-template-columns:1fr 1fr}.tokenlist{grid-template-columns:1fr}.circle{padding-left:var(--space-3)}.identity{gap:var(--space-3)}.sectionhead{align-items:flex-start}.sectionhead small{max-width:90px;text-align:right}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.attention{margin-top:0;margin-bottom:var(--space-6)}.schedule{margin-top:var(--space-6)}.taskcard.slim{appearance:none;-webkit-appearance:none;color:var(--ink);background:var(--wash);text-align:left;min-height:108px;padding:var(--attention-card-padding);transition:border-color .15s,background .15s}.taskcard.slim:hover{border-color:var(--brand-line);background:var(--brand-soft)}.tasktop{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.tasktop .brand-label{margin-bottom:0}.tasktop>.icon{width:14px;height:14px;color:var(--brand)}.task-title{display:block;font-size:var(--attention-card-title);font-weight:var(--font-weight-control);line-height:var(--line-height-card);margin-top:var(--space-2)}.slim .cardfoot{margin-top:var(--space-3)}dialog{width:var(--popup-width);max-width:calc(100vw - 32px);padding:var(--popup-padding);border:1px solid var(--brand-line);border-radius:var(--radius);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-panel);font:inherit}dialog::backdrop{background:var(--overlay)}.popuphead{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.popuphead small{color:var(--brand)}.popuphead button{display:flex;align-items:center;gap:var(--space-2)}.placeholder-box{margin-top:var(--space-5);padding:var(--space-6);background:var(--wash);border:1px dashed var(--brand-line);border-radius:var(--radius);color:var(--ink-2)}.placeholder-box strong{display:block;font-weight:var(--font-weight-control);margin-bottom:var(--space-2)}.placeholder-box p{font-size:var(--font-size-small)}dialog h2{font-size:var(--font-size-section)}.popup-meta{margin-top:var(--space-2);color:var(--ink-3);font-size:var(--font-size-caption)}
@media(max-width:600px){.taskcard.slim{min-height:96px}.attention{margin-bottom:var(--space-5)}}@media(prefers-reduced-motion:reduce){.taskcard.slim{transition:none}}

/* Hosted application shell: the approved light frame fills its viewport. */
.canvas{padding:0}.app{max-width:none;min-height:100dvh;border:0;border-radius:0;box-shadow:none}.bodygrid{min-height:calc(100dvh - 166px)}

/* Today · Needs attention: open notes from KOCs and seeders, one row each with one Open button. */
.noterows{border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper)}.noterow{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-top:1px solid var(--rule-2)}.noterow:first-child{border-top:0}.notetext{flex:1;min-width:0}.notetext h3{font-size:var(--attention-card-title)}.notetext p{margin-top:var(--space-1);color:var(--ink-2);font-size:var(--font-size-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notetext small{display:block}.noterow .primary{flex:none;justify-content:center;min-width:88px}
@media(max-width:600px){.noterow{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.noterow .primary{width:100%}.notetext p{white-space:normal}}
/* One shell: Today's bar, tabs and side menu match the module pages. */
.brandbar{padding:0 30px}.identity{gap:var(--space-4)}.logo{height:52px;object-fit:contain}.circle{padding-left:var(--space-4);font-size:20px}.topnav{height:52px;gap:28px;padding:0 30px}.topnav button{height:52px}.topnav button[aria-current=page]{font-weight:600;padding-top:3px}.bodygrid{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding:22px 14px;background:var(--paper)}.menu-caption{font-size:11px;text-transform:uppercase;letter-spacing:1px;padding:0 var(--space-3);margin-bottom:10px}.submenu button[aria-current=page],.settings-link[aria-current=page]{border-left:3px solid var(--brand);border-radius:0 var(--radius) var(--radius) 0;font-weight:600}
#account{display:flex;align-items:center;gap:var(--space-2);min-width:0;color:var(--brand)}#account span{overflow-wrap:anywhere;min-width:0}#account button{flex:none;font-weight:600;color:var(--brand)}
@media(max-width:1024px){.brandbar,.topnav{padding-left:var(--space-6);padding-right:var(--space-6)}.bodygrid{grid-template-columns:180px minmax(0,1fr)}}
@media(max-width:760px){.brandbar{height:56px;padding:0 14px;gap:var(--space-2)}.identity{gap:var(--space-2)}.logo{width:80px;height:42px}.circle{font-size:16px;padding-left:var(--space-2)}.topnav{height:45px;padding:0 14px;gap:22px;font-size:12px}.topnav button{height:44px;font-size:12px}#account span{display:none}#account button{font-size:11px;padding:6px;min-height:34px}}
