:root{color-scheme:light;--ink:#17283e;--muted:#64748b;--bg:#f3f5f9;--surface:#fff;--line:#dfe6ef;--blue:#285bc0;--soft:#eef3fc}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:calc(14px * var(--font-scale,1))/1.5 var(--font-body,"Manrope",system-ui,sans-serif)}button,input,textarea,select{font:inherit;color:inherit}button,input,textarea,select,a{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:9px 13px;font-weight:650}button:disabled{opacity:.5;cursor:default}button:hover:not(:disabled){border-color:#8ca8d6}button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}button.danger{color:#ae2121}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--surface);min-width:0}textarea{min-height:110px;resize:vertical}label{display:grid;gap:5px;font-size:calc(13px * var(--font-scale,1));font-weight:600}h1,h2,h3,p{margin-top:0}h1{font-size:calc(27px * var(--font-scale,1));margin-bottom:0}h2{font-size:calc(20px * var(--font-scale,1))}h3{font-size:calc(17px * var(--font-scale,1))}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}aside{background:#152943;color:#e8effc;padding:27px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;font-size:calc(26px * var(--font-scale,1));font-weight:800;color:inherit}.brand>span{display:grid;place-items:center;background:#365eaa;color:#fff;width:40px;height:40px;border-radius:11px}nav{display:grid;gap:7px;margin-top:32px}nav button{background:transparent;border:0;color:#d7e3f9;text-align:left}nav button.active{background:#2c466b;color:white}.side-footer{display:grid;gap:12px;margin-top:auto}.side-footer button{background:#243d60;border-color:#395272;color:white}.side-footer small{color:#a9bddb}main{padding:26px 30px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.eyebrow{font-size:calc(10px * var(--font-scale,1));font-weight:800;letter-spacing:1.5px;color:var(--muted);margin-bottom:6px}.connection{display:grid;gap:6px;text-align:right;font-size:calc(11px * var(--font-scale,1));color:var(--muted)}.connection select{padding:7px;max-width:240px}.development-note{border:1px solid #ead8a9;background:#fff9eb;color:#75551e;padding:11px 14px;border-radius:10px;font-size:calc(12px * var(--font-scale,1));margin-bottom:23px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.kpi{display:grid;gap:6px;text-align:left;padding:15px}.kpi span{color:var(--muted);font-size:calc(12px * var(--font-scale,1))}.kpi b{font-size:calc(30px * var(--font-scale,1));line-height:1.2}.toolbar,.actions,.section-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.toolbar{margin-bottom:16px}.toolbar input{flex:1;min-width:170px}.toolbar select{max-width:210px}.section-title{justify-content:space-between;margin:20px 0 12px}.section-title h2{margin:0}.count,.hint{color:var(--muted);font-size:calc(12px * var(--font-scale,1))}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px}.summary{text-align:left;display:flex;gap:12px;align-items:flex-start;min-width:0;padding:14px}.summary b{display:grid;place-items:center;flex:none;background:#eaf0fa;border-radius:6px;min-width:28px;height:28px}.summary span{overflow-wrap:anywhere}.task-grid,.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:12px}.task,.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}.task{border-left:4px solid #d6ab00}.task[data-priority="1"]{border-left-color:#dc2626}.task[data-priority="2"]{border-left-color:#ea721e}.task[data-priority="4"]{border-left-color:#3478d5}.task h3{overflow-wrap:anywhere;margin-bottom:10px}.task .actions{margin-top:15px}.badge{display:inline-block;border-radius:6px;padding:3px 7px;font-size:calc(11px * var(--font-scale,1));font-weight:700;background:var(--soft)}.badge.p1{background:#fee2e2;color:#b91c1c}.badge.p2{background:#ffedd5;color:#9a3412}.badge.p3{background:#fef3c7;color:#854d0e}.badge.p4{background:#dbeafe;color:#1e40af}.readonly{background:#eff3f8;color:#526784}.meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;font-size:calc(12px * var(--font-scale,1));color:var(--muted)}.task[data-day="today"] .meta,.task[data-day="today"] h3{color:#101010}.task[data-day="tomorrow"] .meta{color:#374151}.task[data-status="waiting"]{background:#fffcf0}.empty{padding:30px;border:1px dashed var(--line);border-radius:12px;text-align:center;color:var(--muted)}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:auto}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.full{grid-column:1/-1}.actions{margin-top:17px}.error{color:#b91c1c;font-size:calc(13px * var(--font-scale,1));white-space:pre-wrap}.remote-change{padding:12px;background:#fff4cc;color:#72541e;border-radius:8px;font-size:calc(12px * var(--font-scale,1))}dialog{border:1px solid var(--line);border-radius:16px;padding:20px;width:min(760px,calc(100vw - 24px));max-height:90vh;color:var(--ink);background:var(--surface)}dialog::backdrop{background:#15294380}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.dialog-head h2{margin:0;overflow-wrap:anywhere}.dialog-head>button{font-size:calc(23px * var(--font-scale,1));line-height:1;padding:5px 10px}.detail-list{display:grid;gap:9px}.detail-list>div{border-top:1px solid var(--line);padding-top:9px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px}.detail-list dt{font-size:calc(12px * var(--font-scale,1));font-weight:700;color:var(--muted)}.detail-list dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.private-note{margin-top:20px;padding:14px;background:var(--soft);border-radius:10px}.private-note textarea{margin-top:6px}.history-version{padding:12px 0;border-bottom:1px solid var(--line)}.preferences{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.preferences .checkbox{background:var(--surface);border:1px solid var(--line);padding:12px;border-radius:9px}.conflict-preview{white-space:pre-wrap;font-size:calc(11px * var(--font-scale,1));overflow:auto;max-height:220px;background:var(--soft);padding:10px}#toast{position:fixed;bottom:18px;right:18px;max-width:min(460px,calc(100vw - 36px));background:#172b46;color:#fff;padding:14px 18px;border-radius:10px;z-index:20;font-size:calc(13px * var(--font-scale,1))}.login-page{display:grid;min-height:100vh;place-items:center;padding:20px}.login-panel{width:min(440px,100%);padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:16px}.login-panel .brand{margin-bottom:28px}.login-panel h1{font-size:calc(27px * var(--font-scale,1));margin-bottom:10px}.login-panel form{display:grid;gap:16px;margin:22px 0}.login-panel .development-note{margin-top:20px;margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.print-view{display:none}@media(max-width:850px){.shell{grid-template-columns:190px minmax(0,1fr)}main{padding:20px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.shell{grid-template-columns:minmax(0,1fr)}aside{position:static;height:auto;padding:16px}.brand{font-size:calc(23px * var(--font-scale,1))}.brand>span{width:32px;height:32px}nav{display:flex;flex-wrap:wrap;margin-top:14px;gap:4px}nav button{font-size:calc(12px * var(--font-scale,1));padding:8px}.side-footer{display:flex;align-items:center;flex-wrap:wrap;margin-top:12px;font-size:calc(11px * var(--font-scale,1));gap:12px}.side-footer button{padding:4px 8px}.side-footer small{margin-left:auto}main{padding:18px 14px}.topbar{align-items:flex-start}h1{font-size:calc(22px * var(--font-scale,1))}.connection select{max-width:150px}.connection{font-size:calc(10px * var(--font-scale,1))}.formgrid,.preferences{grid-template-columns:minmax(0,1fr)}.detail-list>div{grid-template-columns:1fr;gap:3px}.summary-grid{grid-template-columns:minmax(0,1fr)}}@media print{body>*{display:none!important}body>.print-view{display:block!important;padding:12mm;background:white;color:black}.print-view article{break-inside:avoid}.print-view pre{white-space:pre-wrap}}

/* Project journey: shared UI for backend and clearly labelled local demo. */
.project-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#e9effa;border:1px solid #d8e3f5;border-radius:16px;padding:26px;margin-bottom:20px}.project-intro h2{font-size:calc(25px * var(--font-scale,1));max-width:620px;margin-bottom:8px}.project-intro p:last-child{margin:0;color:#52647f}.project-intro>button{flex:none}.project-card{display:flex;flex-direction:column;gap:14px;padding:22px}.project-card h2{margin:0}.project-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.project-symbol{display:grid;place-items:center;width:48px;height:48px;background:#e8eefb;color:#3156a4;border-radius:13px;font-size:calc(30px * var(--font-scale,1));flex:none}.project-description{color:#617086;margin:0;min-height:66px;white-space:pre-wrap}.project-counts{display:grid;gap:5px;font-size:calc(12px * var(--font-scale,1));color:#617086;margin-bottom:8px}.project-counts b{color:#17283e}.project-card>button{margin-top:auto;text-align:left}.project-heading{display:flex;align-items:center;gap:16px;margin-bottom:22px}.project-heading h2{font-size:calc(26px * var(--font-scale,1));margin-bottom:4px}.project-heading p{color:#617086;margin:0}.project-tabs{display:flex;gap:7px;border-bottom:1px solid #d9e2ef;padding-bottom:12px;margin-bottom:22px;overflow:auto}.project-tabs button{white-space:nowrap;background:transparent;border-color:transparent}.project-tabs button[aria-pressed=true]{background:#e4ecfb;border-color:#bfceeb;color:#214d9d}.project-overview,.integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-help{margin-top:18px;background:#f5f8fe}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.project-metrics{display:flex;gap:12px;margin-top:24px}.project-metrics button{flex:1;display:grid;gap:5px;text-align:left;font-size:calc(12px * var(--font-scale,1))}.project-metrics b{font-size:calc(27px * var(--font-scale,1))}.project-steps{display:grid;gap:10px}.project-steps button{display:flex;gap:14px;align-items:center;text-align:left;padding:14px}.project-steps button>span{color:#7191c6;font-size:calc(22px * var(--font-scale,1))}.project-steps div{flex:1}.project-steps small,.member-row small,.intake-results small{display:block;color:#617086;font-weight:400;margin-top:4px}.member-list{display:grid}.member-row{display:flex;align-items:center;gap:13px;padding:17px 0;border-bottom:1px solid #e2e8f1}.member-row>div{flex:1}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e8eef9;font-weight:700}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}.resource-card h3{margin:14px 0 9px}.resource-card p{color:#617086;overflow-wrap:anywhere;white-space:pre-wrap}.integration-card{padding:23px}.integration-card h2{margin-top:14px}.badge.connected{background:#e3f2e9;color:#236244}.badge.pending{background:#fff0d8;color:#80531c}.spaced{margin-top:16px}.scope-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.scope-options label{display:grid;grid-template-columns:20px 1fr;border:1px solid #cdd9ec;background:#f5f8ff;padding:14px;border-radius:10px}.scope-options label:has(input:checked){border-color:#315cb3;background:#eaf0fd}.scope-options input{grid-row:1/3;width:auto}.scope-options small{font-weight:400;color:#5c6d87}.source-text{white-space:pre-wrap;overflow-wrap:anywhere;font:calc(14px * var(--font-scale,1))/1.6 system-ui;max-height:45vh;overflow:auto;background:#f4f7fb;border:1px solid #dce4f0;border-radius:10px;padding:15px}.intake-results{display:grid;gap:8px;max-height:45vh;overflow:auto;margin-top:15px}.intake-results button{text-align:left}.brief-output{min-height:45vh;font-size:calc(13px * var(--font-scale,1))}fieldset{border:1px solid #d9e1ed;border-radius:10px;margin:17px 0;padding:14px}fieldset label{margin:7px 0}legend{font-size:calc(13px * var(--font-scale,1));font-weight:700;padding:0 7px}.demo-banner{border-radius:10px;padding:14px;background:#e9edff;border:1px solid #bcc9f6;color:#304c88;margin-bottom:18px}.demo-banner select{display:inline-block;width:auto;margin-left:9px}.demo-banner p{font-size:calc(12px * var(--font-scale,1));margin:8px 0 0}.demo-banner button{font-size:calc(12px * var(--font-scale,1));padding:6px 9px;margin-left:8px}@media(max-width:760px){.project-overview,.integration-grid{grid-template-columns:1fr}.project-intro{display:block;padding:20px}.project-intro>button{margin-top:16px}.project-intro h2{font-size:calc(22px * var(--font-scale,1))}.project-heading h2{font-size:calc(22px * var(--font-scale,1))}.scope-options{grid-template-columns:1fr}.project-tabs{max-width:100%}.member-row{flex-wrap:wrap}.demo-banner select{max-width:100%;margin:8px 0 0}}

/* Web navigation: requested by owner 2026-11-01. */
@media(min-width:851px){.shell{grid-template-columns:280px minmax(0,1fr)}}
@media(min-width:621px) and (max-width:850px){.shell{grid-template-columns:240px minmax(0,1fr)}}
aside{overflow-y:auto}aside nav{gap:10px}aside nav button{min-height:48px;padding:13px 15px;border:1px solid #456185;background:#203b5d;color:#e8f0fc;box-shadow:0 2px 4px #08162724}aside nav button:hover:not(:disabled){background:#2b4e78;border-color:#8baad3}aside nav button.active{background:#3b6bc0;border-color:#a2c1f1;color:#fff;box-shadow:inset 4px 0 #d6e6ff,0 2px 6px #08162730}aside nav button:focus-visible{outline:3px solid #c6deff;outline-offset:3px}
@media(max-width:620px){aside nav{gap:7px}aside nav button{padding:9px 12px;min-height:44px}}

/* Shared server-stored personal typography across navigation. */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/legacy-fonts/ed335894f8d954263675.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/legacy-fonts/ea1f264039fed13fd36e.ttf) format('truetype');
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(/static/legacy-fonts/5be701a9511117e73603.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(/static/legacy-fonts/9f0ce911354e554bbac0.ttf) format('truetype');
}

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(/static/legacy-fonts/dece7c71bbe61710787f.ttf) format('truetype');
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(/static/legacy-fonts/35757eaa996b3359022f.ttf) format('truetype');
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(/static/legacy-fonts/47ed1cfaa7ffca04a04a.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(/static/legacy-fonts/75367e6da7d914eaed87.ttf) format('truetype');
}

@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/legacy-fonts/20ab9752bd19a373dba6.ttf) format('truetype');
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/legacy-fonts/83a72786970a93a8c48e.ttf) format('truetype');
}

