:root{font-family:Arial,Helvetica,sans-serif;color:#182b40;background:#f4f5f5;font-size:14px;--blue:#123765;--muted:#647586;--line:#dfe5e8;--gold:#a98b59}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button,.primary,.secondary{cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:11px 14px;background:#fff;color:#18334e;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover{border-color:#6589ae;background:#f0f5fa}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--blue);color:white;border-color:var(--blue)}.primary:hover{background:#204d80}.secondary{background:#f2f5f8}.pill{display:inline-block;padding:8px 12px;background:#eaf0f7;border-radius:25px;font-size:11px;letter-spacing:.025em;font-weight:600}.live{color:#256853;background:#e9f3ee}.eyebrow,.crumb,.nav-heading,.studio-label{font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;margin-bottom:0}h2{font-size:17px;letter-spacing:-.4px}small{font-size:11px;color:var(--muted);line-height:1.65}label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600;margin-bottom:16px}input:not([type=range]),select,textarea{width:100%;border:1px solid #d6dfe6;border-radius:6px;padding:11px 12px;background:white;color:#263c52;outline:none;min-height:41px}textarea{resize:vertical;line-height:1.6}input:focus,select:focus,textarea:focus{border-color:#34679d;box-shadow:0 0 0 3px #34679d14}input[type=range]{accent-color:var(--blue);width:100%}button:focus-visible,a:focus-visible{outline:3px solid #7faed6;outline-offset:3px}.login{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.login-story{padding:60px 12%;background:#e7e6e1;position:relative;overflow:hidden}.login-story img{width:175px;margin-bottom:70px}.login-story h1{font-size:clamp(55px,6vw,92px);line-height:.98;margin:25px 0;font-weight:500;position:relative;z-index:1}.login-story em{font-family:Georgia,serif;color:var(--gold)}.login-story>p:last-of-type{max-width:330px;line-height:1.8}.weave{position:absolute;right:-100px;bottom:-90px;width:450px;height:450px;border:60px solid #173d6155;outline:25px solid #b3a08333;transform:rotate(35deg);background:repeating-linear-gradient(90deg,#213e4d0d 0 3px,transparent 3px 9px)}.login-form{max-width:430px;width:100%;align-self:center;justify-self:center;padding:40px}.login-form h2{font-size:28px;margin:24px 0 12px}.login-form>p{color:var(--muted);line-height:1.7}.login-form .primary{width:100%;margin:8px 0 20px}.sidebar{width:232px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:30px 17px;display:flex;flex-direction:column;z-index:10}.logo img{width:150px;margin:0 10px}.studio-label{font-size:9px;margin:12px 10px 36px;color:#9a8156}.nav-heading{margin:0 10px 13px}.nav-item{display:flex;width:100%;justify-content:start;gap:12px;text-decoration:none;text-align:left;border:0;margin-bottom:7px;padding:14px 13px;background:transparent;color:#6a7785;font-size:13px}.nav-item span{flex:1}.nav-item.active{background:#133763;color:#fff;box-shadow:0 4px 10px #17365818}.nav-item.active small{color:#c0d5e9}.nav-item.external{font-size:11px}nav{margin-bottom:26px}.sidebar-footer{margin-top:auto;display:flex;gap:10px;align-items:center;padding-top:20px;border-top:1px solid var(--line)}.avatar{background:#e8eef5;color:var(--blue);padding:12px;border-radius:50%}.sidebar-footer strong{font-size:11px}.sidebar-footer small{display:block;font-size:9px}.sidebar-footer button{padding:7px;border:0}main{margin-left:232px;padding:28px 32px 0;max-width:1800px}.top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:25px;gap:12px}.crumb{display:block;margin:0 0 9px;font-size:9px}.intro{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0}.intro p{color:var(--muted);font-size:13px;line-height:1.65;margin:0;max-width:720px}.edition{font-size:9px;letter-spacing:.1em;white-space:nowrap;color:var(--gold)}.workspace-grid{display:grid;grid-template-columns:minmax(310px,390px) minmax(0,1fr);gap:24px;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:0 3px 9px #142b4010}.section-head{display:flex;align-items:center;gap:9px;margin-bottom:21px}.section-head:not(:first-child){margin-top:25px;border-top:1px solid var(--line);padding-top:23px}.section-head h2{margin:0;font-size:14px}.step{font-size:10px;color:var(--gold);border:1px solid #cbbb9c;padding:5px;border-radius:50%}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.palettes{display:flex;gap:6px;flex-wrap:wrap;margin:-4px 0 18px}.palettes button{padding:7px;font-size:10px;gap:3px}.palettes i{width:9px;height:15px;display:block}.palettes i:last-of-type{margin-right:4px}details{border:1px solid var(--line);border-radius:7px;padding:12px;margin:15px 0}summary{cursor:pointer;font-weight:600;font-size:12px}details>.field-grid{margin-top:16px}.controls>.primary{width:100%;margin-top:23px}.controls>.secondary{width:100%;margin-top:10px}.status{font-size:12px;line-height:1.6;margin:10px 0 0;color:#2a627e}.range-row{display:flex;align-items:center;gap:20px}#ratioField{margin-bottom:20px}.upload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.upload{border:1px dashed #9dafbf;border-radius:8px;background:#f6f8fa;position:relative;display:flex;align-items:center;justify-content:center;min-height:140px;text-align:center;overflow:hidden;margin:0 0 15px}.upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.upload img{width:100%;height:140px;object-fit:contain;background:#fff}.upload span{padding:15px;pointer-events:none}.upload b{display:block;margin-bottom:8px}.upload-meta{font-size:10px;margin-top:-9px;margin-bottom:12px;display:flex;gap:8px;align-items:center;overflow-wrap:anywhere}.upload-meta button{padding:4px;font-size:10px}.preview-panel{position:sticky;top:24px}.preview-heading{display:flex;gap:12px;align-items:start;justify-content:space-between}.preview-heading h2{font-size:20px;margin:8px 0 22px}.toolbar{display:flex;gap:6px;margin-bottom:12px}.toolbar button{font-size:11px;padding:8px 12px}.toolbar button.active{background:#e9eff6;border-color:#537da4}.canvas{aspect-ratio:1;max-height:64vh;background:#eeefec;display:flex;align-items:center;justify-content:center;border-radius:8px;overflow:hidden;position:relative;background-image:linear-gradient(45deg,#dfe4e51c 25%,transparent 25%),linear-gradient(-45deg,#dfe4e51c 25%,transparent 25%);background-size:20px 20px}.canvas img{width:100%;height:100%;object-fit:contain;cursor:zoom-in}.empty{text-align:center;max-width:350px;padding:25px;color:var(--muted)}.empty h3{color:#35506c;margin:20px 0 10px;font-size:20px}.empty p{font-size:12px;line-height:1.8}.pattern-mark{font-size:68px;color:#a8b4bd}.quality-note{display:flex;gap:14px;border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.quality-note>span{color:#628d7a;font-size:18px}.quality-note strong{font-size:11px}.quality-note p{font-size:11px;color:var(--muted);line-height:1.6;margin:6px 0 0}#imageMetrics{font-size:11px;margin-top:16px;line-height:1.8}.notice{color:#8c6731;background:#fbf7ee;border:1px solid #eaddc6;padding:12px;border-radius:7px;font-size:11px;line-height:1.7}.download-row{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:16px 0 8px}.download-row label{margin:0;flex:1;min-width:70px}.download-row a{font-size:11px;padding:12px;flex:2;white-space:nowrap}.result-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.result-actions button{font-size:11px;flex:1}.archive-filters{display:flex;gap:12px;margin-bottom:20px}.archive-filters select{max-width:210px}.archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}.archive-card{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.archive-card>button{padding:0;border:0;border-radius:0;width:100%;aspect-ratio:1;background:#e9eef1}.archive-card img{width:100%;height:100%;object-fit:contain}.archive-card .body{padding:16px}.archive-card h3{font-size:13px;margin-bottom:9px}.archive-card p{font-size:10px;color:var(--muted)}.archive-card .pill{font-size:9px}.archive-card .actions{display:flex;gap:6px;margin-top:10px}.archive-card .actions button{font-size:10px;padding:7px}.spec-header{display:flex;justify-content:space-between;gap:20px;margin-bottom:25px}.spec-layout{display:grid;grid-template-columns:230px 1fr;gap:28px}.spec-layout>img{width:100%;border:1px solid var(--line);border-radius:8px;position:sticky;top:30px}.spec-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spec-actions a{font-size:12px;color:var(--blue)}#specFields .wide{grid-column:1/-1}#specMeta{font-size:11px;color:var(--muted)}#revisionList p{font-size:12px;margin:10px 0}footer{display:flex;justify-content:space-between;font-size:9px;color:#8b969f;border-top:1px solid var(--line);margin-top:30px;padding:20px 0}dialog{max-width:94vw;max-height:94vh;padding:15px;border:0;border-radius:10px;box-shadow:0 15px 80px #0008}dialog::backdrop{background:#0b203acc}dialog img{max-width:88vw;max-height:80vh;object-fit:contain;display:block}dialog button{float:right;margin-bottom:10px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#163b60;color:white;border-radius:8px;padding:14px 22px;z-index:99;box-shadow:0 5px 30px #0003;max-width:90vw}#loginStatus{color:#a33}.loading-dot{width:42px;height:42px;border:3px solid #d2dbe2;border-top-color:#173d65;border-radius:50%;animation:spin 1s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1500px){.workspace-grid{grid-template-columns:420px 1fr}.canvas{max-height:72vh}.preview-panel{padding:30px}}@media(max-width:1100px){.sidebar{width:200px;padding:25px 12px}main{margin-left:200px;padding:23px 20px}.workspace-grid{grid-template-columns:310px 1fr;gap:15px}.panel{padding:18px}.edition{display:none}.preview-heading .pill{display:none}.spec-layout{grid-template-columns:160px 1fr}}@media(max-width:850px){.sidebar{position:static;width:100%;padding:18px}.sidebar .logo img{width:130px}.studio-label,.nav-heading,.sidebar-footer{display:none}.sidebar nav{display:flex;overflow:auto;margin:15px 0 0}.nav-item{min-width:145px;font-size:11px;margin:0}.sidebar>#archiveNav,.external{display:inline-flex;width:auto;margin-top:8px}.sidebar>.external{width:auto}main{margin:0;padding:20px}.workspace-grid{grid-template-columns:1fr 1fr}.preview-panel{position:static}.top h1{font-size:24px}.live{font-size:9px}.login-story{padding:40px}.login-form{padding:30px}.login-story h1{font-size:60px}.spec-layout{grid-template-columns:1fr}.spec-layout>img{position:static;max-width:240px}}@media(max-width:640px){.workspace-grid{grid-template-columns:1fr}.preview-panel{grid-row:2}.canvas{max-height:none}.login{grid-template-columns:1fr}.login-story{padding:28px}.login-story img{margin-bottom:20px;width:140px}.login-story h1{font-size:45px;line-height:1.1}.login-story h1 br{display:none}.login-story .weave{width:250px;height:250px}.login-form{padding:30px 25px}.top .live{display:none}.intro{margin:17px 0}footer span{display:none}.spec-header{display:block}.spec-header button{margin:10px 0}.archive-filters{flex-wrap:wrap}}@media print{body{background:white;color:#111}.sidebar,.top,#workspace,#archiveView,footer,.spec-actions,#closeSpecs,#toast,dialog,#specStatus{display:none!important}main{margin:0;padding:0;max-width:none}#specView{display:block!important;border:0;box-shadow:none;padding:0}.spec-layout{grid-template-columns:170px 1fr;gap:20px}.spec-layout>img{position:static;max-width:170px}input,select,textarea{border:0!important;background:transparent!important;padding:0!important;min-height:20px!important}label{break-inside:avoid;font-size:10px;gap:3px;margin-bottom:10px}.notice{font-size:9px}textarea{height:auto}details{display:none}.spec-header{margin-bottom:10px}.spec-header h2{font-size:22px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
/* Mode-specific controls: each design route gets its own visual working language. */
#workspace{--mode:#173c6a;--mode-2:#a98650}.controls{border-top:4px solid var(--mode);padding-top:0}.mode-hero{margin:0 -24px 20px;padding:22px 24px 20px;background:linear-gradient(130deg,var(--mode),var(--mode-2));color:#fff;border-radius:8px 8px 0 0}.mode-hero span{display:block;font-size:10px;font-weight:700;letter-spacing:.13em;opacity:.8}.mode-hero h2{font-size:21px;line-height:1.2;margin:8px 0}.mode-hero p{font-size:12px;line-height:1.55;margin:0;max-width:430px;color:#fff}.mode-panel{border:1px solid color-mix(in srgb,var(--mode) 22%,#dfe5e8);background:color-mix(in srgb,var(--mode) 5%,#fff);border-radius:10px;margin:0 0 20px;padding:14px}.panel-eyebrow{font-size:9px;font-weight:700;letter-spacing:.12em;color:var(--mode);margin:0 0 9px}.mode-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mode-choices.triple{grid-template-columns:repeat(3,minmax(0,1fr))}.mode-choices.quad{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-choice{min-height:64px;text-align:left;padding:10px;border:1px solid #d4dde3;background:#fff;border-radius:8px}.mode-choice:hover,.mode-choice.active{border-color:var(--mode);background:color-mix(in srgb,var(--mode) 10%,#fff);box-shadow:inset 3px 0 0 var(--mode)}.mode-choice strong{display:block;font-size:11px;color:#24364a;margin-bottom:3px}.mode-choice small{display:block;font-size:9px;color:#617181;line-height:1.35}.blend-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.blend-choice{font-size:9px;padding:10px 5px;background:#fff;border:1px solid #d4dde3}.blend-choice.active,.blend-choice:hover{background:var(--mode);border-color:var(--mode);color:#fff}.palettes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:7px 0 21px}.palette-card{min-width:0;min-height:78px;text-align:left;padding:8px;border:1px solid #d5dfe5;background:#fff;border-radius:8px;overflow:hidden}.palette-card:hover,.palette-card.active{border-color:var(--mode);background:color-mix(in srgb,var(--mode) 6%,#fff);box-shadow:0 0 0 2px color-mix(in srgb,var(--mode) 16%,transparent)}.palette-swatches{display:flex;gap:3px;margin-bottom:7px}.palette-swatches i{display:block;width:16px;height:16px;border-radius:50%;border:1px solid #fff;box-shadow:0 0 0 1px #d4dce2}.palette-card strong{display:block;white-space:nowrap;font-size:10px;color:#26394b;margin-bottom:3px}.palette-card small{display:block;font-size:8px;line-height:1.25;color:#71808d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.controls .upload{border-color:color-mix(in srgb,var(--mode) 38%,#9dafbf);background:color-mix(in srgb,var(--mode) 4%,#f6f8fa)}.controls .section-head .step{background:var(--mode);color:#fff}.controls .primary{background:var(--mode);border-color:var(--mode)}.controls .primary:hover{background:var(--mode-2);border-color:var(--mode-2)}@media(max-width:1100px){.mode-hero{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}.palettes{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.mode-hero{margin-left:-18px;margin-right:-18px}.mode-choices.triple{grid-template-columns:1fr}.blend-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.palettes{grid-template-columns:repeat(3,minmax(0,1fr))}.palette-card{min-height:72px;padding:7px}.palette-card small{display:none}}
/* Editable analysis draft, separated from the manufacturer's physical recipe. */
.analysis-panel{padding:18px;border:1px solid #d8e3ea;background:#f3f7fa;border-radius:12px;margin-bottom:22px}.analysis-panel h3{margin-top:0}.analysis-panel p{font-size:13px;line-height:1.6}.analysis-panel button{margin:6px 8px 0 0}.analysis-swatches{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.analysis-swatches span{display:flex;align-items:center;gap:6px;font-size:12px}.analysis-swatches i{display:inline-block;width:24px;height:24px;border-radius:5px;border:1px solid #ccc}.field-origin{display:block;font-size:11px;font-weight:400;color:#546879;margin:4px 0}.spec-layout>img{align-self:start}@media print{.analysis-panel button{display:none}.analysis-swatches i{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
