:root{--bg:#ffffff;--bg-tint:#f4fff4;--card:#ffffff;--line:#e7ece7;--ink:#1c1c1c;--ink-2:#4a514b;--muted:#8c948e;--green:#3a884b;--green-bright:#3ead58;--green-dark:#2f6e3d;--sage:#b2d4ba;--sage-wash:#eaf4ec;--paid:#2e7d52;--paid-bg:#e3f3ea;--pending:#9a6a00;--pending-bg:#fbf0d8;--cancel:#8c948e;--cancel-bg:#eef0ee;--form:var(--green);--form-bg:var(--sage-wash);--shopify:#5a7d3c;--shopify-bg:#e7f0dd;--shadow-sm:0 1px 2px rgba(47,110,61,0.06);--shadow-md:0 6px 20px rgba(47,110,61,0.10);--radius:16px;--radius-sm:11px;--font:"Poppins",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:radial-gradient(1200px 480px at 50% -160px,var(--bg-tint),transparent 70%),var(--bg);color:var(--ink);font-family:var(--font);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--green-dark)}.wrap{max-width:520px;margin:0 auto;padding:clamp(20px,5vw,36px) 16px 72px}.brand{text-align:center;margin-bottom:6px}.brand .logo{height:54px;width:auto;margin:6px auto 12px;display:block}.brand h1{font-size:22px;font-weight:600;margin:0;letter-spacing:.2px}.brand p{color:var(--ink-2);margin:6px 0 0;font-size:15px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(18px,5vw,26px);margin-top:22px;box-shadow:var(--shadow-md)}.field{margin-bottom:17px}.field>label{display:block;font-size:13px;font-weight:600;letter-spacing:.2px;margin-bottom:7px;color:var(--ink)}.field .req{color:var(--green-bright)}input,select,textarea{width:100%;padding:12px 13px;font-size:16px;font-family:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease}input::placeholder,textarea::placeholder{color:#b4bcb6}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--green-bright);box-shadow:0 0 0 3px rgba(62,173,88,.18)}textarea{min-height:88px;resize:vertical}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%233a884b' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px}.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:13px;gap:13px}.phone-grid{display:grid;grid-template-columns:116px 1fr;grid-gap:9px;gap:9px}button.primary{width:100%;padding:15px;margin-top:4px;font-family:inherit;font-size:16px;font-weight:600;color:#fff;background:var(--green);border:none;border-radius:13px;cursor:pointer;box-shadow:0 4px 14px rgba(47,110,61,.22);transition:background .15s ease,transform .05s ease,box-shadow .15s ease}button.primary:hover{background:var(--green-dark)}button.primary:active{transform:translateY(1px)}button.primary:disabled{opacity:.62;cursor:progress;box-shadow:none}button.primary:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(62,173,88,.3),0 4px 14px rgba(47,110,61,.22)}.err{color:#b3261e;font-size:12.5px;margin-top:5px}.banner-err{background:#fdecea;border:1px solid #f5c6c2;color:#b3261e;border-radius:var(--radius-sm)}.banner-err,.banner-ok{padding:10px 12px;font-size:14px;margin-bottom:16px}.banner-ok{background:#eaf7ee;border:1px solid #bfe3c9;color:#1e6b34;border-radius:var(--radius-sm)}.sec{font-size:15px;font-weight:650;margin:24px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--line)}.sec:first-of-type{margin-top:4px}.hint{color:var(--muted);font-size:12.5px;margin-top:5px}.hint code{background:var(--bg-tint);border:1px solid var(--line);padding:1px 5px;border-radius:4px;font-size:12px;color:var(--ink-2)}.price-note{text-align:center;color:var(--ink-2);font-size:13px;margin-top:16px}.price-note .dot{color:var(--sage);margin:0 6px}input[type=file]{padding:9px 11px;font-size:14px;color:var(--ink-2)}input[type=file]::-webkit-file-upload-button{font-family:inherit;font-size:13px;font-weight:600;margin-right:11px;padding:8px 13px;color:var(--green-dark);background:var(--sage-wash);border:1px solid var(--sage);border-radius:9px;cursor:pointer}input[type=file]::file-selector-button{font-family:inherit;font-size:13px;font-weight:600;margin-right:11px;padding:8px 13px;color:var(--green-dark);background:var(--sage-wash);border:1px solid var(--sage);border-radius:9px;cursor:pointer}.center{min-height:72vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px}.big-emoji{font-size:3rem}.link{color:var(--green-dark);font-weight:600;text-decoration:none}.link:hover{text-decoration:underline}.card table{width:100%;border-collapse:collapse;font-size:14.5px}.card table td{padding:8px 0;border-bottom:1px solid var(--line);color:var(--ink-2)}.card table tr:last-child td{border-bottom:none}.admin-wrap{max-width:1120px;margin:0 auto;padding:28px 18px 72px}.admin-head{flex-wrap:wrap;justify-content:space-between;margin-bottom:6px}.admin-head,.admin-head .brand-row{display:flex;align-items:center;gap:12px}.admin-head .logo{height:34px;width:auto}.admin-head h1{font-size:24px;font-weight:600;margin:0}.admin-head .sub{color:var(--muted);font-size:13px}.logout{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;font-weight:600;background:#fff;padding:8px 14px;border-radius:10px;transition:border-color .15s ease,color .15s ease}.logout:hover{border-color:var(--sage);color:var(--green-dark)}.tabs{display:flex;gap:6px;margin:18px 0 22px;border-bottom:1px solid var(--line)}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;cursor:pointer;font-family:inherit;font-size:15px;font-weight:500;color:var(--muted);padding:10px 16px;border:none;border-bottom:2.5px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}.tab:hover{color:var(--ink)}.tab.active{color:var(--green-dark);border-bottom-color:var(--green);font-weight:600}.tiles{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:24px}@media (max-width:640px){.tiles{grid-template-columns:repeat(2,1fr)}}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.tile .k{font-size:28px;font-weight:700;line-height:1.1;letter-spacing:-.5px}.tile .l{font-size:12.5px;color:var(--muted);margin-top:4px}.tile.accent{background:linear-gradient(180deg,var(--bg-tint),#fff);border-color:var(--sage)}.tile.accent .k{color:var(--green-dark)}.section-label{font-size:13px;font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.6px;margin:4px 0 14px}.section-label .pill{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:999px;background:var(--sage-wash);color:var(--green-dark);font-size:12px;letter-spacing:.2px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));grid-gap:16px;gap:16px}.ocard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .12s ease}.ocard:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.ocard .media{height:132px;background:var(--sage-wash);display:flex;align-items:center;justify-content:center;color:var(--sage);font-size:34px;overflow:hidden}.ocard .media img{width:100%;height:100%;object-fit:cover}.ocard .body{padding:14px 15px 16px}.ocard .carddate{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.3px;color:var(--green-dark);background:var(--sage-wash);padding:2px 8px;border-radius:999px;margin-bottom:8px}.ocard .who{font-weight:600;font-size:15.5px}.ocard .meta{color:var(--ink-2);font-size:13.5px;margin-top:3px}.ocard .desc{color:var(--muted);font-size:13px;margin-top:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ocard .foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.ocard .amount{font-weight:700;font-size:15px}.badges{display:flex;gap:6px}.daygroup{margin-bottom:26px}.muted-line{color:var(--muted);font-size:13.5px;margin:0 0 4px}.dayhead{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.dayhead .date{font-weight:600;font-size:16px}.dayhead .cnt,.dayhead .rel{color:var(--muted);font-size:13px}.dayhead .cnt{margin-left:auto}.srow{display:grid;grid-template-columns:40px 1.4fr 1fr .8fr auto auto;grid-gap:12px;gap:12px;align-items:center;padding:9px 6px;border-bottom:1px solid var(--line);font-size:14px}.srow:last-child{border-bottom:none}.srow .thumb,.srow .thumb-empty{width:38px;height:38px;border-radius:9px;object-fit:cover;border:1px solid var(--line)}.srow .thumb-empty{border-style:dashed;display:inline-flex;align-items:center;justify-content:center;color:var(--sage);font-size:15px}.srow .who{font-weight:600}.srow .sub{color:var(--muted);font-size:12.5px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px;align-items:center}.toolbar input,.toolbar select{width:auto;font-size:14px;padding:9px 12px}.count{color:var(--muted);font-size:13px}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;text-transform:capitalize;white-space:nowrap}.badge.shopify{background:var(--shopify-bg);color:var(--shopify)}.badge.form{background:var(--form-bg);color:var(--form)}.badge.manual{background:var(--sage-wash);color:var(--green-dark)}.badge.paid{background:var(--paid-bg);color:var(--paid)}.badge.quoted{background:var(--pending-bg);color:var(--pending)}.badge.draft{background:#eef0ee;color:#5f5e5a}.badge.cancelled{background:var(--cancel-bg);color:var(--cancel)}.landing{text-align:center}.landing-h{font-size:17px;font-weight:600;margin:4px 0 6px}.landing-p{color:var(--ink-2);font-size:14px;margin:0 auto 16px;max-width:360px}.landing-actions{display:flex;flex-direction:column;gap:10px}.btn-ghost,.btn-primary{display:block;text-align:center;text-decoration:none;padding:13px 16px;border-radius:12px;font-weight:600;font-size:15px}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-ghost{background:#fff;color:var(--green-dark);border:1px solid var(--sage)}.btn-ghost:hover{background:var(--sage-wash)}.landing-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:22px 0}.landing-divider:after,.landing-divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.builder{max-width:720px}.builder .section{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.builder .section:first-of-type{border-top:none;padding-top:0}.builder h3{font-size:15px;font-weight:600;margin:0 0 12px}.lineitem{display:grid;grid-template-columns:1.4fr 56px 1fr 90px 28px;grid-gap:8px;gap:8px;align-items:start;margin-bottom:8px}.lineitem .comment{grid-column:1/-1}.lineitem-rm{background:none;border:none;color:var(--muted);cursor:pointer;font-size:18px;padding-top:8px}.addline{background:var(--sage-wash);color:var(--green-dark);border:1px solid var(--sage);border-radius:9px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer}.totals{background:var(--bg-tint);border:1px solid var(--sage);border-radius:12px;padding:14px 16px;margin-top:18px}.totals .row{display:flex;justify-content:space-between;font-size:14px;padding:3px 0}.totals .row.grand{font-weight:700;font-size:16px;border-top:1px solid var(--sage);margin-top:6px;padding-top:8px}.actionbar{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.actionbar form{display:inline}.btn-sm{padding:10px 14px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink)}.btn-sm.go{background:var(--green);color:#fff;border-color:var(--green)}.btn-sm.warn{color:#b3261e;border-color:#f0c0bc}.linkbox{display:flex;gap:8px;margin-top:14px}.linkbox input{font-family:var(--font-mono,monospace);font-size:13px}.missing{background:#fdecea;border:1px solid #f5c6c2;color:#b3261e;padding:10px 12px;border-radius:10px;font-size:13px;margin-top:12px}.missing ul{margin:6px 0 0;padding-left:18px}.backlink{color:var(--green-dark);font-size:13px;text-decoration:none}.logout{background:none;border:1px solid var(--line);border-radius:9px;padding:7px 12px;font-size:13px;cursor:pointer;color:var(--ink-2)}.newbtn{background:var(--green);color:#fff;border:none;border-radius:10px;padding:9px 14px;font-size:14px;font-weight:600;text-decoration:none}.invoice{max-width:540px}.inv-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px}.inv-line .sub{color:var(--muted);font-size:12.5px}.inv-tot{display:flex;justify-content:space-between;font-size:14px;padding:3px 0;color:var(--ink-2)}.inv-tot.grand{font-weight:700;font-size:18px;color:var(--ink);border-top:1px solid var(--line);margin-top:8px;padding-top:10px}.inv-photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.inv-photos img{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.paid-stamp{text-align:center;color:var(--paid);font-weight:700;background:var(--paid-bg);border-radius:10px;padding:10px;margin-bottom:14px}.empty{text-align:center;padding:48px 20px;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);background:var(--card)}.empty .big-emoji{font-size:2.4rem}.todo-note{margin-top:22px;padding:11px 13px;border:1px dashed var(--line);border-radius:var(--radius-sm);color:var(--muted);font-size:12.5px}