@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/legacy-fonts/848a44b912bc756fe5b1.ttf) format('truetype');
}
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/legacy-fonts/ecaef073dcc8ae308307.ttf) format('truetype');
}

@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(/static/legacy-fonts/5473d2e43bdd018ee124.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Serif';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(/static/legacy-fonts/0fb67e6eecf823169409.ttf) format('truetype');
}

@font-face {
  font-family: 'Literata';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/legacy-fonts/1d6eafdc620333fcc3d5.ttf) format('truetype');
}
@font-face {
  font-family: 'Literata';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/legacy-fonts/752bd45b08e48848cd2b.ttf) format('truetype');
}

@font-face {
  font-family: 'Comfortaa';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/legacy-fonts/c5633dc8323c788158d4.ttf) format('truetype');
}
@font-face {
  font-family: 'Comfortaa';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/legacy-fonts/990742fd8ec75da91f4e.ttf) format('truetype');
}

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(/static/legacy-fonts/6dbe082463cf749cfa05.ttf) format('truetype');
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(/static/legacy-fonts/e129a20e8ff7c907ffd0.ttf) format('truetype');
}

h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}.task{font-family:var(--font-task)}button,input,textarea,select{font-family:var(--font-control)}aside,aside button{font-family:var(--font-nav)}.source-text{font-family:var(--font-body)}.brand{overflow-wrap:anywhere}.side-footer{overflow-wrap:anywhere}aside nav button{overflow-wrap:anywhere}

html.appearance-loading .shell{visibility:hidden}html.appearance-loading::after{content:"";position:fixed;left:calc(50% - 14px);top:calc(50% - 14px);width:28px;height:28px;border:3px solid #e7dce1;border-top-color:#ec1159;border-radius:50%;animation:appearance-spin .7s linear infinite}@keyframes appearance-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){html.appearance-loading::after{animation:none}}

/* Users is an in-page section, sharing the shell and personal typography. */
.users-intro{margin-bottom:24px}.users-intro h2{margin-bottom:10px}.users-intro p:last-child{max-width:70ch;color:var(--muted)}.users-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;align-items:start}.users-records{display:grid;gap:20px}.users-grid fieldset label{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.users-grid input[type=checkbox]{width:auto}.users-grid fieldset select{flex-basis:100%}.user-record{display:grid;gap:5px;padding:12px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.users-grid .panel{overflow-wrap:anywhere}#createdInvite{margin-top:20px}#createdInvite button{margin-top:10px}@media(max-width:1100px){.users-grid{grid-template-columns:minmax(0,1fr)}}
