:root{--ink:#162b30;--muted:#68797d;--green:#176b54;--lime:#d7edaa;--line:#dfe7e4;--paper:#f3f6f3;--white:#fff;--orange:#b45d27}*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;background:var(--paper);color:var(--ink)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:10px 15px;font-weight:650}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid #8fc3b5;outline-offset:3px}a{color:var(--green)}input,textarea,select{display:block;width:100%;padding:11px;border:1px solid #cad6d1;border-radius:8px;background:white;color:var(--ink);margin:5px 0 16px}input:focus,textarea:focus,select:focus{outline:2px solid #9fcebd}textarea{resize:vertical;min-height:95px}label{font-size:13px;font-weight:600}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;margin-bottom:5px}h2{font-size:22px;letter-spacing:-.5px}h3{font-size:17px}small,.small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.6px;color:var(--muted);margin-bottom:10px}.primary{background:var(--green);color:white}.primary:hover{background:#0f5140}.secondary{background:white;border:1px solid var(--line)}.quiet{background:transparent;color:var(--muted)}.danger{color:#a22e35}.version{font-size:10px;font-weight:750;letter-spacing:1.2px}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;max-width:1000px;margin:auto;gap:80px;padding:50px}.login-brand h1{font-size:43px;margin-top:22px}.login-brand p{font-size:21px;color:var(--muted);line-height:1.6}.brand-mark{display:inline-grid;place-items:center;background:var(--green);color:var(--lime);font-size:18px;letter-spacing:-1px;font-weight:850;border-radius:11px;width:45px;height:45px}.login-card{background:white;border:1px solid var(--line);padding:36px;border-radius:18px;box-shadow:0 15px 50px #162b3008}.login-card .primary{width:100%;margin-top:5px}.login-card .small{margin:24px 0 0}.login-card h2{font-size:30px}#login-error,#modal-error{color:#ad2833;font-size:13px;margin-top:12px}#shell{min-height:100vh}#shell:not([hidden]){display:flex}aside{width:244px;min-height:100vh;padding:30px 20px;position:fixed;inset:0 auto 0 0;background:#152e2c;color:white;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;font-weight:750;font-size:17px}.brand .brand-mark{background:#254a40}.brand small{display:block;letter-spacing:2px;font-size:8px;color:#9dafaa;margin-top:4px}nav{margin-top:50px;display:grid;gap:8px}nav button{background:transparent;color:#b2c4bd;text-align:left;display:flex;align-items:center;gap:14px;padding:13px}nav button span{flex:1}nav button.active{background:#29473e;color:#e3f2cc}nav b{background:#35564a;padding:0 7px;border-radius:5px;font-size:11px}.aside-bottom{margin-top:auto;padding:25px 10px 0;color:#a8beb4;font-size:12px}.aside-bottom p{margin:12px 0 24px}.aside-bottom .quiet{color:#d2e0d9;margin-left:-15px}#identity{color:white;font-weight:650}main{margin-left:244px;padding:40px 44px;width:calc(100% - 244px);max-width:1700px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:35px}.header-actions{display:flex;gap:9px;align-items:center}.session-note{font-size:11px;color:var(--muted);max-width:115px;margin-right:10px}footer{border-top:1px solid var(--line);padding-top:18px;margin-top:32px;font-size:11px;color:var(--muted)}.notice{background:#fcebdc;color:#7a431e;border:1px solid #edc49d;border-radius:10px;padding:12px 16px;margin-bottom:20px}.hero{background:#dfeace;border-radius:16px;padding:30px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.hero h2{font-size:27px;margin-bottom:8px}.hero p{color:#52634d;max-width:600px;margin-bottom:0}.hero .symbol{font-size:60px;color:#7c9970;line-height:1}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0 30px}.stat{padding:23px;background:white;border:1px solid var(--line);border-radius:12px}.stat strong{display:block;font-size:34px;letter-spacing:-1px}.stat span{font-size:12px;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:center;margin:25px 0 14px}.section-head h2{font-size:18px;margin:0}.card{border:1px solid var(--line);border-radius:12px;padding:22px;background:white}.list{display:grid;gap:12px}.row-card{display:flex;justify-content:space-between;align-items:center;gap:15px}.row-card h3{margin:5px 0}.row-card p{margin:0;font-size:13px;color:var(--muted)}.tag{display:inline-block;padding:3px 8px;border-radius:5px;font-size:10px;font-weight:750;background:#edf3ee;color:#547363}.tag.high{background:#fff0de;color:#a65a20}.tag.closed{background:#ebeff1;color:#68797d}.counter{background:#e7f0d4;color:#456d29;border-radius:20px;padding:4px 9px;font-size:11px;font-weight:750}.code{font-size:10px;color:var(--muted);letter-spacing:1px}.empty{padding:45px;text-align:center;border:1px dashed #c8d7cc;border-radius:13px;color:var(--muted)}.empty h3{color:var(--ink);margin-bottom:8px}.columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:22px}.stack{display:grid;align-content:start;gap:18px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.timer{font-variant-numeric:tabular-nums;font-size:38px;letter-spacing:-1px;margin:10px 0}.timer-state{font-size:12px;color:var(--green)}.detail-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.chat{display:flex;flex-direction:column;min-height:500px}.messages{height:390px;overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 8px 18px 0;margin:16px 0}.message{background:#f0f4f0;padding:12px 14px;border-radius:10px;margin:0 35px 12px 0;overflow-wrap:anywhere}.message.mine{background:#e1eedb;margin:0 0 12px 35px}.message small{color:var(--muted);display:block;margin-bottom:4px}.message p{white-space:pre-wrap;margin:0}.message img{max-width:100%;max-height:210px;border-radius:7px;margin-top:8px;cursor:zoom-in}.readers{font-size:10px;color:var(--muted);margin-top:6px}.composer textarea{min-height:75px;margin-bottom:8px}.composer .toolbar{align-items:center;justify-content:space-between;margin-bottom:0}.file-label{font-size:12px;color:var(--green);cursor:pointer}.file-label input{font-size:11px;max-width:220px;padding:4px;margin:5px 0}.back{padding-left:0;margin-bottom:15px}.prewrap{white-space:pre-wrap}.subheading{font-size:13px;margin:25px 0 10px}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;width:min(560px,calc(100vw - 32px));max-height:90vh;overflow:auto;color:var(--ink)}dialog::backdrop{background:#102a2870;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:16px}.modal-head h2{margin:0}#modal-form>.primary{width:100%}#image-modal{width:min(1100px,96vw)}#full-image{max-width:100%;max-height:78vh;display:block;margin:auto}.checkbox{display:flex;align-items:center;gap:8px;font-size:13px}.checkbox input{width:auto;margin:0}.member-choices{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0 20px}.search{max-width:360px;margin-bottom:20px}.saving{color:var(--green);font-size:12px}[hidden]{display:none!important}@media(max-width:1100px){main{padding:30px 24px}.columns{grid-template-columns:1fr}.header-actions .session-note{display:none}aside{width:210px}main{margin-left:210px;width:calc(100% - 210px)}}@media(max-width:700px){.login-shell{grid-template-columns:1fr;gap:28px;padding:25px}.login-brand h1{font-size:30px}.login-brand p{font-size:16px}.login-card{padding:24px}aside{position:static;width:100%;min-height:auto;padding:16px}.brand{font-size:16px}nav{display:flex;margin-top:15px;gap:3px}nav button{font-size:12px;padding:9px;gap:5px;flex:1}nav b{display:none}.aside-bottom{display:none}#shell:not([hidden]){display:block}main{margin:0;width:100%;padding:24px 16px}header{align-items:start;flex-direction:column;margin-bottom:22px}.header-actions{width:100%}.header-actions .primary{margin-left:auto}h1{font-size:26px}.stats{gap:8px}.stat{padding:15px}.stat strong{font-size:27px}.stat span{font-size:10px}.hero{padding:22px}.hero h2{font-size:23px}.hero .symbol{display:none}.card{padding:17px}.row-card{align-items:start}.row-card button{padding:8px 10px;font-size:12px}.messages{height:350px}}

.business-panel{margin-top:24px}.table-scroll{overflow-x:auto;margin:24px 0}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}tfoot{background:#eef4e8}.block{display:block;color:var(--muted)}.form-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.ticket-group{margin:24px 0}.ticket-overdue{background:#ffe0d5;border-left:5px solid #c55235}.ticket-soon{background:#fff6be;border-left:5px solid #bc910e}.ticket-later{background:#daf1de;border-left:5px solid #3c8a50}.ticket-none,.ticket-closed{background:#edf0f1;border-left:5px solid #7b858c}.selected{background:#deedcf;border-color:#6d9561}nav{margin-top:28px}aside{overflow-y:auto}#catalog-import{margin-top:24px}@media(max-width:700px){nav{flex-wrap:wrap}nav button{flex:1 0 30%}.form-grid{grid-template-columns:1fr}}

.grant-list{display:grid;gap:8px;margin-bottom:22px}.grant-list>div{border-bottom:1px solid var(--line);padding:8px;display:grid;grid-template-columns:1fr auto auto;gap:12px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.photo-grid img{width:100%;max-height:260px;object-fit:contain}.photo-grid figure{margin:0}canvas{border:1px solid var(--line);background:white;width:100%;height:150px;touch-action:none;display:block;margin:8px 0}#google-result{white-space:pre-wrap;overflow-wrap:anywhere}nav{gap:3px}nav button{padding:9px}#modal .checkbox{margin:12px 0}@media(max-width:700px){.grant-list>div{grid-template-columns:1fr}.photo-grid{grid-template-columns:1fr 1fr}}
/* v0.3: calm workspace, local operation feedback, compact readable history. */
:root{--surface:#fff;--bg:#f3f7f5;--accent:#207e76;--ink:#213c39;--line:#d7e5df}body{background:var(--bg);color:var(--ink)}aside{background:#163b38}.card{border-color:var(--line);box-shadow:0 5px 20px #254e3d06}button.primary{background:#227e72}button.secondary{background:#f6faf8;border-color:#cedfd8}button{transition:background .18s,box-shadow .18s}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #63a9a2;outline-offset:2px}.global-search{display:flex;align-items:center;gap:16px;margin:0 0 24px;background:#fff;border:1px solid var(--line);padding:12px 18px;border-radius:16px}.global-search label{white-space:nowrap;font-weight:600}.global-search input{margin:0;max-width:none}.segmented{display:flex;gap:10px;margin-bottom:20px}.selected{background:#d8ebe3!important;color:#16594b}.paid{background:#d9eee1;color:#216441}.unpaid{background:#fff0d4;color:#875b21}.closed{background:#e5e9ec;color:#53646a}.job-heading{display:flex;justify-content:space-between;gap:20px}.job-heading .toolbar{align-content:flex-start}.line-editor{display:flex;gap:12px;align-items:flex-end;padding:18px 0}.line-editor label:first-child{flex:1}.line-editor label:nth-child(2){max-width:110px}.line-editor button{margin-bottom:16px;white-space:nowrap}.total-banner{display:flex;justify-content:space-between;align-items:center;background:#e3f0ea;border-radius:12px;padding:20px;font-size:18px}.total-banner strong{font-size:26px}td small,.time-list span{display:block}.time-list article,.log-entry{padding:14px 0;border-bottom:1px solid var(--line)}.time-list article strong{display:block}.action-bar{display:flex;flex-wrap:wrap;gap:12px;position:sticky;bottom:0;z-index:5;border:1px solid #c2d7ce}.save-status{position:fixed;bottom:16px;right:24px;z-index:9;border:1px solid #b9d7c7;background:#e5f2e9;max-width:500px}.save-status[data-kind=error],.local-feedback[data-kind=error],.inline-warning{background:#fff1e7;color:#8f452a;border-radius:8px;padding:12px}.save-status[data-kind=pending]{background:#fff5d9}.local-feedback{font-size:14px}.local-feedback[data-kind=success]{color:#27684b}.success-flash{background:#bce6c7!important;color:#174a2a!important}.notice.toast{position:fixed;bottom:74px;right:24px;max-width:540px;z-index:30;box-shadow:0 8px 25px #17382c20}.search-result{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:9px;width:100%;margin:10px 0;white-space:normal}.search-result span{font-weight:400}.customer-matches{max-height:280px;overflow:auto;background:#f0f7f3;border-radius:12px;padding:12px}.customer-matches:empty{display:none}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}#unified-form>.card{margin:18px 0}#content>.card{margin-bottom:18px}.photo-grid img{max-width:100%;border-radius:10px}.photo-grid a{display:block;max-width:220px}#pricing-validation:not(:empty){background:#fff0df;padding:12px;border-radius:8px}#slot-results .tag{display:inline-block;margin:6px}@media(max-width:800px){.global-search,.job-heading,.line-editor{flex-direction:column;align-items:stretch}.global-search label{white-space:normal}.line-editor label:nth-child(2){max-width:none}.save-status{left:12px;right:12px;bottom:8px;font-size:13px}.action-bar{position:static;padding-bottom:36px}.notice.toast{left:12px;right:12px;bottom:60px}.time-list strong{font-size:14px}}@media print{aside,.global-search,.action-bar,.save-status,.toast,button{display:none!important}main{margin:0!important;padding:0!important}.table-scroll{overflow:visible}table{min-width:0!important;width:100%}.card{break-inside:avoid;box-shadow:none}}
.weekday{display:grid;grid-template-columns:110px 1fr auto;align-items:start;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.time-range{display:flex;gap:10px;align-items:center}.time-range input{width:140px;margin-bottom:8px}.exception-day{background:#f4f8f6;border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0}.exception-day input[type=date]{max-width:220px}@media(max-width:700px){.weekday{grid-template-columns:1fr}.time-range input{width:110px}}
/* 0.4 */
body[data-theme=blue]{--accent:#356783;--primary:#356783;background:#f0f5f9}body[data-theme=sand]{--accent:#796346;--primary:#796346;background:#f6f3ed}body[data-density=compact] .card{padding:16px}body[data-sidebar=hidden] aside{display:none}body[data-sidebar=hidden] #shell{grid-template-columns:1fr}body[data-sidebar=open] aside{display:flex}#notice>button:first-child{float:right;font-size:1.3rem;padding:0 8px}#notice pre{white-space:pre-wrap;font-size:.75rem;max-height:180px;overflow:auto}.builder-category{border:1px solid #ccddd3;border-radius:14px;padding:18px;margin:15px 0;background:#f7faf7}.builder-service{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-top:1px solid #dce7df}.builder-service small{display:block}.booking-preview{width:100%;height:70vh;border:1px solid #d4e3d9;border-radius:15px}.mobile-preview{max-width:390px;display:block;margin:auto}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;min-height:22px;padding:0;margin:3px;border:1px solid #c1d6c9;border-radius:50%;background:#edf5ef;color:#526d5d;font-size:.72rem;vertical-align:middle}.manual-section{padding:20px 0;border-bottom:1px solid #dbe7df}.manual-section p{line-height:1.75}#manual-dialog{width:min(900px,95vw);max-height:90vh;overflow:auto}.help-highlight{outline:4px solid #a9d7bc;outline-offset:8px}.card[data-deadline=overdue]{border-left:5px solid #c66b68;background:#fff6f4}.card[data-deadline=soon]{border-left:5px solid #dbb968;background:#fffaf0}.card[data-deadline=later]{border-left:5px solid #8cb59a}.card[data-deadline=closed]{opacity:.75}a{color:#176b55}details>summary{cursor:pointer}#form-editor textarea[readonly]{font-family:monospace;font-size:.8rem}input+.help-icon,select+.help-icon,textarea+.help-icon{margin-left:0}.manual-section h3{font-size:1.2rem}.aside-bottom>button{margin-bottom:8px}@media(max-width:800px){body:not([data-sidebar=open]) aside{display:none}body:not([data-sidebar=open]) #shell{grid-template-columns:1fr}body[data-sidebar=open] aside{position:fixed;z-index:80;left:0;top:0;bottom:0;width:280px;overflow:auto}#sidebar-toggle{position:relative;z-index:90}.header-actions{flex-wrap:wrap}.builder-service{align-items:start;flex-direction:column}#manual-dialog{height:95vh;width:96vw;max-height:95vh}}
body[data-theme=blue]{--green:#356783;--lime:#d6e9f0;--paper:#f0f5f9}body[data-theme=sand]{--green:#796346;--lime:#eadfbc;--paper:#f6f3ed}

.online-catalogue{border-left:5px solid #287d95;background:linear-gradient(120deg,#eaf7fa,#fff)}.online-badge{background:#d7eef5;color:#16566b}.builder-service small{display:block;max-width:38rem}.toast{max-height:70vh;overflow:auto;white-space:pre-line}#categories summary{font-weight:700;padding:1rem;cursor:pointer;border:1px solid #bfd5cc;border-radius:14px;margin:12px 0}#survey-save-state{display:block;padding:.6rem;color:#176b55}#survey-blocks{padding:1rem}

.grant-tools{padding:18px;background:#edf5f0;border-radius:16px;margin:18px 0}.catalogue-row{margin-bottom:16px}.quick-price{margin-top:16px;border-top:1px solid #c5d8cd;padding-top:16px}.grant-tools .toolbar button{font-size:.85rem}.grant-list>div[hidden]{display:none!important}nav button[data-view=prices],nav button[data-view=google]{margin-top:10px}
