:root{--page:#f3f4f2;--surface:#fff;--border:#dfe3df;--control-border:#cfd5cf;--text:#1b1f1c;--muted:#5a615b;--subtle:#7a827b;--accent:#1f6b4a;--accent-hover:#164d35;--on-accent:#fff;--error:#b42318;--error-bg:#fef3f2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--page);color:var(--text);margin:0}body{font-size:14px;line-height:1.4}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--accent)}a:hover{color:var(--accent-hover)}input[type=text],input[type=password],input[type=number],select{border:1px solid var(--control-border);background:var(--surface);border-radius:8px;width:100%;height:40px;padding:0 12px;font-size:15px;font-weight:500}select{font-size:14px}input:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.primary{background:var(--accent);height:46px;color:var(--on-accent);border:0;border-radius:10px;padding:0 20px;font-size:15px;font-weight:600}.primary:hover:not(:disabled){background:var(--accent-hover)}.secondary{border:1px solid var(--control-border);background:var(--surface);border-radius:8px;height:36px;padding:0 14px;font-weight:500}.link-button{color:var(--accent);background:0 0;border:0;padding:0;font-weight:500}.link-button:hover{color:var(--accent-hover);text-decoration:underline}.form-error,.field-error{color:var(--error);margin:4px 0 0;font-size:13px}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login-form{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;width:min(380px,100%);padding:28px;display:flex}.login-form h1{letter-spacing:-.01em;margin:0 0 12px;font-size:19px;font-weight:700}.login-form .primary{margin-top:10px}.home{min-height:100vh}.home-main{max-width:960px;margin:0 auto;padding:32px 28px 48px}.home-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.home-head h1{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:700}.home-new{flex-wrap:wrap;gap:10px;display:flex}.new-ticket{align-items:center;height:42px;text-decoration:none;display:inline-flex}.new-ticket:hover{color:var(--on-accent)}.home-empty{text-align:center;background:var(--surface);border:1px dashed var(--control-border);border-radius:12px;padding:48px 24px}.home-empty p{margin:0;font-size:15px;font-weight:600}.home-empty .home-empty-hint{color:var(--muted);margin-top:6px;font-size:13px;font-weight:400}.ticket-list{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.ticket-row{align-items:center;gap:20px;padding:0 20px 0 0;display:flex}.ticket-row+.ticket-row{border-top:1px solid var(--border)}.ticket-row:hover{background:#f8f9f7}.ticket-open{min-width:0;color:inherit;flex-direction:column;flex:1;gap:3px;padding:14px 0 14px 20px;text-decoration:none;display:flex}.ticket-open:hover{color:inherit}.ticket-open:hover .ticket-title{color:var(--accent)}.ticket-title{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.ticket-detail{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.ticket-meta{color:var(--subtle);white-space:nowrap;flex:none;font-size:13px}.ticket-actions{flex:none;gap:16px;font-size:13px;display:flex}.link-button.danger,.link-button.danger:hover{color:var(--error)}.generator{flex-direction:column;height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:16px;height:64px;padding:0 28px;display:flex}.topbar-left{align-items:center;gap:28px;min-width:0;display:flex}.brand{letter-spacing:-.01em;color:var(--text);font-size:17px;font-weight:700;text-decoration:none}.brand:hover{color:var(--accent)}.back-link{white-space:nowrap;font-size:14px;font-weight:500;text-decoration:none}.back-link:hover{text-decoration:underline}.topbar-right{align-items:center;gap:12px;min-width:0;display:flex}.save-status{color:var(--subtle);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.save-status.pending{color:var(--muted);font-weight:500}.save-status.error{color:var(--error);white-space:normal}.save-button{background:var(--accent);height:36px;color:var(--on-accent);border:0;border-radius:8px;padding:0 16px;font-weight:600}.save-button:hover:not(:disabled){background:var(--accent-hover)}.workspace{flex:1;gap:24px;min-height:0;padding:24px 28px 28px;display:flex}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:none;gap:18px;width:420px;padding:22px 22px 20px;display:flex;overflow-y:auto}.schema-form{flex-direction:column;gap:18px;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.segmented{border:1px solid var(--control-border);border-radius:8px;height:40px;display:flex;overflow:hidden}.segmented button{background:var(--surface);border:0;flex:1;font-size:14px;font-weight:500}.segmented button+button{border-left:1px solid var(--control-border)}.segmented button.selected{background:var(--accent);color:var(--on-accent);font-weight:600}.selections-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.selections-hint{color:var(--subtle);font-size:12px}.legs{flex-direction:column;gap:8px;display:flex}.leg-row{align-items:center;gap:10px;display:flex}.leg-label{flex:none;width:64px;font-size:14px;font-weight:600}.leg-row input[type=text]{flex:1;min-width:0;height:38px}.leg.has-error input[type=text]{border-color:var(--error)}.leg .field-error{margin-left:74px}.leg-count{text-align:right;width:22px;color:var(--muted);flex:none;font-size:13px;font-weight:600}.field-size{color:var(--subtle);align-items:center;gap:6px;font-size:12px;display:flex}.field-size input[type=number]{width:58px;height:38px;padding:0 8px;font-size:14px}.leg-delete,.leg-delete-spacer{flex:none;width:30px;height:30px}.leg-delete{color:var(--subtle);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex}.leg-delete:hover,.leg-delete:focus-visible{color:var(--error);background:var(--page)}.add-leg{align-self:flex-start;margin-left:74px;font-size:13px}.add-leg:disabled{opacity:.45;cursor:default;color:var(--accent);text-decoration:none}.cost-box{background:var(--page);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.cost-box-text{flex-direction:column;gap:2px;display:flex}.cost-detail{color:var(--muted);font-size:13px}.cost-total{letter-spacing:-.01em;font-size:26px;font-weight:700}.cost-box.invalid .cost-detail{color:var(--error)}.cost-box.incomplete .cost-detail{color:var(--muted)}.clear-selections{align-self:flex-end;font-size:13px}.download-bar{justify-content:flex-end;align-items:center;gap:16px;display:flex}.download-size{color:var(--subtle);white-space:nowrap;font-size:13px}.download-bar .primary{min-width:260px}.download-error{text-align:right}.preview-column{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.preview-head{justify-content:space-between;align-items:baseline;gap:12px;padding:0 2px;display:flex}.preview-title{font-size:14px;font-weight:600}.preview-note{color:var(--muted);font-size:13px}.preview-frame{background:#0f3b2c;border-radius:6px;width:100%;overflow:hidden;box-shadow:0 1px 2px #0000001f,0 8px 24px #0000001a}.preview-empty{aspect-ratio:16/9;color:var(--muted);border:1px dashed var(--control-border);border-radius:6px;place-items:center;display:grid}.preview-stale{color:var(--error);margin:0;font-size:13px}.preview-stale.partial{color:var(--muted)}@media (max-width:900px){.generator{height:auto}.topbar{padding:0 16px}.topbar-left{gap:14px}.brand+.back-link,.save-status:not(.error){display:none}.home-main{padding:20px 16px 32px}.ticket-row{flex-wrap:wrap;gap:4px 16px;padding:0 16px 12px}.ticket-open{flex-basis:100%;padding:12px 0 0}.workspace{flex-direction:column-reverse;gap:16px;padding:16px}.form-card{width:100%;overflow:visible}.preview-note{display:none}.download-bar .primary{flex:1;min-width:0}}
