@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Playfair+Display:wght@600&display=swap";:root{color:#17211d;font-synthesis:none;--ink:#17211d;--forest:#18392d;--green:#2d6a52;--mint:#d9eadf;--paper:#fffdfa;--line:#d9ded8;--muted:#65716b;--amber:#b27a2d;background:#f4f3ee;font-family:Manrope,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 80% 0,#dfe9e1 0,#0000 27rem),#f4f3ee;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#fffdfae6;justify-content:space-between;align-items:center;height:76px;padding:0 max(28px,50vw - 720px);display:flex;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{color:#fff;background:var(--forest);letter-spacing:.08em;border-radius:12px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.brand strong,.brand small{display:block}.brand small{color:var(--muted);margin-top:2px;font-size:11px}nav{gap:8px;display:flex}nav a{color:var(--muted);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600;text-decoration:none}nav a.active{color:var(--forest);background:var(--mint)}.user-menu{align-items:center;gap:10px;min-width:0;display:flex}.user-menu span{text-align:right;min-width:0}.user-menu strong,.user-menu small{text-overflow:ellipsis;white-space:nowrap;max-width:210px;display:block;overflow:hidden}.user-menu strong{font-size:12px}.user-menu small{color:var(--muted);margin-top:2px;font-size:10px}.user-menu button{color:var(--green);border:1px solid var(--line);background:0 0;border-radius:9px;padding:8px 10px;font-size:11px;font-weight:700}.login-page{background:radial-gradient(circle at 75% 15%,#bcd8c8,#0000 30rem),#f4f3ee;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{text-align:center;border:1px solid var(--line);background:var(--paper);border-radius:26px;width:min(100%,520px);padding:46px;box-shadow:0 24px 70px #1b3a2e24}.login-mark{margin:0 auto 22px}.login-card .eyebrow{color:var(--green)!important}.login-card h1{color:var(--forest);margin:8px 0 12px;font-family:Playfair Display,serif;font-size:38px}.login-card>p:not(.eyebrow){color:var(--muted);line-height:1.7}.login-card>small{color:var(--muted);margin-top:18px;line-height:1.6;display:block}.login-button{margin-top:24px;text-decoration:none;display:block}.page{max-width:1440px;margin:0 auto;padding:36px 28px 72px}.hero{color:#fff;background:linear-gradient(125deg,#11291f,#244f3e 70%,#356b52);border-radius:26px;justify-content:space-between;align-items:flex-end;gap:32px;padding:34px 38px;display:flex;box-shadow:0 24px 60px #1b3a2e26}.hero h1{max-width:780px;margin:6px 0 12px;font-family:Playfair Display,serif;font-size:clamp(34px,4vw,54px);line-height:1.05}.hero p{color:#dbe9e0;max-width:700px;margin:0;line-height:1.7}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:700;color:#a9cbb8!important}.hero-actions{flex-shrink:0;gap:10px;display:flex}.button{border:0;border-radius:12px;padding:12px 17px;font-weight:700;transition:all .18s}.button:disabled{opacity:.45;cursor:not-allowed}.button.primary{color:var(--forest);background:#d7eea7}.button.primary:hover:not(:disabled){background:#e3f5bb;transform:translateY(-1px)}.button.ghost{color:#fff;background:0 0;border:1px solid #ffffff4d}.button.secondary{color:var(--forest);background:var(--mint)}.progress-panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;gap:22px;margin:20px 0;padding:18px 24px;display:grid}.progress-copy{align-items:baseline;gap:8px;display:flex}.progress-copy span{color:var(--muted);font-size:13px}.progress-track{background:#e5e8e4;border-radius:99px;height:8px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg,#37775d,#9abf72);height:100%;transition:width .25s;display:block}.alert{border-radius:13px;margin:12px 0;padding:13px 16px;font-size:14px}.alert.error{color:#7b2828;background:#fde7e3;border:1px solid #efc1ba}.alert.success{color:#174d38;background:#e1f2e7;border:1px solid #b5dac2}.configure-layout{grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:24px;display:grid}.section-stack{gap:16px;display:grid}.config-card,.summary-panel,.graph-card,.form-card,.rules-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 28px #232f290a}.config-card{padding:24px;scroll-margin-top:95px}.config-card-heading,.form-card-title{align-items:center;gap:14px;margin-bottom:18px;display:flex}.config-card-heading h2,.form-card h2,.section-heading h2{margin:0;font-size:19px}.config-card-heading p,.form-card-title p{color:var(--muted);margin:3px 0 0;font-size:13px}.step-number{width:38px;height:38px;color:var(--green);background:#edf0eb;border-radius:11px;flex:none;place-items:center;font-weight:700;display:grid}.status-chip{color:#1c6547;background:#e1f1e7;border-radius:99px;margin-left:auto;padding:6px 9px;font-size:11px;font-weight:700}.option-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.option-card{text-align:left;min-height:70px;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:13px;align-items:center;gap:11px;padding:11px;display:flex;position:relative}.option-card:hover:not(:disabled){border-color:#76a28d;transform:translateY(-1px)}.option-card.selected{border-color:var(--green);background:#f6fbf7;box-shadow:0 0 0 2px #2d6a521f}.option-card:disabled{opacity:.42;cursor:not-allowed}.option-swatch{color:#fff;background:#688076;border-radius:10px;flex:none;place-items:center;width:42px;height:42px;font-size:10px;font-weight:700;display:grid}.option-swatch.material{color:#3a2c21;background:linear-gradient(135deg,#cbbcad,#eee7df)}.option-swatch.parameter{color:#403615;background:#e8ddae}.option-copy{min-width:0}.option-copy strong,.option-copy small{display:block}.option-copy strong{font-size:13px;line-height:1.35}.option-copy small{color:var(--muted);margin-top:4px;font-size:10px}.radio-mark{border:1px solid #aeb8b2;border-radius:50%;flex:none;width:16px;height:16px;margin-left:auto}.selected .radio-mark{border:5px solid var(--green)}.configuration-group{color:var(--green);justify-content:space-between;align-items:center;margin:22px 2px 0;display:flex}.configuration-group span{font-size:18px;font-weight:750}.configuration-group strong{color:var(--muted);font-size:11px;font-weight:600}.compact-card{grid-template-columns:minmax(260px,1fr) minmax(240px,1fr);align-items:center;gap:24px;display:grid}.compact-card .config-card-heading{margin-bottom:0}.scalar-control{color:var(--muted);gap:7px;font-size:11px;font-weight:700;display:grid}.scalar-control select,.scalar-control input{border:1px solid var(--line);width:100%;min-height:46px;color:var(--ink);font:inherit;background:#fff;border-radius:11px;padding:10px 12px;font-size:14px}.input-with-unit{align-items:center;display:flex;position:relative}.input-with-unit input{padding-right:54px}.input-with-unit small{color:var(--muted);font-size:12px;font-weight:600;position:absolute;right:13px}.summary-panel{padding:22px;position:sticky;top:96px}.summary-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:16px;display:flex}.summary-title span{font-weight:700}.summary-title strong{color:var(--green);font-size:12px}.summary-list{gap:0;max-height:48vh;display:grid;overflow:auto}.summary-list>div{border-bottom:1px solid #eceeea;justify-content:space-between;gap:12px;padding:11px 0;font-size:12px;display:flex}.summary-list small{color:var(--muted)}.empty-copy{color:var(--muted);font-size:13px;line-height:1.6}.summary-panel details{color:var(--muted);padding:13px 0;font-size:12px}.summary-panel summary{color:var(--green);cursor:pointer;font-weight:700}.summary-total{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:20px;padding-top:16px;display:flex}.summary-total span{color:var(--muted);font-size:12px}.summary-total strong{text-align:right;font-size:15px}.source-match-note{color:var(--muted);font-size:11px;line-height:1.5}.specification-button{width:100%}.engineering-note{color:#735622;background:#fbf2dc;border-radius:10px;margin:16px 0 0;padding:12px;font-size:11px;line-height:1.5}.graph-card,.rules-card{margin-top:20px;padding:24px}.section-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;display:flex}.section-heading .eyebrow{margin:0 0 5px;color:var(--green)!important}.version-pill{color:var(--green);background:var(--mint);border-radius:99px;padding:7px 10px;font-size:11px;font-weight:700}.construction-flow{gap:12px;padding:4px 2px 12px;display:flex;overflow-x:auto}.node-column{border:1px solid var(--line);background:#fafaf7;border-radius:14px;flex:0 0 230px;position:relative}.node-column:not(:last-child):after{content:"›";color:#fff;background:var(--green);z-index:2;border-radius:50%;place-items:center;width:18px;height:18px;display:grid;position:absolute;top:23px;right:-10px}.node-column header{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:12px;display:grid}.node-column header span,.node-column header small{color:var(--muted);font-size:10px}.node-column header strong{font-size:12px}.node-column>div{flex-wrap:wrap;gap:6px;padding:12px;display:flex}.node-chip,.more-chip{text-overflow:ellipsis;white-space:nowrap;color:#384a42;background:#e8eee9;border-radius:8px;max-width:100%;padding:6px 8px;font-size:10px;overflow:hidden}.node-chip.material{color:#624c39;background:#eee7df}.node-chip.parameter{color:#66541c;background:#f0e8c9}.more-chip{background:0 0;border:1px dashed #aeb8b2}.source-card{border:1px solid var(--line);background:var(--line);border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;margin-top:20px;display:grid;overflow:hidden}.source-card>div{background:var(--paper);gap:4px;padding:18px;display:grid}.source-card span,.source-card small{color:var(--muted);font-size:10px}.source-card strong{color:var(--forest);font-size:22px}.source-card .hash-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.admin-grid{grid-template-columns:1fr 1.35fr;gap:20px;margin-top:20px;display:grid}.form-card{padding:24px}.form-card label,fieldset{color:#425048;gap:6px;margin-bottom:14px;font-size:12px;font-weight:700;display:grid}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}input,select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #cfd6d1;border-radius:10px;outline:none;padding:11px 12px}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #2d6a521a}textarea{resize:vertical}fieldset{border:0;padding:0}legend{margin-bottom:8px}.checkbox-list{border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:4px;max-height:160px;padding:9px;display:grid;overflow:auto}.checkbox-list label{align-items:center;gap:7px;margin:0;padding:5px;font-size:11px;font-weight:500;display:flex}.checkbox-list input{width:auto}.rule-list{gap:10px;display:grid}.rule-row{border:1px solid var(--line);border-radius:12px;grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:16px;width:100%;min-width:0;padding:14px;display:grid}.rule-row>div{min-width:0}.rule-row strong{font-size:13px}.rule-row p,.rule-row small{color:var(--muted);overflow-wrap:anywhere;margin:3px 0 0;font-size:11px}.rule-status{text-align:center;border-radius:99px;padding:7px;font-size:10px;font-weight:700}.rule-status.draft{color:#77561b;background:#f7e9bd}.rule-status.published{color:#1b6848;background:#dcefe3}.center-state{min-height:70vh;color:var(--muted);place-items:center;display:grid}@media (width<=1050px){.configure-layout{grid-template-columns:1fr}.summary-panel{position:static}.admin-grid{grid-template-columns:1fr}}@media (width<=720px){.topbar{grid-template-columns:1fr auto;align-items:start;gap:10px;height:auto;padding:14px 18px;display:grid}.brand small{display:none}nav{flex-wrap:wrap;grid-column:1/-1;gap:2px;display:flex}nav a{padding:7px 10px;font-size:11px}.user-menu span{display:none}.user-menu button{margin-top:5px}.login-page{padding:14px}.login-card{padding:34px 22px}.login-card h1{font-size:32px}.page{padding:20px 14px 48px}.hero{padding:25px 21px;display:grid}.hero h1{font-size:34px}.hero-actions{display:grid}.progress-panel{grid-template-columns:1fr auto}.progress-copy{gap:1px;display:grid}.progress-track{grid-area:2/1/auto/-1}.config-card{padding:18px}.compact-card{grid-template-columns:1fr;gap:14px}.option-grid,.field-row,.checkbox-list,.source-card,.rule-row{grid-template-columns:1fr}}
