:root{font-family:Inter,Arial,Helvetica,sans-serif;color:#1f1d2e;background:#ffffff;font-synthesis:none;--paper:#ffffff;--line:#d3cdf2;--muted:#4f4c67;--ink:#1f1d2e;--green:#edebff}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:5px}a{color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}.top{height:94px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:26px;letter-spacing:-1.4px;text-decoration:none;font-weight:650;display:flex;align-items:center;gap:10px}.brand span{font-size:9px;letter-spacing:1px;border:1px solid currentColor;padding:4px 5px;border-radius:3px}.top nav{display:flex;align-items:center;gap:28px;font-size:13px}.top a{text-decoration:none}.quiet{border:0;background:none;padding:9px 0;color:var(--muted)}.btn{border:1px solid #5b4ecd;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;gap:24px;background:#5b4ecd;color:#ffffff;font-size:13px;padding:15px 24px;min-height:48px;transition:background .15s}.btn:hover{background:#4a3db7}.btn.secondary{background:transparent;color:var(--ink);border-color:#d3cdf2}.btn.secondary:hover{background:#edebff}.small{font-size:12px;min-height:36px;padding:8px 14px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;text-transform:uppercase;display:flex;align-items:center;gap:10px}.dot{width:6px;height:6px;background:#5b4ecd;border-radius:50%;display:inline-block}.arrow{font-size:18px}.auth-layout{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100svh - 94px)}.auth-art{margin:24px;background:#27223f;position:relative;border-radius:5px;overflow:hidden;min-height:600px}.auth-art img{width:100%;height:100%;object-fit:cover;position:absolute}.auth-quote{position:absolute;bottom:55px;left:50px;color:#edebff;font:48px/1.05 Georgia,serif;letter-spacing:-2px}.auth-content{align-self:center;padding:50px 60px;width:100%;max-width:540px;margin:auto}.auth-content h1,.pending h1{font-size:38px;letter-spacing:-1.5px;font-weight:450;margin:22px 0 12px}.intro{font-size:14px;color:var(--muted);line-height:1.7;margin:0 0 30px}.field{display:flex;flex-direction:column;gap:9px;margin-bottom:20px;font-size:12px}.field input,.field select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:4px;background:#ffffff;padding:11px 12px;color:var(--ink)}.field input:focus,.field select:focus{outline:1px solid #5b4ecd}.pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.full{width:100%}.auth-note{font-size:11px;line-height:1.7;color:var(--muted);margin:22px 0}.auth-switch{font-size:12px;margin-top:28px;color:var(--muted)}.auth-switch a{color:var(--ink);margin-left:8px}.error{font-size:13px;color:#8f3f32;line-height:1.5;margin:14px 0}.error:empty{display:none}.loading,.pending{padding:70px 24px;max-width:600px;margin:60px auto;text-align:center}.pending p{color:var(--muted);font-size:15px;line-height:1.8}.pending .eyebrow{justify-content:center}.workspace{max-width:1280px;margin:0 auto;padding:50px 36px 25px}.workspace-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:34px}.workspace h1{font-size:38px;font-weight:450;letter-spacing:-1.6px;margin:16px 0 0}.availability{font-size:12px;color:var(--muted);display:flex;gap:9px;align-items:center}.availability .offline{background:#b7b5aa}.lab-grid{display:grid;grid-template-columns:340px minmax(0,1fr);border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#ffffff;min-height:570px}.settings{padding:30px;border-right:1px solid var(--line)}.section-title{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;margin:0 0 30px}.settings .pair{gap:12px}.settings .field{margin-bottom:24px}.hint{font-size:11px;color:var(--muted);line-height:1.65}.result-panel{padding:28px;display:flex;flex-direction:column;min-width:0}.result-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.preview{flex:1;min-height:340px;display:flex;align-items:center;justify-content:center;position:relative;margin:25px 0;background:#f3f2fe;border:1px solid #e1ddfb;border-radius:4px;overflow:hidden}.preview svg{width:100%;height:100%;position:absolute;inset:0}.empty{text-align:center;padding:30px;max-width:320px}.empty-symbol{display:block;font:60px/1 Georgia,serif;color:#8e80cf;margin-bottom:20px}.empty h2{font-size:18px;letter-spacing:-.4px;font-weight:450}.empty p{font-size:12px;line-height:1.8;color:var(--muted)}.result-footer{font-size:12px;color:var(--muted);line-height:1.7;min-height:42px}.result-footer progress{width:100%;height:4px;accent-color:#5b4ecd;display:block;margin:8px 0}.history{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}.history button{border:1px solid var(--line);background:transparent;padding:10px 14px;border-radius:4px;font-size:11px;color:var(--muted)}.history button:hover{background:#edebff}.user-name{font-size:12px;color:var(--muted)}.access-list{border-top:1px solid var(--line)}.access-row{padding:22px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}.access-row strong{font-size:15px;font-weight:500}.access-row p{font-size:12px;color:var(--muted);margin:8px 0 0}.actions{display:flex;gap:8px}.badge{font-size:10px;border:1px solid var(--line);border-radius:20px;padding:6px 10px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.app-foot{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;padding:32px 0;letter-spacing:.7px}.auth-content .eyebrow{color:var(--muted)}
@media(max-width:900px){.auth-content{padding:40px 28px}.auth-quote{left:25px;font-size:36px}.lab-grid{grid-template-columns:300px 1fr}.settings{padding:22px}.workspace{padding:35px 24px}.top{padding:0 24px}.result-panel{padding:20px}}
@media(max-width:650px){.top{height:78px;padding:0 22px}.top nav{gap:15px}.brand{font-size:24px}.top nav .user-name{display:none}.auth-layout{grid-template-columns:1fr;min-height:calc(100svh - 78px)}.auth-art{display:none}.auth-content{padding:44px 26px;align-self:start}.auth-content h1{font-size:36px}.lab-grid{grid-template-columns:1fr}.settings{border-right:0;border-bottom:1px solid var(--line);padding:24px}.workspace{padding:30px 18px}.workspace-head{align-items:start;flex-direction:column;gap:18px}.workspace h1{font-size:34px}.result-panel{padding:22px}.preview{min-height:330px}.access-row{align-items:start;flex-direction:column}.app-foot{line-height:1.8;gap:20px}.top nav .btn{min-height:36px;padding:8px 12px}.pending{margin:30px auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* KnitLab landing: the shop palette, with a quiet field of browser-drawn ASCII cloth. */
.home{background:#f3f2fe}
.home .top{position:absolute;inset:0 0 auto;z-index:3;height:90px;border:0;background:transparent}
.home .top .brand{font-size:21px;color:#4f4c67}
.home .top nav{display:none}
.landing{isolation:isolate;position:relative;display:flex;align-items:center;justify-content:center;min-height:100svh;overflow:hidden;background:#f3f2fe}
.ascii-fabric{position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}
.landing::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 31% 34% at 50% 49%,#f3f2fef5 0%,#f3f2fed9 42%,#f3f2fe20 100%);pointer-events:none}
.landing-content{text-align:center;padding:100px 24px 120px;max-width:760px;width:100%}
.landing-content .eyebrow{justify-content:center;color:#7a72b0;font-size:9px;letter-spacing:3.4px;margin-bottom:28px}
.landing-content h1{color:#5b4ecd;font-size:clamp(64px,8.4vw,112px);letter-spacing:-7px;line-height:1;font-weight:500;margin:0;display:flex;align-items:flex-start;justify-content:center;gap:13px}
.landing-content h1 span{font-size:10px;text-transform:uppercase;letter-spacing:2px;font-weight:500;padding-top:12px}
.landing-motto{font-size:12px;letter-spacing:2px;color:#4f4c67;margin:27px 0 36px}
.landing-controls{display:inline-flex;align-items:center;justify-content:center;padding:7px;background:#ffffffd9;border:1px solid #d3cdf2;border-radius:40px;box-shadow:0 6px 32px #5b4ecd0a;backdrop-filter:blur(10px)}
.landing-controls a{font-size:12px;display:flex;align-items:center;gap:24px;min-height:44px;padding:10px 23px;color:#5b4ecd;text-decoration:none;border-radius:28px;transition:background .2s,color .2s}
.landing-controls a:first-child{background:#5b4ecd;color:#fff}
.landing-controls a:first-child:hover{background:#4a3db7}
.landing-controls a:hover{background:#edebff}
.control-divider{display:none}
.landing-maintenance{display:inline-block;max-width:520px;padding:18px 26px;background:#ffffffd9;border:1px solid #d3cdf2;border-radius:22px;box-shadow:0 6px 32px #5b4ecd0a;backdrop-filter:blur(10px);text-align:center}.landing-maintenance .eyebrow{justify-content:center;margin-bottom:8px}.landing-maintenance p{margin:0 0 6px;font-size:13px;line-height:1.55;color:#4f4c67}.landing-maintenance p[lang]{font-size:11px;color:#7a72b0}
.landing-note{position:absolute;inset:auto 5% 30px;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:#7a72b0}
@media(max-width:650px){.home .top{height:78px}.landing-content{padding:110px 20px 130px}.landing-content h1{font-size:76px;letter-spacing:-5px;gap:9px}.landing-content h1 span{font-size:8px;padding-top:8px}.landing-controls a{gap:15px;padding:10px 19px}.landing-note{left:24px;right:24px;bottom:24px;font-size:8px;line-height:1.8}.motion-note{display:none}.landing::before{background:radial-gradient(ellipse 60% 28% at 50% 49%,#f3f2fef5 0%,#f3f2fec9 45%,#f3f2fe20 100%)}}
@media(prefers-reduced-motion:reduce){.motion-note{display:none}.landing-controls a{transition:none}}

.owner-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin:28px 0}.owner-stat{padding:24px;background:#eeebfa;border:1px solid #d3cdf2;border-radius:16px;font-size:20px}.data-scroll{overflow:auto;margin:20px 0}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:14px;border-bottom:1px solid #ddd8ef;vertical-align:top}th{color:#625b85}td{max-width:380px;overflow-wrap:anywhere}.workspace section{margin-top:24px}.workspace textarea{display:block;width:100%;max-width:640px;min-height:100px;margin:16px 0;border:1px solid #d3cdf2;border-radius:10px;padding:14px;font:inherit}dialog{border:1px solid #d3cdf2;border-radius:16px;max-width:min(800px,90vw);max-height:85vh;padding:24px}dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}dialog::backdrop{background:#211a4155}
.actions{flex-wrap:wrap}.access-row>div{min-width:0}.access-row input[type=file]{display:block;max-width:100%;width:280px;margin-top:14px}.workspace>section,.data-scroll{min-width:0;max-width:100%}@media(max-width:650px){.top{height:auto;min-height:78px;gap:12px;flex-wrap:wrap;padding-top:16px;padding-bottom:16px}.top nav{gap:12px;flex-wrap:wrap}.workspace h1{font-size:30px}.owner-stat{padding:18px}.workspace>nav{gap:8px}}
.workspace select{max-width:100%;min-width:0;padding:9px;border:1px solid #d3cdf2;border-radius:6px;background:#fff}.workspace .actions{align-items:center}.workspace input[type=date],.workspace input[type=number]{max-width:100%;padding:9px;border:1px solid #d3cdf2;border-radius:6px}.workspace input[type=number]{width:100px}@media(max-width:650px){.workspace .actions>select{width:100%}}

/* Owner workspace — quiet lavender surfaces, clear hierarchy and readable records. */
.dashboard{max-width:1440px;background:#faf9fe;min-height:calc(100vh - 90px);padding:44px 48px 72px}.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.dashboard-heading h1{font-size:36px;letter-spacing:-1.5px;margin:12px 0}.dashboard-heading>a{background:#fff;border:1px solid #ddd8ef;padding:12px 18px;border-radius:12px;text-decoration:none;white-space:nowrap}.kicker{font-size:10px;font-weight:650;letter-spacing:1.8px;color:#80769e}.dashboard .intro,.muted{color:#878097;font-size:13px;line-height:1.7}.dashboard .owner-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:30px 0}.dashboard .owner-stat{display:flex;flex-direction:column;gap:12px;padding:22px 24px;background:#fff;border:1px solid #e9e5f3;border-radius:16px;box-shadow:0 3px 14px #35265d03}.owner-stat>span{font-size:12px;color:#756c88}.owner-stat>strong{font-size:34px;letter-spacing:-1px;font-weight:550;color:#3d3355}.owner-stat>small{font-size:11px;color:#938aA4}.dashboard-tabs{display:flex;gap:6px;overflow-x:auto;border-bottom:1px solid #e5e0f0;padding:0 0 13px}.dashboard-tabs .btn{border:0;background:transparent;color:#83798f;white-space:nowrap;border-radius:9px;font-size:12px;padding:10px 15px}.dashboard-tabs [aria-current=page]{background:#ece8fb;color:#5b4ecd;font-weight:650}.dashboard-content{min-height:360px}.overview-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:20px}.dashboard-panel{padding:26px;background:#fff;border:1px solid #e9e5f3;border-radius:16px;margin-bottom:20px}.dashboard-panel h2{font-size:23px;letter-spacing:-.6px;margin:12px 0 4px}.activity-chart{display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:10px;margin-top:28px}.chart-column{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0}.chart-column strong{font-size:12px;font-weight:500;color:#655b7d}.chart-column small{font-size:10px;color:#92889f}.chart-column meter{appearance:none;writing-mode:vertical-lr;direction:rtl;width:26px;height:124px;background:#f1eef9;border:0;border-radius:7px;overflow:hidden}.chart-column meter::-webkit-meter-bar{background:#f1eef9;border:0;border-radius:7px}.chart-column meter::-webkit-meter-optimum-value{background:#9c8de0;border-radius:7px}.chart-column meter::-moz-meter-bar{background:#9c8de0}.outcome-line{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f2eff8}.outcome-line strong{font-size:13px;font-weight:550}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:6px;font-size:10px;font-weight:600;white-space:nowrap;background:#eeebf4;color:#766b88}.status-badge::before{content:'';width:5px;height:5px;background:currentColor;border-radius:50%}.status-done,.status-online{background:#eaf5ef;color:#418060}.status-failed{background:#fbeced;color:#ba5b64}.status-running{background:#ece9ff;color:#7763be}.status-queued{background:#fff4dd;color:#9d7b39}.engine-row{display:flex;align-items:center;justify-content:space-between;padding:18px 0 4px;gap:20px}.engine-row>div,.record-label{display:flex;flex-direction:column;gap:6px}.engine-row strong{font-size:13px;font-weight:550}.engine-row small,.record-label small{font-size:11px;color:#968ca3;line-height:1.6}.dashboard .data-scroll{background:#fff;border:1px solid #e9e5f3;border-radius:14px}.dashboard table{font-size:12px}.dashboard th{background:#f7f5fc;font-size:10px;font-weight:550;color:#8c819e;padding:14px 16px;white-space:nowrap}.dashboard td{padding:17px 16px;border-color:#f0edf6}.dashboard tbody tr:last-child td{border:0}.dashboard tbody tr:hover{background:#fcfbff}.record-label strong{font-size:12px;font-weight:550;color:#50455e}.record-label>a{font-weight:550;text-decoration:none;color:#6d58b6}.record-label small{max-width:260px}.dashboard .small{font-size:11px;min-height:32px}.dashboard .actions{gap:10px}.dashboard select,.dashboard input[type=date],.dashboard input[type=number]{border-color:#e5dff0;border-radius:9px;font-size:12px;padding:11px}.dashboard h2{font-size:21px;letter-spacing:-.4px}.dashboard h3{font-size:16px;margin-top:32px}.data-note{font-size:11px;line-height:1.7;color:#968ca3}.empty-state{padding:32px;border:1px dashed #ddd5ed;border-radius:12px;color:#92879f;font-size:13px;line-height:1.8}.dashboard button:focus-visible,.dashboard a:focus-visible{outline:2px solid #9986dc;outline-offset:3px}.workspace:not(.dashboard) .access-row{border:1px solid #e9e3f3;border-radius:16px;background:#fff;padding:24px;margin:16px 0}.workspace:not(.dashboard) .access-row p{font-size:12px;color:#968ca3}
@media(max-width:1000px){.dashboard{padding:30px 24px}.overview-grid{grid-template-columns:1.3fr 1fr}.dashboard .owner-stat{padding:20px 16px}.dashboard-heading h1{font-size:30px}.dashboard-heading{align-items:flex-start}}
@media(max-width:650px){.dashboard{padding:28px 16px}.dashboard-heading{flex-direction:column;gap:6px}.dashboard-heading h1{font-size:28px}.dashboard .owner-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:24px 0}.owner-stat>strong{font-size:29px}.owner-stat>small{font-size:10px}.overview-grid{grid-template-columns:1fr;gap:0}.dashboard-panel{padding:21px}.dashboard-tabs{margin-right:-16px;padding-right:16px}.dashboard-tabs .btn{padding:10px 12px}.chart-column meter{width:24px}.dashboard .actions>select{width:100%}.engine-row small{overflow-wrap:anywhere}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.lang-menu{display:inline-flex;align-items:center}.lang-menu select{min-height:32px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font:13px Inter,Arial,sans-serif;cursor:pointer;max-width:11em;text-overflow:ellipsis}.lang-menu select:focus-visible{outline:2px solid #5b4ecd;outline-offset:2px}
