:root{--font-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--green:#22634e;--deep:#153d32;--deep2:#204c3f;--mint:#eaf2e9;--lime:#d7e9ba;--yellow:#f0cb65;--ink:#24382f;--muted:#78827b;--line:#e4e8e1;--bg:#f6f7f2;--white:#fff;--red:#b7513f;--amber:#93691a;--radius:18px;--shadow:0 5px 20px rgba(24,51,38,.035)}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);font-family:var(--font-sans);color:var(--ink);font-size:1rem;line-height:1.5}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
a{color:var(--green);text-decoration:none}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.45}
button:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
input:focus,textarea:focus,select:focus{outline:2px solid #afc7b7;outline-offset:1px}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4{font-weight:650}
h1{font-size:2rem;letter-spacing:-1px;line-height:1.22}
h2{font-size:1.375rem;letter-spacing:-.35px}
h3{font-size:1.125rem}
small{font-size:0.9375rem}
strong,b{font-weight:650}
.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.muted{color:var(--muted)}
.small{font-size:1rem}
.kicker{font-size:0.8125rem;letter-spacing:1.7px;font-weight:750;text-transform:uppercase;color:var(--green)}
.tag{display:inline-flex;align-items:center;gap:5px;font-size:0.8125rem;font-weight:650;padding:4px 8px;border-radius:6px;background:#eef2ed;color:#617366;white-space:nowrap}
.tag.green{background:#eaf3e8;color:#427353}
.tag.amber{background:#fbf2d9;color:var(--amber)}
.tag.red{background:#f9ece7;color:var(--red)}
.tag.slate{background:#eef0ee;color:#627269}
.chip{display:inline-flex;padding:6px 10px;border:1px solid var(--line);border-radius:100px;font-size:0.9375rem;gap:6px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:white;color:var(--ink);border-radius:9px;padding:10px 15px;font-size:1rem;font-weight:600;line-height:1.45}
.btn:hover{background:#f3f6ef;border-color:#bccdbe}
.btn.primary{background:var(--green);color:white;border-color:var(--green)}
.btn.primary:hover{background:var(--deep)}
.btn.soft{background:var(--mint);color:var(--green);border-color:transparent}
.btn.danger{color:var(--red)}
.btn.small{padding:7px 11px;font-size:0.9375rem}
.btn .icon{width:16px;height:16px}
.btn.full{width:100%}
.icon-button{width:34px;height:34px;border:1px solid transparent;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);border-radius:8px}
.icon-button:hover{background:#edf1e9;color:var(--green)}
.text-button{padding:0;background:none;border:0;color:var(--green);font-size:1rem;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.text-button .icon{width:14px;height:14px}
.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.panel-pad{padding:23px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:19px}
.section-space{margin-top:22px}
.notice{display:flex;gap:10px;padding:13px 15px;border-radius:10px;background:#faf4e3;color:#85651f;font-size:1rem;line-height:1.65}
.notice .icon{width:17px;margin-top:1px}
.notice.green{background:#edf4eb;color:#51715a}
.notice.neutral{background:#f2f5f0;color:#607165}
.notice.red{background:#fbefec;color:var(--red)}
.notice a{text-decoration:underline}
.row{display:flex;align-items:center;gap:10px}
.between{justify-content:space-between}
.wrap{flex-wrap:wrap}
.stack{display:grid;gap:15px}
.divider{height:1px;background:var(--line);margin:18px 0}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.skip-link{position:absolute;left:230px;top:-50px;z-index:500;background:white;padding:10px}
.skip-link:focus{top:10px}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:219px;background:var(--deep);color:#e0e9df;display:flex;flex-direction:column;padding:30px 18px 18px;z-index:40}
.brand{display:flex;align-items:center;gap:11px;color:white;padding:0 10px;font-size:1.875rem;font-weight:750;letter-spacing:1px;line-height:1.03}
.brand-sub{display:block;font-size:0.75rem;letter-spacing:1.85px;margin-top:7px;color:#b5c6b8;font-weight:500}
.brand-mark{width:42px;height:45px;display:flex;align-items:center;justify-content:center;background:var(--lime);border-radius:14px 14px 14px 3px;color:var(--deep)}
.brand-mark .icon{width:27px;height:27px}
.workspace-label{font-size:0.6875rem;letter-spacing:.85px;color:#86a394;margin:23px 9px 24px}
.side-project{border:1px solid #376050;background:#204739;border-radius:11px;display:flex;align-items:center;gap:10px;padding:13px 11px;margin-bottom:26px}
.mini-building{color:#cddfc0}
.side-project b{font-size:1rem}
.side-project small{display:block;color:#9eb8a8;margin-top:3px;font-size:0.8125rem}
.live-dot{width:6px;height:6px;border-radius:50%;background:#c9dea3;margin-left:auto}
.nav-label{font-size:0.75rem;color:#82a18e;letter-spacing:1.6px;margin:0 12px 9px}
.nav-item{width:100%;display:flex;align-items:center;gap:11px;color:#adc4b5;background:transparent;border:0;border-radius:9px;padding:12px 13px;margin:2px 0;font-size:1rem;text-align:left;transition:background .15s}
.nav-item .icon{width:17px;height:17px}
.nav-item:hover{background:#245141;color:white}
.nav-item.active{background:#d6e7b6;color:var(--deep);font-weight:650}
.nav-item.active:after{content:"";width:5px;height:5px;background:var(--green);border-radius:50%;margin-left:auto}
.nav-break{height:1px;background:#345545;margin:18px 12px}
.sidebar-bottom{margin-top:auto;padding-top:25px}
.side-siti{border-radius:12px;padding:11px 7px;display:flex;align-items:center;gap:9px}
.avatar{width:37px;height:37px;flex-shrink:0;border-radius:50%;background:#e3eddf;overflow:hidden;position:relative;border:1px solid #eff5e9}
.avatar img{position:absolute;width:86px;max-width:none;left:-24px;top:-4px}
.side-siti b{font-size:0.8125rem}
.side-siti small{display:block;color:#97b2a0;font-size:0.75rem;margin-top:3px}
.side-foot{font-size:0.75rem;color:#9cb6a4;padding:14px 9px 0;border-top:1px solid #325442;margin-top:9px}
.side-foot strong{font-weight:500;color:#d1ded1}
.side-foot span{display:block;font-size:0.75rem;margin-top:6px;color:#779982}
.app-shell{margin-left:219px}
.topbar{height:77px;padding:0 32px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:space-between;gap:15px}
.topbar-right,.topbar-left{display:flex;align-items:center;gap:18px}
.breadcrumb{font-size:0.9375rem;display:flex;gap:12px;align-items:center}
.breadcrumb>span:first-child{color:#8b938b}
.slash{color:#c3cdc0}
.breadcrumb strong{font-size:0.9375rem}
.demo-badge{font-size:0.75rem;letter-spacing:.8px;color:#8d762c;font-weight:650;display:flex;gap:6px;align-items:center}
.demo-badge span{width:5px;height:5px;background:#d7b84e;border-radius:50%}
.role-control{display:flex;align-items:center;gap:7px;padding-left:18px;border-left:1px solid var(--line)}
.role-control .icon{width:17px;height:17px;color:#65806d}
.role-control select{background:none;border:0;color:#405849;max-width:185px;font-size:0.9375rem;padding:7px 2px}
.mobile-menu{display:none}
.sidebar-backdrop{display:none}
#main{padding:29px 32px 20px;max-width:1690px;margin:0 auto;outline:0;min-height:calc(100vh - 121px)}
.page-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:25px;margin-bottom:24px}
.page-intro .kicker{margin-bottom:8px}
.page-intro p{font-size:1rem;color:var(--muted);margin-top:9px;line-height:1.7}
.intro-actions{display:flex;align-items:center;gap:8px;padding-top:9px;flex-shrink:0}
.project-selector{max-width:190px;border:1px solid var(--line);background:white;border-radius:9px;padding:9px 12px;font-size:0.9375rem;color:#4c6555}
.project-ribbon{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:21px}
.project-name{display:flex;align-items:center;gap:9px;font-size:0.9375rem}
.project-name .icon{width:16px;height:16px;color:#638470}
.project-name span{color:#9aa396}
.stage-tabs{display:flex;background:#eaf0e6;border:1px solid #e1e8dc;padding:4px;border-radius:10px;gap:3px}
.stage-tab{border:0;border-radius:7px;padding:7px 12px;background:none;font-size:0.8125rem;color:#788572;white-space:nowrap}
.stage-tab.active{background:white;color:var(--green);box-shadow:0 1px 4px #23331d12;font-weight:650}
.stage-tab .step-no{margin-right:5px;font-size:0.75rem;opacity:.55}
.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 319px;gap:21px;align-items:start}
.ai-panel{border-radius:20px}
.siti-hero{position:relative;background:linear-gradient(110deg,#eef4e7 0%,#f5f7eb 54%,#e5efdf 100%);padding:28px 28px 26px;min-height:253px;overflow:hidden}
.hero-copy{position:relative;z-index:2;width:66%;max-width:360px}
.siti-hero h2{font-size:2.125rem;line-height:1.2;letter-spacing:-1px;font-weight:600;margin:12px 0 12px}
.siti-hero h2 em{font-style:normal;color:#56814b}
.siti-hero p{font-size:0.9375rem;color:#6b806a;max-width:260px;line-height:1.8}
.hero-label{display:flex;align-items:center;gap:6px;color:#48694d;font-size:0.75rem;letter-spacing:1.6px;font-weight:650}
.hero-label .icon{width:14px;height:14px}
.hero-pills{display:flex;gap:8px;margin-top:19px}
.hero-pills span{font-size:0.75rem;background:#ffffff95;border:1px solid #dce6d3;padding:4px 9px;border-radius:6px;color:#6a8264;display:flex;align-items:center;gap:5px}
.hero-pills .icon{width:11px;height:11px}
.hero-character{position:absolute;right:13px;bottom:-2px;height:238px;width:auto;z-index:1;filter:drop-shadow(2px 5px 6px #31442916)}
.orb{border:1px solid #d2dec4;border-radius:50%;position:absolute;right:-61px;top:30px;width:271px;height:271px;opacity:.7}
.orb.two{width:202px;height:202px;right:-26px;top:65px;background:#deebcf70}
.hero-note{position:absolute;right:153px;bottom:23px;z-index:3;background:#fffef5e8;box-shadow:0 3px 10px #58673810;padding:7px 10px;border:1px solid #dde6d2;border-radius:8px;font-size:0.75rem;color:#5c7959;transform:rotate(-4deg)}
.hero-note .icon{width:11px;height:11px;margin-right:4px}
.chat-toolbar{display:flex;justify-content:space-between;align-items:center;padding:15px 23px 11px;border-top:1px solid #e4ebdc}
.assistant-label{display:flex;align-items:center;gap:8px;font-size:0.9375rem}
.assistant-label .tiny-dot{width:5px;height:5px}
.mode-label{font-size:0.75rem;color:#899381}
.chat-toolbar .text-button{font-size:0.75rem;color:#8c9787}
.chat-log{padding:11px 23px 10px;min-height:194px;max-height:330px;overflow:auto;scroll-behavior:smooth}
.chat-message{display:flex;gap:10px;margin-bottom:17px;align-items:flex-start;animation:rise .15s ease-out}
.chat-message .avatar{width:28px;height:28px}
.chat-message .avatar img{width:65px;left:-18px;top:-3px}
.message-main{min-width:0;flex:1}
.message-name{font-size:0.75rem;color:#7b8978;margin-bottom:5px;display:flex;align-items:center;gap:6px}
.message-text{font-size:1rem;line-height:1.8;color:#536150;white-space:pre-wrap;overflow-wrap:anywhere}
.chat-message.user{justify-content:flex-end}
.chat-message.user .message-main{max-width:90%;flex:0 1 auto;background:#edf3e8;border:1px solid #dce7d4;border-radius:12px 12px 2px 12px;padding:9px 12px}
.chat-message.user .message-text{color:#476344}
.chat-sources{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}
.chat-sources a,.chat-sources span{font-size:0.75rem;color:#8a9681;display:inline-flex;gap:3px;align-items:center}
.chat-sources .icon{width:11px;height:11px}
.chat-sources a:hover{text-decoration:underline;color:var(--green)}
.chat-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.chat-action{border:1px solid #d9e4d4;border-radius:8px;background:#fafcf8;color:#4d6f4d;font-size:0.8125rem;padding:7px 9px;display:flex;gap:6px;align-items:center;max-width:100%}
.chat-action:hover{background:#eef5e8}
.chat-action .icon{width:12px;height:12px}
.chat-composer{padding:13px 20px 16px;background:white}
.composer-box{border:1px solid #cdddc5;border-radius:12px;padding:11px 11px 10px;box-shadow:0 2px 5px #49684005}
.composer-box:focus-within{border-color:#8faf81;box-shadow:0 0 0 2px #ecf3e5}
.composer-box textarea{width:100%;border:0;outline:0!important;resize:none;background:transparent;font-size:0.9375rem;line-height:1.7;height:36px;color:#314e37;padding:0 2px}
.composer-box textarea::placeholder{color:#9aa491}
.composer-controls{display:flex;align-items:center;justify-content:space-between;gap:8px}
.composer-controls .tag{font-weight:500;font-size:0.75rem;padding:4px 6px;color:#79906b;background:#f1f6ed}
.composer-send{background:var(--green);border:0;border-radius:8px;display:flex;align-items:center;gap:7px;padding:8px 12px;color:white;font-size:0.8125rem}
.composer-send .icon{width:13px;height:13px}
.composer-controls .icon-button{width:26px;height:26px}
.composer-controls .icon-button .icon{width:16px;height:16px}
.composer-hint{text-align:center;font-size:0.75rem;color:#9aa392;margin-top:9px}
.has-conversation .siti-hero{min-height:134px;padding-top:19px;padding-bottom:18px}
.has-conversation .siti-hero h2{font-size:1.5rem;margin:7px 0}
.has-conversation .siti-hero p,.has-conversation .hero-pills,.has-conversation .hero-note{display:none}
.has-conversation .hero-character{height:134px;right:23px}
.has-conversation .chat-log{max-height:460px;min-height:314px}
.typing{display:flex;gap:4px;padding:12px}
.typing i{width:5px;height:5px;border-radius:50%;background:#8fa285;animation:blink 1s infinite}
.typing i:nth-child(2){animation-delay:.2s}
.typing i:nth-child(3){animation-delay:.4s}
.pulse-panel{padding:22px}
.pulse-title{display:flex;justify-content:space-between;align-items:center}
.pulse-title h3{font-size:1rem}
.pulse-title .icon{width:16px;height:16px;color:#8f9d87}
.target-line{margin-top:19px;display:flex;justify-content:space-between;align-items:center}
.stars{color:#bd9b3b;font-size:1.625rem;letter-spacing:3px;line-height:1.2}
.stars span{color:#e6e8df}
.target-line small{color:#929d8c;font-size:0.75rem;display:block;margin-top:5px}
.target-points{text-align:right}
.target-points b{font-size:1.625rem;font-weight:600;letter-spacing:-.8px}
.target-points b span{font-size:0.9375rem;color:#9aa58e;font-weight:500;letter-spacing:0}
.readiness-row{display:flex;align-items:center;gap:17px;margin:18px 0}
.ring{--p:0;flex-shrink:0;width:86px;height:86px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--p)*1%),#edf1e8 0);position:relative;display:grid;place-items:center}
.ring:before{content:"";position:absolute;inset:7px;background:white;border-radius:50%}
.ring .ring-content{position:relative;text-align:center}
.ring b{font-size:1.625rem;line-height:1.1;letter-spacing:-.8px}
.ring small{display:block;font-size:0.6875rem;letter-spacing:1px;color:#899682;margin-top:3px}
.readiness-text b{font-size:0.9375rem}
.readiness-text p{font-size:0.8125rem;color:#96a08f;line-height:1.7;margin-top:4px}
.readiness-text .tag{font-size:0.75rem;margin-top:7px}
.score-chain{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin-bottom:15px}
.score-chain>div:not(:first-child){border-left:1px solid var(--line);padding-left:12px}
.score-chain strong{font-size:1.375rem;line-height:1.2;font-weight:600}
.score-chain small{display:block;color:#97a08f;font-size:0.75rem;margin-top:4px}
.micro-disclaimer{font-size:0.75rem;color:#8f9a84;line-height:1.6;margin:10px 0}
.pulse-panel .btn{font-size:0.8125rem;padding:9px}
.recommendations{padding:21px}
.recommendations .kicker{font-size:0.75rem}
.recommendations h3{font-size:1rem;margin-top:5px}
.recommendation{display:flex;align-items:flex-start;gap:10px;padding:15px 0;border-bottom:1px solid #eef0e9;background:transparent;border-left:0;border-top:0;border-right:0;width:100%;text-align:left;color:var(--ink)}
.recommendation:last-child{border-bottom:0;padding-bottom:1px}
.recommendation .priority-dot{margin-top:6px;width:6px;height:6px;border-radius:50%;flex-shrink:0;background:#bd624c}
.recommendation:nth-last-child(2) .priority-dot{background:#c9a943}
.recommendation:last-child .priority-dot{background:#779978}
.recommendation b{font-size:0.8125rem;display:block}
.recommendation small{font-size:0.75rem;color:#9ca591;display:block;margin-top:3px}
.recommendation .icon{width:13px;height:13px;margin-top:3px;margin-left:auto;color:#9aa892}
.journey-mini{display:flex;gap:12px;align-items:center;background:#eaf1e3;border:1px solid #dce7d2;border-radius:13px;padding:16px}
.journey-mini>.icon{color:#6c8c60;width:25px;height:25px}
.journey-mini b{font-size:0.8125rem}
.journey-mini small{display:block;font-size:0.75rem;color:#8a9b7e;margin-top:3px}
.workflow-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:23px}
.workflow-step{padding:17px 18px;background:white;border:1px solid var(--line);border-radius:13px;display:flex;gap:12px;align-items:flex-start}
.workflow-step>.icon{color:#879f77;width:21px;height:21px;margin-top:3px}
.workflow-step h4{font-size:0.9375rem;font-weight:600}
.workflow-step h4 span{font-size:0.75rem;color:#a7b197;margin-right:6px}
.workflow-step p{font-size:0.75rem;line-height:1.7;color:#96a18b;margin-top:3px}
.app-footer{max-width:1690px;margin:0 auto;padding:12px 32px 20px;display:flex;justify-content:space-between;color:#97a08f;font-size:0.75rem;gap:10px}
.app-footer>span:first-child{display:flex;align-items:center;gap:6px}
.tiny-dot{width:5px;height:5px;background:#7c9967;border-radius:50%;display:inline-block}
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:21px}
.metric{padding:19px 21px}
.metric-label{color:#87957e;font-size:0.8125rem;display:flex;align-items:center;justify-content:space-between}
.metric-label .icon{width:15px;height:15px}
.metric-value{font-size:2rem;letter-spacing:-1px;margin-top:10px;font-weight:600;color:#36523b}
.metric-value span{font-size:1rem;font-weight:400;letter-spacing:0;color:#9aa390;margin-left:5px}
.metric-sub{font-size:0.75rem;color:#8e9b82;margin-top:5px}
.filter-bar{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center}
.search-field{position:relative;flex:1;min-width:140px}
.search-field .icon{position:absolute;left:10px;top:10px;color:#9aa792;width:16px;height:16px}
.search-field input{width:100%;font-size:0.9375rem;background:#f9fbf6;border:1px solid var(--line);border-radius:8px;padding:10px 12px 10px 34px;color:#456040}
.filter-bar select{font-size:0.8125rem;border:1px solid var(--line);border-radius:8px;padding:10px;background:white;color:#6e7c66}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;text-align:left}
th{font-size:0.75rem;text-transform:uppercase;letter-spacing:.65px;font-weight:600;color:#8b9780;background:#f9faf6;padding:13px 14px;white-space:nowrap;border-bottom:1px solid var(--line)}
td{padding:16px 14px;border-bottom:1px solid #ecf0e5;font-size:0.9375rem;color:#65735d;vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
.score-table tbody tr:hover{background:#fbfcf8}
.credit-title{min-width:205px}
.credit-title button{display:block;border:0;padding:0;background:none;color:#334e38;text-align:left;font-size:0.9375rem;font-weight:600}
.credit-code{display:inline-block;color:#73896b;font-size:0.75rem;font-family:Consolas,monospace;margin-bottom:5px}
.credit-name{display:block;max-width:330px}
.credit-owner{font-size:0.75rem;color:#a0aa95;margin-top:4px}
.points-cell{font-size:1rem;color:#53704e;text-align:center}
.points-cell.dim{color:#aab39f}
.points-cell.strong{font-weight:700;background:#f7faf2}
.table-foot{padding:12px 19px;font-size:0.75rem;color:#9aa58d;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}
.progress-mini{width:60px;height:4px;background:#edf1e6;border-radius:4px;overflow:hidden;margin-top:5px}
.progress-mini span{display:block;height:100%;background:#86a36d;border-radius:4px}
.score-legend{font-size:0.8125rem;color:#8c9b7f;margin:13px 0}
.two-col{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:21px}
.dropzone{border:1px dashed #b7cba7;border-radius:13px;background:#f9fbf5;padding:29px;text-align:center;color:#6b8559;cursor:pointer}
.dropzone .icon{width:27px;height:27px}
.dropzone h3{font-size:1rem;margin:9px 0 4px}
.dropzone p{font-size:0.8125rem;color:#99a98b}
.evidence-file{display:flex;gap:10px;align-items:center}
.file-icon{background:#edf3e8;color:#709364;width:34px;height:40px;border-radius:6px;display:grid;place-items:center;flex-shrink:0}
.file-icon .icon{width:18px;height:18px}
.evidence-file b{font-size:0.9375rem;color:#42613c}
.evidence-file small{display:block;color:#9ca890;font-size:0.75rem;margin-top:4px}
.empty-state{padding:42px 25px;text-align:center;color:#95a489}
.empty-state>.icon{width:40px;height:40px;opacity:.6;margin-bottom:15px}
.empty-state h3{font-size:1.125rem;color:#657e58;margin-bottom:7px}
.empty-state p{font-size:1rem;max-width:470px;margin:0 auto 17px;line-height:1.8}
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.board-col{background:#eef2e9;border:1px solid #e2e9da;border-radius:14px;padding:15px;min-height:330px}
.board-head{display:flex;gap:9px;align-items:center;font-size:1rem;font-weight:600;margin-bottom:17px}
.board-head .tag{margin-left:auto;background:#e0e8d8}
.task-card{background:white;border:1px solid #dde7d4;box-shadow:0 3px 6px #4a683a05;border-radius:11px;padding:16px;margin-bottom:11px}
.task-card h3{font-size:1rem;line-height:1.7;margin:9px 0 13px}
.task-meta{display:flex;align-items:center;gap:6px;font-size:0.75rem;color:#91a080;margin:6px 0}
.task-meta .icon{width:12px;height:12px}
.task-card .btn{margin-top:14px}
.review-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 23px;border-bottom:1px solid var(--line)}
.review-top select{padding:8px 10px;border:1px solid var(--line);background:white;border-radius:7px;color:#6c8060;font-size:0.9375rem}
.snapshot-hash{font-size:0.75rem;color:#a2ae94;margin-top:6px;max-width:100%;overflow-wrap:anywhere}
.query-card{padding:20px;border-bottom:1px solid var(--line)}
.query-card:last-child{border-bottom:0}
.query-card p{font-size:1rem;color:#566e4a;line-height:1.8;margin:11px 0}
.query-reply{background:#f3f7ed;border-left:3px solid #bed1aa;border-radius:0 6px 6px 0;padding:10px 12px;margin-bottom:10px;font-size:0.9375rem;line-height:1.7}
.query-reply small{display:block;color:#99a889;margin-bottom:3px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}
.field{display:flex;flex-direction:column;gap:7px;font-size:0.9375rem;color:#647b56}
.field.full{grid-column:1/-1}
.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid #d8e3cd;border-radius:8px;background:white;color:#38522e;min-width:0;font-size:1rem}
.field textarea{min-height:90px;resize:vertical}
.field input[readonly]{background:#f2f6ec;color:#819275}
.field small{font-size:0.75rem;color:#99a68c;line-height:1.65}
.field-label{font-size:0.9375rem;color:#647b56}
.field-checkbox{display:flex;align-items:flex-start;gap:9px;font-size:0.9375rem;line-height:1.75;color:#6c805f}
.form-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}
.result-big{font-size:3rem;line-height:1.2;color:var(--green);letter-spacing:-2px;margin:18px 0 6px}
.result-list{display:grid;gap:0;margin-top:18px}
.result-list>div{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--line);font-size:0.9375rem}
.result-list>div span{color:#91a17f}
.result-list>div b{font-size:1rem}
.source-card{display:flex;gap:16px;padding:22px;border-bottom:1px solid var(--line)}
.source-card:last-child{border-bottom:0}
.source-card>.icon{color:#8da876;width:23px;height:23px}
.source-card h3{font-size:1rem;margin-bottom:6px}
.source-card p{font-size:0.9375rem;color:#8c9e7c;line-height:1.8;margin-bottom:12px}
.source-links{display:flex;flex-wrap:wrap;gap:7px}
.readiness-list{display:grid;gap:10px;margin-top:18px}
.readiness-item{display:flex;align-items:flex-start;gap:10px;background:#f8faf4;padding:13px 15px;border-radius:9px;font-size:0.9375rem}
.readiness-item .icon{width:16px;height:16px;color:#b9953c;flex-shrink:0;margin-top:2px}
.readiness-item b{display:block;margin-bottom:3px;color:#5d764e}
.readiness-item span{display:block;font-size:0.8125rem;color:#99aa87;line-height:1.7}
.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.report-card{padding:24px}
.report-card>.icon{color:#8fac75;width:28px;height:28px;margin-bottom:21px}
.report-card h3{font-size:1rem}
.report-card p{font-size:0.9375rem;color:#9baa89;line-height:1.8;margin:10px 0 22px}
.activity{list-style:none;margin:0;padding:0}
.activity li{display:flex;gap:14px;align-items:flex-start;padding:15px 0;border-bottom:1px solid #edf1e5}
.activity li:last-child{border-bottom:0}
.activity-dot{width:7px;height:7px;border:2px solid #a6bc8e;border-radius:50%;margin-top:6px;flex-shrink:0}
.activity b{font-size:0.9375rem;font-weight:600;display:block}
.activity p{font-size:0.8125rem;color:#99a98a;line-height:1.7;margin-top:4px}
.activity time{margin-left:auto;flex-shrink:0;font-size:0.75rem;color:#a0ad93}
.category-bar{padding:13px 0}
.category-bar .row{font-size:0.9375rem}
.bar-track{height:7px;background:#edf2e6;border-radius:4px;margin-top:10px;overflow:hidden}
.bar-track span{background:#779b5e;display:block;height:100%;border-radius:4px}
.settings-kv{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:16px 0;font-size:0.9375rem}
.settings-kv span{color:#8fa27c}
.code-block{padding:16px;background:#1d3526;color:#d5e6c3;border-radius:9px;overflow:auto;font-family:Consolas,monospace;font-size:0.8125rem;line-height:1.9;white-space:pre;margin:15px 0}
.modal,.drawer{border:1px solid #dde5d4;padding:0;box-shadow:0 30px 100px #10271540;color:var(--ink);background:#fff}
.modal::backdrop,.drawer::backdrop{background:#13301f60;backdrop-filter:blur(2px)}
.modal{width:min(580px,calc(100vw - 28px));max-height:calc(100dvh - 50px);border-radius:18px}
.modal-head{position:sticky;top:0;display:flex;align-items:flex-start;justify-content:space-between;padding:24px 25px 19px;border-bottom:1px solid var(--line);background:white;z-index:2}
.modal-head h2{font-size:1.375rem}
.modal-head p{font-size:0.9375rem;color:#91a280;margin-top:7px;line-height:1.8}
.modal-body{padding:23px 25px 26px}
.drawer{position:fixed;right:0;top:0;bottom:0;margin:0 0 0 auto;width:min(560px,100vw);height:100dvh;max-height:none;max-width:none;border-radius:18px 0 0 18px}
.drawer .modal-head{padding:27px 27px 22px}
.drawer .modal-head h2{font-size:1.375rem;line-height:1.4}
.drawer .modal-body{padding:22px 27px 30px}
.detail-score{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:17px 0}
.detail-score>div{padding:13px 7px;border:1px solid var(--line);border-radius:8px;text-align:center;background:#f9fbf5}
.detail-score b{font-size:1.5rem;display:block;font-weight:600;color:#4e713c}
.detail-score small{display:block;font-size:0.75rem;color:#a0ac91;margin-top:4px}
.evidence-slot{padding:14px 0;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:11px}
.evidence-slot:last-child{border-bottom:0}
.slot-icon{width:23px;height:23px;border-radius:50%;background:#f9f0d6;color:#b49541;display:grid;place-items:center;flex-shrink:0}
.slot-icon.complete{background:#edf4e5;color:#739751}
.slot-icon .icon{width:13px;height:13px}
.slot-main{flex:1;min-width:0}
.slot-main b{font-size:0.9375rem;display:block}
.slot-main small{display:block;font-size:0.75rem;color:#a0ab92;margin:5px 0}
.slot-main a{font-size:0.8125rem}
.slot-main .tag{font-size:0.75rem;padding:2px 5px}
.checkbox-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:100px;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:8px}
.checkbox-list label{font-size:0.8125rem;color:#79916a}
.toast{position:fixed;right:28px;bottom:25px;padding:13px 18px;background:#173d2d;color:#eff6e8;border:1px solid #46664e;border-radius:11px;box-shadow:0 8px 30px #1d392f30;max-width:400px;font-size:1rem;line-height:1.7;z-index:1000;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}
.toast.show{opacity:1;transform:translateY(0)}
.toast.error{background:#874638;border-color:#a36c5f}
.loading{min-height:65vh;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:12px}
.loading img{height:220px}
.loading h1{font-size:1.625rem}
.loading p{color:#99a589;font-size:1rem}
.noscript{position:fixed;inset:0;background:white;padding:30px;z-index:999}
.permission-note{font-size:0.8125rem;color:#9cae88;line-height:1.8;margin:15px 0}
.credential-role{font-size:0.9375rem;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f8faf4;text-align:left;color:#6f8b59}
.role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:18px}
.credential-role.active{background:#e8f1de;border-color:#c4d5ac;color:#416e30}
.nav-mobile-label{display:none}
.test-pill{display:inline-flex;align-items:center;gap:6px;font-size:0.75rem;color:#8e9e7c;padding:7px 0}
.build-boundary{font-size:0.8125rem;line-height:1.8;color:#a1ad92;margin-top:12px}
.word-break{overflow-wrap:anywhere}
.inline-error{padding:10px 12px;background:#fbece7;color:var(--red);border-radius:7px;font-size:0.9375rem;margin-bottom:13px}
.app-error{padding:30px;max-width:600px;margin:30px auto}
.app-error p{margin:15px 0}
.link-badge{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);font-size:0.8125rem;border-radius:6px;padding:5px 8px;color:#7c9469;background:white}
.link-badge .icon{width:12px;height:12px}
.help-step{display:flex;gap:12px;margin:18px 0}
.help-step>span{width:26px;height:26px;border-radius:50%;background:#eaf2e1;color:#658653;font-size:0.9375rem;display:grid;place-items:center;flex-shrink:0}
.help-step b{font-size:1rem}
.help-step p{font-size:0.9375rem;color:#8e9e7f;line-height:1.8;margin-top:5px}

@keyframes rise{from{opacity:0;transform:translateY(5px)}
to{opacity:1;transform:translateY(0)}
}
@keyframes blink{0%,100%{opacity:.3}
50%{opacity:1}
}

@media(min-width:1550px){.hero-character{height:267px;right:25px}
.siti-hero{min-height:283px;padding:36px}
.siti-hero h2{font-size:2.375rem}
.hero-note{right:185px}
.home-grid{grid-template-columns:minmax(0,1fr) 355px}
.chat-log{min-height:206px}
.chat-message .message-text{font-size:1rem}
.chat-composer{padding:15px 25px 20px}
.sidebar{width:231px}
.app-shell{margin-left:231px}
.topbar,#main{padding-left:38px;padding-right:38px}
}

@media(max-width:1240px){.sidebar{width:195px;padding-left:13px;padding-right:13px}
.app-shell{margin-left:195px}
.home-grid{grid-template-columns:minmax(0,1fr) 285px;gap:17px}
#main{padding:24px 23px 20px}
.topbar{padding:0 23px}
.siti-hero{padding:24px 21px;min-height:247px}
.siti-hero h2{font-size:1.875rem}
.hero-character{height:219px;right:-3px}
.hero-note{right:128px;bottom:18px;font-size:0.6875rem}
.hero-copy{width:68%}
.hero-pills{gap:4px;flex-wrap:wrap}
.hero-pills span{font-size:0.75rem;padding:4px 6px}
.stage-tab{font-size:0.75rem;padding:7px 9px}
.project-name{font-size:0.8125rem}
.project-name span{display:none}
.topbar-right{gap:11px}
.pulse-panel,.recommendations{padding:19px}
.ring{width:76px;height:76px}
.readiness-row{gap:12px}
.readiness-text b{font-size:0.8125rem}
.workflow-step{padding:14px 12px;gap:9px}
.workflow-step p{font-size:0.75rem}
.metrics-grid{gap:10px}
.metric{padding:17px}
.board{gap:11px}
.board-col{padding:12px}
.report-grid{gap:12px}
.report-card{padding:20px}
.page-intro h1{font-size:1.75rem}
}

@media(max-width:1070px){.sidebar{width:179px}
.app-shell{margin-left:179px}
.brand{font-size:1.75rem;padding:0 7px;gap:8px}
.brand-mark{width:36px;height:39px}
.brand-sub{font-size:0.6875rem}
.workspace-label{font-size:0.6875rem;letter-spacing:.7px}
.nav-item{font-size:0.9375rem;padding:11px}
.side-siti{gap:6px}
.side-siti b{font-size:0.75rem}
.side-siti small{font-size:0.75rem}
.side-foot{font-size:0.75rem}
.side-foot span{font-size:0.6875rem}
.home-grid{grid-template-columns:minmax(0,1fr) 263px;gap:15px}
.hero-character{height:203px;right:-12px}
.siti-hero{min-height:237px}
.siti-hero h2{font-size:1.625rem}
.hero-copy{width:70%}
.hero-label{font-size:0.6875rem;letter-spacing:1px}
.hero-note{display:none}
.hero-pills{margin-top:15px}
.siti-hero p{font-size:0.8125rem}
.chat-toolbar{padding-left:17px;padding-right:17px}
.chat-log{padding-left:16px;padding-right:16px}
.chat-composer{padding-left:15px;padding-right:15px}
.pulse-panel,.recommendations{padding:17px}
.readiness-text p{font-size:0.75rem}
.readiness-text .tag{font-size:0.6875rem}
.target-line .stars{font-size:1.5rem}
.project-ribbon{align-items:flex-start;flex-direction:column;gap:12px}
.page-intro{margin-bottom:17px}
.page-intro .intro-actions .btn-label{display:none}
.page-intro h1{font-size:1.625rem}
.demo-badge{font-size:0.6875rem}
.breadcrumb{font-size:0.8125rem;gap:8px}
.workflow-strip{gap:10px}
.workflow-step{padding:13px 11px}
.workflow-step>.icon{display:none}
.workflow-step h4{font-size:0.8125rem}
.report-grid{grid-template-columns:1fr}
.report-card{display:grid;grid-template-columns:35px 1fr;gap:3px 15px}
.report-card>.icon{grid-row:1/4;margin:0}
.report-card p{margin:4px 0 11px}
.report-card .btn{justify-self:start}
.two-col{grid-template-columns:1fr}
.board{gap:10px}
.task-card{padding:12px}
.board-col{padding:10px}
}

@media(max-width:900px){.sidebar{transform:translateX(-100%);width:235px;transition:transform .2s;z-index:90}
.sidebar.open{transform:translateX(0)}
.sidebar-backdrop.open{display:block;position:fixed;inset:0;background:#0c2b205a;z-index:80}
.app-shell{margin-left:0}
.mobile-menu{display:inline-flex}
.topbar{height:66px}
.topbar-left{gap:8px}
.topbar-right{gap:12px}
.brand{font-size:1.875rem}
.brand-mark{width:42px;height:44px}
.brand-sub{font-size:0.75rem}
.workspace-label{font-size:0.6875rem}
.nav-item{font-size:1rem;padding:12px}
.side-siti b{font-size:0.8125rem}
.side-siti small{font-size:0.75rem}
.side-foot{font-size:0.8125rem}
.side-foot span{font-size:0.75rem}
.hero-character{height:244px;right:0}
.siti-hero{min-height:260px}
.siti-hero h2{font-size:2rem}
.hero-copy{width:67%}
.siti-hero p{max-width:230px;font-size:0.9375rem}
.hero-label{font-size:0.75rem}
.project-ribbon{flex-direction:row;align-items:center}
.home-grid{grid-template-columns:minmax(0,1fr) 274px}
.workflow-step>.icon{display:block}
.metrics-grid{grid-template-columns:repeat(2,1fr)}
.app-footer{padding-left:23px;padding-right:23px}
.board{grid-template-columns:repeat(3,minmax(0,1fr))}
.intro-actions{padding-top:3px}
}

@media(max-width:750px){.home-grid{grid-template-columns:1fr}
.home-right{display:grid;grid-template-columns:1fr 1fr;gap:15px;align-items:start}
.home-right .journey-mini{grid-column:1/-1}
.siti-hero{min-height:265px;padding:29px}
.siti-hero h2{font-size:2.25rem;max-width:370px}
.hero-character{height:258px;right:40px}
.hero-copy{width:65%;max-width:370px}
.hero-pills span{font-size:0.75rem}
.hero-note{display:block;right:195px;bottom:27px}
.chat-log{min-height:200px}
.chat-toolbar{padding-left:23px;padding-right:23px}
.chat-log{padding-left:23px;padding-right:23px}
.chat-composer{padding-left:21px;padding-right:21px}
.message-text{font-size:1rem}
.composer-box textarea{font-size:1rem}
.composer-controls .tag{font-size:0.75rem}
.project-ribbon{flex-direction:column;align-items:flex-start}
.project-name span{display:inline}
.stage-tabs{width:100%;justify-content:space-between}
.stage-tab{flex:1;font-size:0.8125rem;padding:7px 8px}
.page-intro h1{font-size:1.75rem}
.topbar-right{gap:5px}
.role-control{padding-left:10px}
.role-control select{font-size:0.8125rem;max-width:155px}
.topbar-right>.icon-button{display:none}
.demo-badge{display:none}
.workflow-step>.icon{display:none}
.workflow-step h4{font-size:0.8125rem}
.workflow-step p{font-size:0.75rem}
.intro-actions{gap:6px}
.project-selector{font-size:0.8125rem;max-width:145px;padding:9px}
.board{grid-template-columns:1fr}
.board-col{min-height:100px}
.board-head{margin-bottom:11px}
.task-card{padding:17px}
.task-card .row .tag{font-size:0.8125rem}
.task-card h3{font-size:1rem}
.task-meta{font-size:0.9375rem}
.task-card .btn{font-size:0.8125rem}
.form-grid{gap:13px}
.filter-bar{flex-wrap:wrap}
.filter-bar .search-field{flex-basis:100%}
.table-foot{flex-direction:column}
.app-footer{flex-wrap:wrap;font-size:0.75rem}
.credit-title{min-width:210px}
.home-right .stack{gap:15px}
}

@media(max-width:470px){#main{padding:22px 16px 18px}
.topbar{padding:0 12px}
.breadcrumb{font-size:0.75rem;gap:7px}
.breadcrumb strong{font-size:0.8125rem}
.breadcrumb>span:first-child{display:none}
.slash{display:none}
.role-control{border-left:0;padding-left:0}
.role-control select{font-size:0.75rem;max-width:151px}
.role-control>.icon{width:14px;height:14px}
.page-intro{flex-direction:column;gap:12px}
.page-intro h1{font-size:1.75rem}
.page-intro p{font-size:0.9375rem}
.intro-actions{padding:0;align-self:flex-end;margin-top:-7px}
.intro-actions .project-selector{max-width:220px}
.page-intro .intro-actions .btn-label{display:inline}
.project-name{font-size:0.75rem}
.project-name span{display:none}
.stage-tabs{padding:3px;gap:1px}
.stage-tab{font-size:0.75rem;padding:7px 4px}
.stage-tab .step-no{font-size:0.75rem;margin-right:3px}
.siti-hero{min-height:260px;padding:26px 22px}
.siti-hero h2{font-size:1.875rem;letter-spacing:-.8px;margin-top:15px;line-height:1.22}
.hero-copy{width:70%}
.hero-label{font-size:0.6875rem;letter-spacing:.9px}
.hero-character{height:218px;right:-20px;bottom:-1px}
.siti-hero p{font-size:0.8125rem;max-width:190px}
.hero-pills{gap:5px;max-width:205px}
.hero-pills span{font-size:0.6875rem;padding:4px 5px}
.hero-note{display:none}
.chat-toolbar{padding-left:15px;padding-right:15px}
.chat-log{padding-left:15px;padding-right:15px;max-height:400px}
.chat-composer{padding:12px 13px 15px}
.chat-message{gap:8px}
.message-text{font-size:1rem}
.chat-action{font-size:0.75rem;padding:7px 8px}
.chat-sources{gap:7px}
.chat-sources a,.chat-sources span{font-size:0.75rem}
.composer-hint{font-size:0.6875rem}
.home-right{grid-template-columns:1fr}
.home-right .journey-mini{grid-column:auto}
.pulse-panel,.recommendations{padding:22px}
.pulse-panel .readiness-row{gap:21px}
.ring{width:87px;height:87px}
.pulse-panel .readiness-text b{font-size:1rem}
.pulse-panel .readiness-text p{font-size:0.9375rem}
.pulse-panel .tag{font-size:0.75rem}
.score-chain small{font-size:0.75rem}
.target-line small{font-size:0.8125rem}
.pulse-panel .btn{font-size:0.9375rem}
.recommendation b{font-size:0.9375rem}
.recommendation small{font-size:0.8125rem}
.workflow-strip{grid-template-columns:1fr;gap:9px}
.workflow-step{padding:14px 16px}
.workflow-step>.icon{display:block;width:20px;height:20px}
.workflow-step h4{font-size:0.9375rem}
.workflow-step p{font-size:0.8125rem}
.metrics-grid{gap:10px}
.metric{padding:15px}
.metric-label{font-size:0.75rem}
.metric-value{font-size:1.875rem}
.metric-sub{font-size:0.75rem}
.metric-value span{font-size:0.8125rem}
.metric-label>.icon{width:13px;height:13px}
.form-grid{grid-template-columns:1fr}
.field.full{grid-column:auto}
.modal-head,.modal-body,.drawer .modal-head,.drawer .modal-body{padding-left:20px;padding-right:20px}
.drawer{border-radius:0}
.modal{width:calc(100vw - 18px)}
.checkbox-list{grid-template-columns:repeat(2,1fr)}
.report-card{grid-template-columns:28px 1fr;padding:20px}
.activity time{font-size:0.75rem;max-width:62px}
.activity li{gap:9px}
.stage-tab:last-child{white-space:normal}
.app-footer{padding-left:17px;padding-right:17px}
.toast{left:15px;right:15px;bottom:15px;max-width:none}
.notice{font-size:0.9375rem}
.panel-pad{padding:20px}
.detail-score{gap:5px}
.detail-score small{font-size:0.6875rem}
.review-top{flex-direction:column;align-items:flex-start}
.snapshot-hash{font-size:0.75rem}
.has-conversation .siti-hero{min-height:134px}
.has-conversation .siti-hero h2{font-size:1.625rem}
.has-conversation .hero-copy{width:75%}
.has-conversation .hero-character{right:0;height:124px}
.role-grid{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}


/* Keep the supplied SITI image unchanged; a deliberate hero crop brings her forward. */
@media(min-width:1071px){.hero-character{height:386px;right:-24px;bottom:-137px}
.hero-note{right:194px;bottom:27px}
.has-conversation .hero-character{height:205px;right:17px;bottom:-75px}
}

@media(min-width:1550px){.hero-character{height:431px;right:-14px;bottom:-151px}
.hero-note{right:227px}
.has-conversation .hero-character{height:210px;right:20px;bottom:-80px}
}

@media(max-width:900px){.skip-link{left:16px}
}


/* ==========================================================================
   v1.1 · Compact SITI workspace + standard, readable web typography.
   Layout is resized independently of type; no transforms or page zoom.
   ========================================================================== */
:root {
  --sidebar-width: 232px;
  --text-body: 1rem;
  --text-ui: .9375rem;
  --text-label: .8125rem;
  --text-small: .75rem;
}
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
body { font-size: var(--text-body); line-height: 1.6; }
h1 { font-size: 2rem; line-height: 1.25; letter-spacing: -.7px; }
h2 { font-size: 1.375rem; line-height: 1.35; }
h3 { font-size: 1.125rem; line-height: 1.4; }
h4 { font-size: 1rem; }
small, .micro-disclaimer { font-size: var(--text-small); }
.small { font-size: var(--text-ui); }
.kicker { font-size: var(--text-small); letter-spacing: 1.2px; }
.btn { font-size: var(--text-ui); min-height: 40px; padding: 9px 13px; }
.btn.small { font-size: .875rem; min-height: 36px; padding: 7px 11px; }
.text-button { font-size: .875rem; }
.tag, .chip { font-size: var(--text-small); }
.tag { white-space: normal; line-height: 1.5; }
.icon-button { width: 38px; height: 38px; }
.panel, .home-grid > *, .home-right > *, .two-col > *, .metrics-grid > *,
.board > *, .report-grid > *, .form-grid > * { min-width: 0; }

/* Keep the navigation comfortable, rather than reducing font sizes on laptops. */
.sidebar { width: var(--sidebar-width); padding: 25px 16px 16px; overflow-y: auto; overscroll-behavior: contain; }
.app-shell { margin-left: var(--sidebar-width); }
.brand { padding: 0 8px; gap: 10px; font-size: 1.75rem; }
.brand-mark { width: 42px; height: 44px; flex-shrink: 0; }
.brand-sub { font-size: .6875rem; letter-spacing: 1px; }
.workspace-label { font-size: .6875rem; letter-spacing: .65px; margin: 19px 9px; }
.side-project { margin-bottom: 20px; }
.side-project b { font-size: var(--text-ui); }
.side-project small { font-size: var(--text-small); }
.nav-label { font-size: .6875rem; letter-spacing: 1.2px; }
.nav-item { font-size: var(--text-ui); padding: 10px 11px; gap: 10px; min-height: 42px; line-height: 1.4; }
.nav-item .icon { width: 19px; height: 19px; }
.nav-break { margin: 15px 10px; }
.sidebar-bottom { padding-top: 20px; }
.side-siti b, .side-siti small, .side-foot, .side-foot span { font-size: var(--text-small); }
.side-siti { padding: 10px 4px; gap: 8px; }
.side-foot { line-height: 1.6; }
.topbar { height: 68px; padding: 0 28px; }
.breadcrumb, .breadcrumb strong { font-size: .875rem; }
.demo-badge { font-size: .6875rem; letter-spacing: .6px; }
.role-control select { font-size: .875rem; max-width: 225px; }
#main { padding: 26px 28px 20px; }
.page-intro { gap: 18px; flex-wrap: wrap; margin-bottom: 22px; }
.page-intro > div:first-child { flex: 1 1 470px; }
.page-intro h1 { font-size: 2rem; }
.page-intro p { font-size: var(--text-body); line-height: 1.6; }
.intro-actions { padding-top: 6px; }
.project-selector { font-size: .875rem; max-width: 205px; min-height: 40px; }
.project-ribbon { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-bottom: 18px; }
.project-name { font-size: .875rem; min-width: 0; flex-wrap: wrap; }
.project-name span { color: #718071; }
.stage-tabs { max-width: 100%; }
.stage-tab { font-size: var(--text-label); line-height: 1.45; padding: 8px 10px; min-height: 36px; white-space: normal; }
.stage-tab .step-no { font-size: var(--text-small); }

/* 60 / 40 desktop split: less space for SITI, more for the project summary. */
.home-grid { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 20px; }
.ai-panel { border-radius: 18px; }
.siti-hero { padding: 20px 22px; min-height: 174px; }
.hero-copy { width: calc(100% - 130px); max-width: none; }
.hero-label { font-size: .6875rem; line-height: 1.5; letter-spacing: .65px; }
.siti-hero h2 { font-size: 1.75rem; line-height: 1.2; letter-spacing: -.65px; margin: 8px 0; }
.siti-hero p { font-size: .9375rem; line-height: 1.55; max-width: 420px; color: #5a7058; }
.hero-character { height: 260px; right: -16px; bottom: -83px; }
.hero-pills, .hero-note { display: none; }
.orb { width: 210px; height: 210px; top: 14px; right: -53px; }
.orb.two { width: 154px; height: 154px; top: 42px; right: -25px; }
.chat-toolbar { padding: 12px 20px; flex-wrap: wrap; gap: 8px 12px; }
.assistant-label { font-size: var(--text-ui); flex-wrap: wrap; }
.mode-label, .chat-toolbar .text-button { font-size: var(--text-small); color: #6b786b; }
.chat-log { padding: 12px 20px 10px; min-height: 174px; max-height: 284px; }
.message-name { font-size: var(--text-small); color: #6b7c6b; }
.message-text, .chat-message .message-text { font-size: var(--text-body); line-height: 1.65; color: #425747; }
.chat-message .avatar { width: 30px; height: 30px; }
.chat-message .avatar img { width: 70px; left: -19px; top: -3px; }
.chat-actions { gap: 8px; margin-top: 12px; }
.chat-action { font-size: .875rem; min-height: 38px; padding: 7px 10px; line-height: 1.5; text-align: left; }
.chat-action .icon { width: 15px; height: 15px; }
.chat-sources a, .chat-sources span { font-size: var(--text-small); color: #687b62; }
.chat-composer { padding: 10px 16px 14px; }
.composer-box { padding: 10px 11px; }
.composer-box textarea { font-size: var(--text-body); line-height: 1.5; height: 48px; }
.composer-box textarea::placeholder { color: #788874; }
.composer-controls .tag { font-size: var(--text-small); max-width: 100%; }
.composer-controls > .row { min-width: 0; }
.composer-controls .icon-button { width: 34px; height: 34px; flex-shrink: 0; }
.composer-controls .tag .icon { width: 16px; height: 16px; }
.composer-send { min-height: 38px; font-size: .875rem; padding: 8px 12px; flex-shrink: 0; }
.composer-send .icon { width: 16px; height: 16px; }
.composer-hint { font-size: var(--text-small); line-height: 1.5; color: #788675; margin-top: 8px; }
.has-conversation .siti-hero { min-height: 108px; padding: 14px 20px; }
.has-conversation .siti-hero h2 { font-size: 1.5rem; margin: 6px 0; }
.has-conversation .hero-copy { width: calc(100% - 100px); }
.has-conversation .hero-character { height: 180px; right: 0; bottom: -67px; }
.has-conversation .chat-log { min-height: 220px; max-height: 340px; }

/* Readable live context; enlarge text, not decorative whitespace. */
.pulse-panel, .recommendations { padding: 20px; }
.pulse-title h3, .recommendations h3 { font-size: 1.125rem; }
.target-line { margin-top: 15px; gap: 12px; }
.stars, .target-line .stars { font-size: 1.625rem; letter-spacing: 2px; }
.target-points b { font-size: 1.75rem; }
.target-points b span { font-size: .875rem; }
.target-line small { font-size: var(--text-small); color: #73816a; }
.readiness-row, .pulse-panel .readiness-row { gap: 16px; margin: 16px 0; }
.ring { width: 92px; height: 92px; }
.ring b { font-size: 1.625rem; }
.ring small { font-size: .6875rem; letter-spacing: .4px; }
.readiness-text { min-width: 0; }
.readiness-text b, .pulse-panel .readiness-text b { font-size: .9375rem; }
.readiness-text p, .pulse-panel .readiness-text p { font-size: .875rem; color: #73816a; line-height: 1.55; }
.readiness-text .tag, .pulse-panel .tag { font-size: .75rem; }
.score-chain { padding: 12px 0; margin-bottom: 13px; }
.score-chain strong { font-size: 1.5rem; }
.score-chain small { font-size: var(--text-small); color: #71816c; }
.micro-disclaimer { font-size: var(--text-small); color: #73816c; line-height: 1.6; margin: 10px 0 0; }
.pulse-panel .btn { font-size: .875rem; min-height: 40px; }
.recommendations .kicker { font-size: .6875rem; }
.recommendation { gap: 9px; padding: 12px 0; }
.recommendation > div { min-width: 0; }
.recommendation b { font-size: .875rem; line-height: 1.5; }
.recommendation small { font-size: .8125rem; color: #77876b; }
.recommendation .icon { width: 16px; height: 16px; }
.journey-mini { padding: 14px 16px; }
.journey-mini b { font-size: .875rem; }
.journey-mini small { font-size: .8125rem; color: #73836a; }
.workflow-strip { gap: 14px; margin-top: 20px; }
.workflow-step { padding: 15px; }
.workflow-step h4 { font-size: .9375rem; }
.workflow-step h4 span { font-size: .75rem; }
.workflow-step p { font-size: .8125rem; line-height: 1.6; color: #718167; }
.app-footer { padding: 12px 28px 20px; font-size: .75rem; flex-wrap: wrap; }

/* Apply the same type scale to the working tools and editable forms. */
.metric-label { font-size: .8125rem; }
.metric-sub { font-size: .75rem; color: #718167; }
.metric-value { font-size: 2rem; }
.metric-value span { font-size: .875rem; }
.search-field input, .filter-bar select { font-size: .9375rem; }
.search-field .icon { top: 13px; }
th { font-size: .75rem; letter-spacing: .45px; }
td { font-size: .9375rem; }
.credit-title button, .evidence-file b { font-size: .9375rem; }
.credit-code, .credit-owner { font-size: .8125rem; }
.credit-owner { color: #73836b; }
.points-cell { font-size: 1rem; }
.table-foot, .score-legend { font-size: .8125rem; }
.table-wrap { max-width: 100%; }
.field, .field-label, .field-checkbox { font-size: .9375rem; }
.field input, .field select, .field textarea { font-size: 1rem; min-height: 44px; }
.field input[type="checkbox"] { min-height: 0; }
.field small { font-size: .8125rem; color: #728369; }
.form-actions { flex-wrap: wrap; }
.filter-bar select { max-width: 100%; }
.snapshot-hash { font-size: .75rem; }
.review-top select { max-width: 100%; }
.modal-head h2, .drawer .modal-head h2 { font-size: 1.375rem; }
.detail-score small { font-size: .75rem; }
.slot-main b { font-size: .9375rem; }
.slot-main small, .slot-main a { font-size: .8125rem; }
.slot-main .tag { font-size: .75rem; }

@media (min-width: 1550px) {
  .sidebar { width: var(--sidebar-width); }
  .app-shell { margin-left: var(--sidebar-width); }
  .topbar, #main { padding-left: 32px; padding-right: 32px; }
  .siti-hero { min-height: 174px; padding: 20px 24px; }
  .siti-hero h2 { font-size: 1.875rem; }
  .hero-character { height: 268px; right: 2px; bottom: -87px; }
  .hero-copy { width: calc(100% - 155px); }
  .has-conversation .hero-character { height: 180px; right: 8px; bottom: -67px; }
}
@media (max-width: 1240px) and (min-width: 901px) {
  :root { --sidebar-width: 220px; }
  #main { padding-left: 22px; padding-right: 22px; }
  .topbar { padding-left: 22px; padding-right: 22px; }
  .nav-item { font-size: .875rem; padding: 10px; }
  .page-intro h1 { font-size: 1.875rem; }
}
/* Stack before either column gets too narrow for the larger type. */
@media (max-width: 1120px) {
  .home-grid { grid-template-columns: minmax(0, 1fr); }
  .home-right { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
  .home-right .journey-mini { grid-column: 1 / -1; }
  .hero-copy { width: calc(100% - 145px); max-width: 550px; }
  .hero-character { right: 10px; }
  .metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-ribbon { flex-direction: column; align-items: flex-start; }
  .stage-tabs { width: 100%; }
  .stage-tab { flex: 1; }
  .filter-bar { flex-wrap: wrap; }
  .filter-bar .search-field { flex-basis: 100%; }
}
@media (max-width: 900px) {
  .sidebar { width: 256px; padding-top: 23px; }
  .app-shell { margin-left: 0; }
  .topbar { height: 64px; }
  .nav-item { font-size: .9375rem; }
  .page-intro h1 { font-size: 1.875rem; }
  .project-name { font-size: .875rem; }
  .role-control select { font-size: .875rem; }
}
@media (max-width: 750px) {
  .home-right { grid-template-columns: minmax(0, 1fr); }
  .home-right .journey-mini { grid-column: auto; }
  .page-intro > div:first-child { flex-basis: auto; }
  .page-intro { flex-direction: column; }
  .intro-actions { padding: 0; align-self: flex-start; margin: 0; flex-wrap: wrap; }
  .page-intro .intro-actions .btn-label { display: inline; }
  .stage-tab { padding: 8px 6px; font-size: .8125rem; }
  .hero-copy { width: calc(100% - 115px); }
  .hero-character { height: 238px; right: -12px; bottom: -68px; }
  .hero-label { font-size: .6875rem; }
  .siti-hero { min-height: 170px; padding: 18px 20px; }
  .siti-hero h2 { font-size: 1.625rem; }
  .siti-hero p { font-size: .9375rem; }
  .chat-toolbar { padding: 12px 17px; }
  .chat-log { padding: 12px 17px; }
  .workflow-strip { grid-template-columns: 1fr; gap: 10px; }
  .workflow-step > .icon { display: block; }
  .workflow-step h4 { font-size: .9375rem; }
  .workflow-step p { font-size: .8125rem; }
  .task-card h3 { font-size: 1rem; }
  .task-card .btn { font-size: .875rem; }
  .task-meta { font-size: .8125rem; }
  .form-actions .btn { max-width: 100%; }
}
@media (max-width: 470px) {
  #main { padding: 21px 16px 18px; }
  .topbar { padding: 0 10px; gap: 8px; }
  .topbar-left { gap: 4px; }
  .breadcrumb, .breadcrumb strong { font-size: .875rem; }
  .role-control { gap: 3px; }
  .role-control select { font-size: .8125rem; max-width: 174px; padding: 7px 0; }
  .role-control > .icon { display: none; }
  .page-intro h1 { font-size: 1.75rem; }
  .page-intro p { font-size: 1rem; }
  .intro-actions .project-selector { font-size: .875rem; max-width: 190px; }
  .project-name { font-size: .8125rem; }
  .stage-tabs { align-items: stretch; }
  .stage-tab { font-size: .75rem; padding: 7px 4px; }
  .stage-tab .step-no { display: none; }
  .siti-hero { padding: 16px 17px; min-height: 162px; }
  .hero-copy { width: calc(100% - 82px); }
  .hero-label { font-size: .6875rem; letter-spacing: .25px; }
  .siti-hero h2 { font-size: 1.375rem; line-height: 1.2; letter-spacing: -.4px; margin: 7px 0; }
  .siti-hero p { font-size: .875rem; line-height: 1.55; max-width: none; }
  .hero-character { height: 193px; right: -26px; bottom: -33px; }
  .chat-toolbar { padding: 11px 14px; }
  .assistant-label { gap: 6px; }
  .chat-toolbar .text-button { font-size: .75rem; }
  .chat-log { padding: 11px 13px; max-height: 330px; }
  .chat-message { gap: 8px; }
  .message-text, .chat-message .message-text { font-size: 1rem; }
  .chat-action { font-size: .8125rem; padding: 7px 9px; }
  .chat-composer { padding: 9px 12px 13px; }
  .composer-box textarea { font-size: 1rem; height: 58px; }
  .composer-controls { gap: 6px; }
  .composer-controls > .row { gap: 5px; }
  .composer-hint { font-size: .75rem; }
  .has-conversation .siti-hero { min-height: 100px; padding: 13px 17px; }
  .has-conversation .siti-hero h2 { font-size: 1.375rem; }
  .has-conversation .hero-copy { width: calc(100% - 75px); }
  .has-conversation .hero-character { height: 156px; right: -13px; bottom: -53px; }
  .has-conversation .chat-log { min-height: 210px; max-height: 330px; }
  .pulse-panel, .recommendations { padding: 19px; }
  .pulse-panel .readiness-row { gap: 14px; }
  .ring { width: 88px; height: 88px; }
  .pulse-panel .readiness-text b { font-size: .9375rem; }
  .pulse-panel .readiness-text p { font-size: .875rem; }
  .metric { padding: 15px; }
  .metric-label { font-size: .8125rem; }
  .metric-value { font-size: 1.75rem; }
  .metric-sub { font-size: .75rem; }
  .activity li { flex-wrap: wrap; }
  .activity li > div { flex: 1; min-width: 0; }
  .activity time { font-size: .75rem; max-width: none; }
  .detail-score { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .detail-score small { font-size: .75rem; }
  .review-top { align-items: stretch; }
  .snapshot-hash { font-size: .75rem; }
  .app-footer { font-size: .75rem; padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 360px) {
  #main { padding-left: 12px; padding-right: 12px; }
  .role-control select { max-width: 155px; font-size: .75rem; }
  .topbar-right { gap: 0; }
  .siti-hero { padding-left: 14px; padding-right: 14px; }
  .hero-copy { width: calc(100% - 64px); }
  .hero-character { right: -35px; height: 170px; bottom: -11px; }
  .siti-hero h2 { font-size: 1.3125rem; }
  .composer-controls .tag { font-size: .6875rem; }
  .pulse-panel { padding: 16px; }
  .pulse-panel .readiness-row { gap: 10px; }
  .ring { width: 78px; height: 78px; }
  .ring small { font-size: .625rem; }
  .score-chain > div:not(:first-child) { padding-left: 8px; }
}
