.app-shell{width:min(1480px,100%);min-height:100vh;margin:0 auto;padding:14px clamp(18px,4vw,56px) 22px}.app-header{margin-bottom:14px}.eyebrow{color:var(--green-700);letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:800;display:block}.app-header h1{color:var(--green-950);letter-spacing:-.035em;margin:0;font-size:clamp(1.75rem,3vw,2.55rem);line-height:1.18}.workspace{grid-template-columns:minmax(0,1.35fr) minmax(360px,.75fr);align-items:start;gap:28px;display:grid}.form-panel,.preview-panel{border:1px solid var(--border);background:var(--surface);border-radius:20px;box-shadow:0 16px 48px #18413512}.form-panel{overflow:hidden}.form-section{border-bottom:1px solid #e6ece9;padding:25px 28px 28px}.form-section:last-child{border-bottom:0}.section-heading h2,.preview-heading h2{color:var(--green-950);margin:0;font-size:1.15rem}.section-heading p{color:var(--muted);margin:5px 0 0;font-size:.9rem}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field-grid.three-columns{grid-template-columns:1fr 1fr .8fr}.field-wide{grid-column:1/-1}.field{color:#34443f;gap:7px;min-width:0;font-size:.9rem;font-weight:700;display:grid}.field input,.field select,.field textarea{width:100%;min-width:0;color:var(--ink);background:#fff;border:1px solid #c9d5d0;border-radius:10px;outline:none;font-weight:500;transition:border-color .18s,box-shadow .18s}.field input,.field select{height:44px;padding:0 12px}.field textarea{resize:vertical;min-height:92px;padding:11px 12px;line-height:1.55}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green-700);box-shadow:0 0 0 3px #2b745f21}.repeat-list{gap:12px;margin-bottom:14px;display:grid}.repeat-card{background:#fbfcfb;border:1px solid #dce5e1;border-radius:13px;padding:16px}.repeat-card.compact{padding-top:13px}.repeat-card-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.repeat-card-heading h3{color:var(--green-800);margin:0;font-size:.93rem}.text-button{background:0 0;border:0;padding:4px 7px;font-size:.83rem;font-weight:700}.text-button.danger{color:var(--danger)}.text-button:disabled{color:#a7b0ad}.secondary-button{min-height:40px;color:var(--green-800);background:var(--green-50);border:1px solid #b9d1c7;border-radius:9px;padding:8px 14px;font-weight:750}.secondary-button:hover{background:var(--green-100)}.choice-field{border:0;min-width:0;margin:0;padding:0}.choice-field legend{color:#34443f;margin-bottom:7px;font-size:.9rem;font-weight:700}.segmented-control{background:#f4f7f5;border:1px solid #d4ded9;border-radius:11px;grid-template-columns:1fr 1fr;gap:7px;padding:4px;display:grid}.segmented-control label{position:relative}.segmented-control input{opacity:0;pointer-events:none;position:absolute}.segmented-control span{min-height:34px;color:var(--muted);border-radius:7px;place-items:center;font-weight:700;display:grid}.segmented-control input:checked+span{color:#fff;background:var(--green-700);box-shadow:0 3px 8px #205c4b33}.segmented-control input:focus-visible+span{outline:3px solid #2b745f3d}.preview-panel{padding:24px;position:sticky;top:20px}.preview-heading{justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:17px;display:flex}.preview-heading h2{margin-top:4px}.live-indicator{color:var(--green-700);font-size:.76rem;font-weight:750}.line-stage{background:#dce9e4;border:1px solid #d5e0dc;border-radius:14px;padding:20px 14px}.line-bubble{background:#fff;border-radius:4px 13px 13px;width:calc(100% - 10px);padding:16px;position:relative;box-shadow:0 2px 7px #1c39311a}.line-bubble:before{content:"";border-top:10px solid #fff;border-left:10px solid #0000;width:0;height:0;position:absolute;top:0;left:-8px}.line-bubble pre{overflow-wrap:anywhere;white-space:pre-wrap;color:#1f2825;margin:0;font-family:inherit;font-size:.93rem;line-height:1.65}.validation-summary{color:#6c5626;background:var(--warm);border:1px solid #ecd8ad;border-radius:10px;margin:14px 0;padding:12px 13px;font-size:.83rem}.validation-summary strong{margin-bottom:5px;display:block}.validation-summary ul{margin:0;padding-left:19px}.validation-summary p{margin:4px 0 0}.copy-button{color:#fff;background:var(--green-700);border:0;border-radius:11px;width:100%;min-height:48px;font-weight:800;box-shadow:0 8px 17px #2367532e}.copy-button:hover{background:var(--green-800)}.copy-button:focus-visible,.secondary-button:focus-visible,.text-button:focus-visible{outline-offset:2px;outline:3px solid #2b745f40}.toast{min-height:20px;color:var(--green-800);text-align:center;margin-top:8px;font-size:.82rem;font-weight:750}@media (width<=1100px){.workspace{grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:20px}.field-grid.three-columns{grid-template-columns:1fr 1fr}.field-grid.three-columns .field:last-child{grid-column:1/-1}}@media (width<=900px){.app-shell{padding-top:22px}.workspace{grid-template-columns:1fr}.preview-panel{grid-row:2;position:static}}@media (width<=620px){.form-section,.preview-panel{padding:20px 17px}.form-panel,.preview-panel{border-radius:15px}.field-grid,.field-grid.three-columns{grid-template-columns:1fr}.field-grid.three-columns .field:last-child,.field-wide{grid-column:auto}.preview-heading{align-items:flex-start}}.order-actions{flex-wrap:wrap;gap:5px;display:flex}.order-actions .text-button{padding-inline:5px}.field-issues{gap:3px;display:grid}.field-message{font-size:.77rem;font-weight:650;line-height:1.4;display:block}.field-message.error{color:#a12f2f}.field-message.warning{color:#80631f}.copy-button:disabled{color:#eef1f0;box-shadow:none;background:#8f9c98}.live-indicator.incomplete{color:#a23b3b}.error-summary{color:#812d2d;background:#fff3f3;border-color:#e7c1c1}.warning-summary{color:#6c5626;background:var(--warm);border-color:#ecd8ad}@media (width<=720px){.order-actions{justify-content:flex-end}}.compact-basics-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:10px;display:grid}.custom-person-grid{border-top:1px dashed var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px;padding-top:14px;display:grid}.compact-choice .segmented-control{min-height:44px}.compact-visit-grid{grid-template-columns:1.25fr 1fr .85fr;align-items:start;gap:12px;display:grid}@media (width<=1180px){.compact-visit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.compact-basics-grid,.custom-person-grid,.compact-visit-grid{grid-template-columns:1fr}}.form-section{padding-block:16px}.section-heading{margin-bottom:11px}.repeat-list{gap:9px}.repeat-card{padding-block:13px}.route-endpoints-grid{border-top:1px dashed var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;padding-top:12px;display:grid}.travel-actions{justify-content:flex-end;margin:-38px 0 10px;display:flex}.compact-action{min-height:36px;padding-block:6px}.travel-list{border:1px solid #dce5e1;border-radius:11px;display:grid;overflow:hidden}.travel-row{background:#fbfcfb;border-bottom:1px solid #e3eae7;grid-template-columns:70px minmax(160px,1fr) 150px;align-items:center;gap:10px;padding:9px 12px;display:grid}.travel-row:last-child{border-bottom:0}.travel-index{color:var(--green-800);font-size:.82rem;font-weight:800}.travel-route{overflow-wrap:anywhere;min-width:0;font-size:.9rem}.travel-minutes{color:#34443f;align-items:center;gap:7px;font-size:.85rem;font-weight:700;display:flex}.travel-minutes input{background:#fff;border:1px solid #c9d5d0;border-radius:9px;outline:none;width:86px;height:40px;padding:0 9px}.travel-minutes input:focus{border-color:var(--green-700);box-shadow:0 0 0 3px #2b745f21}.travel-row .field-issues{grid-column:3}.clock-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.preview-heading{margin-bottom:13px}.preview-panel .copy-button{margin-top:14px}@media (width<=620px){.route-endpoints-grid,.clock-grid{grid-template-columns:1fr}.travel-actions{justify-content:flex-start;margin:-2px 0 10px}.travel-row{grid-template-columns:1fr;gap:5px;padding:10px}.travel-row .field-issues{grid-column:auto}.travel-minutes{width:100%}.travel-minutes input{width:min(130px,100%)}}:root{color:#21312d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green-950:#173f35;--green-800:#22614f;--green-700:#2b745f;--green-100:#e1f1eb;--green-50:#eff8f4;--ink:#21312d;--muted:#66736f;--border:#d7e0dc;--surface:#fff;--warm:#fff8ec;--danger:#a23b3b;background:#f4f7f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,sans-serif}*{box-sizing:border-box}html{background:#f4f7f5;min-width:320px}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
