/* Base structure retained from the former inline stylesheet. Component overrides follow. */

    *{box-sizing:border-box}
    body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
    button,input,select,textarea{font-family:inherit}
    button{cursor:pointer}
    .app{display:flex;min-height:100vh}
    .side{width:280px;background:#fff;border-right:1px solid var(--line);padding:22px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;gap:22px}
    .brand{display:flex;align-items:center;gap:12px;margin-bottom:12px}
    .logo{width:44px;height:44px;border-radius:16px;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}
    .brand b{font-size:20px}.brand small{display:block;color:var(--muted);font-size:14px;margin-top:2px}
    .nav{display:flex;flex-direction:column;gap:8px}
    .nav button{border:0;background:transparent;border-radius:16px;padding:13px 14px;text-align:left;color:#475569;font-weight:700;font-size:14px}
    .nav button.active{background:#0f172a;color:#fff;box-shadow:var(--shadow)}
    .nav button:hover:not(.active){background:#f1f5f9}
    .side-note{margin-top:auto;background:#f8fafc;border-radius:22px;padding:16px;font-size:14px;color:#475569;line-height:1.45}
    .main{margin-left:280px;width:calc(100% - 280px);padding:30px}
    .main.full{margin-left:0;width:100%}
    .mobile-top{display:none;background:#fff;border-bottom:1px solid var(--line);padding:14px 16px;position:sticky;top:0;z-index:10;align-items:center;justify-content:space-between}.mobile-top-actions{display:flex;align-items:center;gap:8px}.mobile-admin-command-trigger{display:none}
    .mobile-menu{display:none;background:#fff;border-bottom:1px solid var(--line);padding:12px}
    h1{font-size:32px;line-height:1.1;margin:0} h2{font-size:18px;margin:0} p{margin:0}.muted{color:var(--muted)}
    .top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:24px}.eyebrow{font-size:14px;font-weight:800;color:#64748b;margin-bottom:6px}
    .btn{border:0;background:#0f172a;color:#fff;border-radius:16px;padding:12px 16px;font-weight:800;display:inline-flex;align-items:center;gap:8px;justify-content:center}
    .btn:hover{filter:brightness(1.1)}.btn.secondary{background:#fff;color:#0f172a;border:1px solid var(--line)}.btn.danger{background:#b91c1c}.btn.full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.card-pad{padding:18px}
    .job-row{display:grid;grid-template-columns:90px 1fr 120px 110px 110px;gap:14px;align-items:center;width:100%;border:0;background:#fff;border-bottom:1px solid var(--line);padding:18px 20px;text-align:left}.job-row:hover{background:#f8fafc}.job-row:last-child{border-bottom:0;border-radius:0 0 22px 22px}.time{font-weight:900}.service{color:#64748b;font-size:14px;margin-left:4px}.price{font-weight:900;text-align:right}
    .badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:14px;font-weight:900;white-space:nowrap}.b-scheduled{background:var(--blue);color:var(--blue-text)}.b-assigned{background:var(--indigo);color:var(--indigo-text)}.b-dispatched{background:var(--violet);color:var(--violet-text)}.b-arrived{background:var(--amber);color:var(--amber-text)}.b-progress{background:var(--orange);color:var(--orange-text)}.b-completed,.b-paid{background:var(--green);color:var(--green-text)}.b-cancelled{background:var(--red);color:var(--red-text)}.b-requested{background:#f1f5f9;color:#334155}
    .search{width:100%;max-width:540px;border:1px solid var(--line);border-radius:18px;padding:13px 15px;margin:16px 0 20px;outline:none}.search:focus{border-color:#0f172a;box-shadow:0 0 0 3px rgba(15,23,42,.12)}
    .dispatch-empty{border:1px dashed #cbd5e1;border-radius:18px;padding:16px;text-align:center;color:#94a3b8;background:#fff}
    .dispatch-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
    .dispatch-actions .btn{padding:8px 11px;border-radius:12px;font-size:14px}
    .ops-insight{border:1px solid var(--line);border-radius:18px;background:#f8fafc;padding:12px 14px;color:#334155;font-size:14px;line-height:1.45}
    .ops-insight strong{display:block;color:#0f172a;margin-bottom:4px}.ops-insight.warn{border-color:#fdba74;background:#fff7ed}.ops-insight.danger{border-color:#fecaca;background:#fff1f2}
    .ops-alert-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:18px}.alert-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.alert-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:14px;font-weight:900;background:#f1f5f9;color:#334155}.alert-badge.warn{background:#ffedd5;color:#c2410c}.alert-badge.danger{background:#fee2e2;color:#b91c1c}.alert-badge.ok{background:#dcfce7;color:#15803d}
    .ops-priority-list{display:grid;gap:10px;margin-top:14px}.ops-priority-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff}.ops-priority-item.danger{border-color:#fecaca;background:#fff1f2}.ops-priority-item.warn{border-color:#fdba74;background:#fff7ed}.ops-priority-title{font-weight:900}.ops-priority-meta{color:#64748b;font-size:14px;line-height:1.45;margin-top:5px}.ops-priority-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.ops-priority-actions .btn{padding:8px 11px;border-radius:12px;font-size:14px}.ops-empty{border:1px dashed #cbd5e1;border-radius:18px;padding:16px;text-align:center;color:#64748b;background:#f8fafc;margin-top:14px}
    .customer-history-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-bottom:18px}
    .customer-history-card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:18px}
    .customer-history-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
    .customer-history-head h3{margin:0;font-size:20px;line-height:1.2}
    .customer-history-sub{color:#64748b;font-size:14px;line-height:1.45;margin-top:6px}
    .customer-history-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
    .customer-history-item{border:1px solid var(--line);border-radius:16px;padding:12px;background:#f8fafc}
    .customer-history-item-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
    table{width:100%;border-collapse:collapse;min-width:850px;font-size:14px}th{background:#f8fafc;color:#64748b;text-align:left;padding:14px}td{padding:14px;border-top:1px solid var(--line)}tr:hover td{background:#f8fafc}.table-wrap{overflow:auto}
    .detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin-top:18px}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.info{border:1px solid var(--line);border-radius:18px;padding:14px}.info small{color:#64748b;font-weight:900}.info p{font-weight:800;margin-top:7px}.memo{background:#f8fafc;border-radius:18px;padding:15px;margin-top:14px;line-height:1.5;color:#334155}.tech-list{display:flex;flex-direction:column;gap:9px}.tech-btn{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px;font-weight:900;text-align:left;white-space:normal;line-height:1.4;word-break:break-word}.tech-btn.active{background:#0f172a;color:#fff;border-color:#0f172a}.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:18px}.photo-boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.photo-placeholder{aspect-ratio:16/9;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:14px;text-align:center;padding:10px}.photo-thumb{aspect-ratio:16/9;width:100%;border:1px solid var(--line);border-radius:14px;object-fit:cover;background:#e2e8f0}.photo-meta{font-size:14px;color:#64748b;margin-top:8px}.photo-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.photo-preview-card{background:#0f172a;border-radius:26px;max-width:960px;width:100%;padding:18px;box-shadow:0 30px 80px rgba(15,23,42,.45)}.photo-preview-frame{background:#020617;border-radius:18px;overflow:hidden}.photo-preview-frame img{display:block;width:100%;max-height:75dvh;object-fit:contain;background:#020617}.photo-preview-caption{color:#cbd5e1;font-size:14px;margin-top:12px;text-align:center}
    .modal-back{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;padding:18px;z-index:50;overflow:auto}.modal-back.show{display:flex}.modal{background:#fff;border-radius:26px;width:100%;max-width:760px;max-height:calc(100dvh - 36px);box-shadow:0 30px 80px rgba(15,23,42,.25);overflow:hidden;display:flex;flex-direction:column}.modal form{display:flex;flex-direction:column;min-height:0;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding:20px;flex:0 0 auto}.modal-body{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:20px 20px 28px;overflow:auto;-webkit-overflow-scrolling:touch;scroll-padding-bottom:120px}.field.span{grid-column:span 2}.field label{display:block;color:#64748b;font-size:14px;font-weight:900;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:16px;padding:12px 13px;outline:none}.field textarea{resize:vertical;min-height:76px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding:18px 20px;flex:0 0 auto;background:#fff}
    .tech-mobile{max-width:560px;margin:0 auto}.location{background:#f8fafc;border-radius:18px;padding:14px;margin-top:12px;color:#334155}.public{max-width:680px;margin:0 auto}.center{text-align:center}.success{width:68px;height:68px;margin:0 auto;border-radius:50%;background:#dcfce7;color:#15803d;display:flex;align-items:center;justify-content:center;font-size:34px}.public-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.hidden{display:none!important}
    .auth-shell{max-width:1080px;margin:0 auto;padding-top:30px}.auth-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:18px;margin-top:18px}.auth-panel{background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:24px}.auth-actions{display:grid;gap:12px}.auth-action{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:20px;background:#fff;text-align:left}.auth-action b{display:block;font-size:16px}.auth-action span{display:block;color:var(--muted);font-size:14px;line-height:1.45;margin-top:6px}.auth-breadcrumb{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:14px;margin-bottom:12px}.auth-breadcrumb button{border:0;background:transparent;padding:0;color:#0f172a;font-weight:800}.auth-form{margin-top:16px;display:grid;gap:12px}.auth-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
    @media(max-width:1100px){.job-row{grid-template-columns:80px 1fr;}.job-row>.price{text-align:left}.detail-grid,.photo-grid{grid-template-columns:1fr}.side{display:none}.main{margin-left:0;width:100%;padding:20px}.mobile-top{display:flex}.mobile-menu.show{display:block}.app{display:block}body[data-ui-surface="admin"] .mobile-admin-command-trigger{display:inline-flex}}
    @media(max-width:640px){.mobile-top .btn{width:auto}.main{padding:16px}.top{flex-direction:column}.info-grid,.modal-body,.public-grid,.auth-grid,.auth-split{grid-template-columns:1fr}.field.span{grid-column:span 1}h1{font-size:27px}.job-row{display:block}.job-row>*{margin-top:8px}.job-row>*:first-child{margin-top:0}.photo-boxes{grid-template-columns:1fr}.modal-back{align-items:flex-start;padding:10px}.modal{max-height:calc(100dvh - 20px);border-radius:22px}.modal-head{padding:16px}.modal-body{padding:16px 16px 96px}.modal-foot{display:grid;grid-template-columns:1fr 1fr;padding:14px 16px}.btn{width:100%}.auth-panel{padding:18px}.auth-action{padding:14px 16px}}
    .admin-command-trigger{display:none;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:0 0 4px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--muted);font:700 13px/1.2 inherit;text-align:left}body[data-ui-surface="admin"] .admin-command-trigger{display:flex}.admin-command-trigger:hover{border-color:#14b8a6;color:var(--ink)}.admin-command-trigger kbd,.admin-command-head kbd{border:1px solid var(--line);border-radius:6px;padding:3px 6px;background:#f3f5f2;color:var(--muted);font:700 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
    .admin-command-back{display:none;position:fixed;inset:0;z-index:60;padding:12vh 16px 16px;background:rgba(16,20,24,.42)}.admin-command-back.show{display:flex;align-items:flex-start;justify-content:center}.admin-command-dialog{width:100%;max-width:520px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 24px 60px rgba(16,20,24,.24);overflow:hidden}.admin-command-head{display:flex;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid var(--line)}.admin-command-head svg{width:19px;height:19px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}.admin-command-head input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font:700 16px/1.3 inherit}
    .admin-command-results{display:grid;gap:4px;max-height:min(420px,58vh);padding:8px;overflow:auto}.admin-command-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:11px 12px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink);text-align:left;font:700 14px/1.25 inherit}.admin-command-item:hover,.admin-command-item:focus-visible{border-color:var(--line);background:#f3f5f2;outline:none}.admin-command-item small{color:var(--muted);font-size:14px;font-weight:700}.admin-command-empty{padding:26px 16px;color:var(--muted);text-align:center;font-size:14px}
    @media(max-width:640px){.admin-command-back{padding:8vh 10px 10px}}

/* CrewFlows · 현장 작업 일지
   Component contract: yellow = primary action; teal = completed/confirmed;
   red = errors/overdue only. All interactive controls have a 44px target.
   The landing keeps its own lp-* composition; app surfaces share these tokens. */
:root{
  --bg:#F3F1EC;--panel:#FFFFFF;--ink:#141A21;--dark:#141A21;
  --muted:#59616A;--ink-secondary:#3D4550;--line:#DAD6CC;--line-soft:#EAE7E0;
  --ground-raised:#EBE8E0;--hover:#F8F6F1;--yellow:#F2C230;--yellow-hover:#E3B321;
  --yellow-soft:#FFF4CC;--yellow-ink:#715300;--teal:#0E6B5E;--teal-soft:#E8F3EF;
  --red:#B42318;--red-soft:#FFF0ED;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;
  --space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;
  --radius-sm:6px;--radius:10px;--radius-lg:16px;
  --shadow:0 2px 6px #141A2106;--shadow-dialog:0 24px 80px #141A2133;
  --font-sans:"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",system-ui,sans-serif;
  --text-sm:14px;--text-body:16px;--text-title:28px;--leading:1.6;
  /* Compatibility tokens used by older generated document panels. */
  --a-ink-2:var(--ink-secondary);--a-soft:var(--hover);--a-hover:var(--ground-raised);
  --a-yellow:var(--yellow);--a-yellow-ink:var(--yellow-ink);--a-teal:var(--teal);
  --a-teal-soft:var(--teal-soft);--a-red:var(--red);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading);word-break:keep-all;overflow-wrap:break-word}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}button:disabled{cursor:not-allowed}
a{color:inherit}svg{flex-shrink:0}img{max-width:100%}
h1,h2,h3,p{margin:0}h1{font-size:var(--text-title);line-height:1.3;font-weight:700;letter-spacing:-.035em}
h2{font-size:18px;line-height:1.45;font-weight:700;letter-spacing:-.02em}h3{font-size:16px;line-height:1.5;font-weight:650}
small{font-size:var(--text-sm)}.muted,.a-note{color:var(--muted)}.eyebrow,.a-date{font-size:14px;letter-spacing:0;color:var(--muted);font-weight:500}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:1px;box-shadow:0 0 0 5px var(--yellow-soft)}
.hidden,[hidden]{display:none!important}.center{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Kept outside the app shell so it is always the first keyboard stop. */
.skip-link{position:fixed;top:-100px;left:16px;z-index:100;background:var(--panel);color:var(--ink);padding:12px 16px;border-radius:var(--radius-sm)}
.skip-link:focus{top:8px}

/* Shell: quiet workbench, a fixed paper index, one clear active location. */
.app{display:flex;min-height:100dvh}.side{width:232px;padding:28px 16px 20px;gap:16px;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto}
.brand{padding:0 8px 12px;margin:0;gap:10px}.brand b{font-size:18px;font-weight:700;letter-spacing:-.03em}.brand small{display:none}
.logo,.logo svg{width:32px;height:32px;border-radius:0;background:none}
.nav{gap:4px}.nav-group{display:grid;gap:4px}.nav-group+.nav-group{border-top:1px solid var(--line-soft);margin-top:20px;padding-top:20px}
.nav-label{padding:0 12px 8px;font-size:14px;color:var(--muted);font-weight:500}
.nav button{display:flex;align-items:center;gap:12px;min-height:48px;width:100%;border-radius:8px;padding:8px 12px;font-size:15px;font-weight:500;color:var(--ink-secondary)}
.nav button.active{background:var(--yellow-soft);color:var(--ink);font-weight:700;box-shadow:none}.nav button.active::before{display:none}.nav button:hover:not(.active){background:var(--hover)}
.nav-icon{display:flex;width:18px;height:18px;color:var(--muted)}.nav-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.nav button.active .nav-icon{color:var(--ink)}
.side-note{display:flex;flex-direction:column;gap:4px;margin-top:auto;background:none;border:0;border-radius:0;padding:16px 8px 0;border-top:1px solid var(--line-soft);font-size:14px;color:var(--muted)}
.side-note strong{font-size:15px;font-weight:650;color:var(--ink)}.workspace-status{display:flex;align-items:center;gap:6px}.workspace-status i{width:6px;height:6px;border-radius:50%;background:var(--muted)}.workspace-status.online i{background:var(--muted)}
.side-logout{margin-top:8px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink-secondary);font-size:14px}
.main{margin-left:232px;width:calc(100% - 232px);padding:40px 32px 64px;min-width:0}.main.full{margin-left:0;width:100%}
.main.landing-main{padding:0;max-width:none;background:var(--bg)}.mobile-top.landing-hidden{display:none!important}
.mobile-top{background:var(--panel);border-color:var(--line);padding:8px 16px;min-height:64px;gap:12px;z-index:30;box-shadow:0 1px 0 #141A2104}
.mobile-top-actions{display:flex;gap:8px}.mobile-top .btn{min-height:44px;padding:0 12px;width:auto;font-size:14px}
.mobile-menu{background:var(--panel);padding:16px;border-bottom:1px solid var(--line)}.mobile-menu .nav-group{gap:4px}.mobile-menu .side-logout{width:100%}
.top,.a-dash-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}
.a-dash-head{align-items:center}.a-dash-head>div:first-child,.top>div:first-child{min-width:0}.a-dash-actions,.ui-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.a-date{display:block;margin-bottom:6px}.a-summary{font-size:16px;line-height:1.7;color:var(--ink-secondary);margin:0 0 24px;max-width:760px}.a-summary b{color:var(--ink);font-weight:650}.a-note{font-size:14px;line-height:1.65;margin:12px 0}

/* Buttons. Secondary is the default for supporting actions, ghost for navigation. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:10px 16px;border:1px solid var(--yellow);border-radius:8px;background:var(--yellow);color:var(--ink);font-size:15px;font-weight:650;line-height:1.4;text-decoration:none;white-space:normal;text-align:center;box-shadow:none;transition:background-color .15s,border-color .15s}
.btn:hover:not(:disabled){background:var(--yellow-hover);border-color:var(--yellow-hover);filter:none}
.btn.secondary{background:var(--panel);color:var(--ink);border-color:var(--line)}.btn.secondary:hover:not(:disabled){background:var(--hover);border-color:#B1AB9E}
.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-secondary)}.btn.ghost:hover:not(:disabled){background:var(--ground-raised);border-color:transparent}
.btn.cta{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.btn.danger{background:var(--red);border-color:var(--red);color:#fff}.btn.danger:hover:not(:disabled){background:#8B1D15;border-color:#8B1D15}
.btn.sm{min-height:44px;padding:8px 12px;font-size:14px}.btn.lg{min-height:56px;padding:14px 24px;font-size:18px}.btn.full{width:100%}
.btn:disabled,.btn[disabled]{opacity:1;background:var(--ground-raised)!important;border-color:var(--line)!important;color:var(--muted)!important;box-shadow:none;cursor:not-allowed}
.a-link,.landing-text-btn{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:8px 4px;border:0;background:none;color:var(--ink-secondary);font:inherit;font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:4px}

/* Inputs and readable, labelled form groups. */
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea,.input{min-width:0;max-width:100%;min-height:48px;padding:10px 12px;border:1px solid #858A93;border-radius:8px;background:var(--panel);color:var(--ink);font-size:16px;line-height:1.5}
input::placeholder,textarea::placeholder{color:#697079;opacity:1}textarea{resize:vertical;min-height:96px}
input:disabled,select:disabled,textarea:disabled{background:var(--ground-raised);color:var(--muted);opacity:1}
input[type=checkbox],input[type=radio]{width:20px;height:20px;flex:0 0 20px;accent-color:var(--ink);vertical-align:middle;margin:0 8px 0 0}
label:has(>input[type=checkbox]),label:has(>input[type=radio]){display:flex;min-width:44px;min-height:44px;align-items:center;cursor:pointer}
.field{min-width:0}.field label{display:block;font-size:14px;font-weight:600;color:var(--ink-secondary);margin-bottom:8px}.field input,.field select,.field textarea{width:100%;border-radius:8px;padding:10px 12px;border:1px solid #858A93}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--ink);outline-offset:1px;box-shadow:0 0 0 5px var(--yellow-soft)}
label small,.field label small{font-size:14px;font-weight:400;color:var(--muted)}
.search{width:100%;max-width:640px;margin:0 0 24px;padding-left:16px!important;border-color:var(--line)!important;border-radius:10px!important;background:var(--panel)}

/* Surfaces and semantic states. Neutral states never borrow success/error color. */
.card,.customer-history-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);min-width:0}
.card-pad{padding:24px}.section-head{padding:20px 24px;border-color:var(--line-soft)}.section-head small{color:var(--muted)}
.memo,.ops-insight{padding:16px;border:1px solid var(--line-soft);border-radius:10px;background:var(--hover);color:var(--ink-secondary);line-height:1.65}
.memo{margin-top:16px}.ops-insight{font-size:14px}.ops-insight.warn{background:var(--yellow-soft);border-color:#DCC475}.ops-insight.danger{background:var(--red-soft);border-color:#E9B4AB}
.badge,.alert-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid transparent;border-radius:5px;background:var(--ground-raised);color:var(--ink-secondary);font-size:14px;font-weight:600;line-height:1.5;white-space:nowrap}
.badge:before{display:none}.b-requested{background:var(--hover);border-color:var(--line)}.b-scheduled,.b-assigned{background:var(--ground-raised);color:var(--ink-secondary)}
.b-dispatched,.b-arrived,.b-progress,.badge.warn,.alert-badge.warn{background:var(--yellow-soft);color:var(--yellow-ink)}
.b-completed,.b-paid,.badge.ok,.alert-badge.ok,.state-confirmed{background:var(--teal-soft);color:var(--teal)}
.b-cancelled{background:var(--ground-raised);color:var(--muted)}.badge.danger,.alert-badge.danger{background:var(--red-soft);color:var(--red)}
.alert-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.a-warn{display:inline-flex;border:1px solid #DCC475;border-radius:5px;padding:3px 8px;background:var(--yellow-soft);color:var(--yellow-ink);font-size:14px;font-weight:600}

/* Today and day-grouped lists. */
.a-dash{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:24px;align-items:start}.a-dash-main{min-width:0}.a-dash .a-dash-head{margin-bottom:12px}.a-dash-side{display:grid;gap:24px;min-width:0}
.a-list,.a-day{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.a-list-head,.a-day h3{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid var(--line-soft);background:var(--hover);margin:0;font-size:15px;font-weight:650}
.a-list-head span,.a-day h3 span{font-size:14px;color:var(--muted);font-weight:400}.a-day{margin-top:20px}.a-past-head{margin:32px 0 12px;font-size:14px;color:var(--muted);font-weight:600}
.job-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto 96px;gap:16px;width:100%;min-height:88px;padding:18px 20px;border:0;border-bottom:1px solid var(--line-soft);border-radius:0!important;background:var(--panel);color:var(--ink);text-align:left;font:inherit;align-items:center}
.job-row:last-child{border-bottom:0}.job-row:hover{background:var(--hover)}.job-row:focus-visible{outline-offset:-3px}
.job-row .time{font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}.job-main{display:flex;flex-direction:column;gap:4px;min-width:0}.job-main>b{font-size:16px;font-weight:650;line-height:1.5}.job-main>span{font-size:14px;color:var(--muted);line-height:1.55}
.job-state{min-width:0}.price{font-size:15px;font-weight:650;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.a-dash .job-row{grid-template-columns:52px minmax(0,1fr) auto;gap:8px 12px}.a-dash .job-row .job-main{grid-row:span 2}.a-dash .job-row .time{grid-row:span 2}.a-dash .job-row .job-state{align-self:end;text-align:right}.a-dash .job-row .price{grid-column:3;align-self:start;font-size:14px;color:var(--muted)}
.a-side-block{padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg)}.a-side-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}.a-side-head h2{font-size:16px}
.a-todo{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line-soft)}.a-todo:last-child{border:0;padding-bottom:4px}
.a-todo-main{display:flex;flex-direction:column;gap:4px;min-width:0;min-height:44px;flex:1;border:0;background:none;padding:0;text-align:left;color:var(--ink)}.a-todo-main b{font-size:14px;font-weight:650}.a-todo-main span{font-size:14px;line-height:1.5;color:var(--muted)}
.a-todo.is-danger .a-todo-main b{border-left:3px solid var(--yellow);padding-left:8px}.a-todo.is-overdue .a-todo-main b{border-left-color:var(--red)}.a-todo-action{flex-shrink:0;min-height:44px;padding:8px 10px;font-size:14px;max-width:110px}
.a-backlog .job-row{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:16px 0}.a-backlog .job-main>b{font-size:14px}.a-backlog .job-state{display:flex;gap:6px;flex-wrap:wrap}.a-account{font-size:14px;color:var(--muted)}
.a-empty,.ops-empty,.dispatch-empty{padding:32px 20px;border:1px dashed #B8B3A8;border-radius:10px;background:var(--hover);color:var(--muted);font-size:15px;text-align:center;line-height:1.7}.a-list>.a-empty{border:0;border-radius:0}
.a-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}.a-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink-secondary);font-size:14px;font-weight:600}
.a-tab span{color:var(--muted);font-variant-numeric:tabular-nums}.a-tab.is-on{border-color:var(--ink);background:var(--ink);color:#fff}.a-tab.is-on span{color:#E6E3DC}.a-tab:hover:not(.is-on){border-color:#A29B8D}
.ops-alert-board.a-counts{display:flex;flex-wrap:wrap;gap:12px 24px;padding:16px 20px;margin:0 0 24px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.a-count{color:var(--muted);font-size:14px}.a-count b{margin-left:4px;font-size:16px}.a-count.is-on{color:var(--ink)}.a-count.is-danger{color:var(--red)}
.exception-filters{display:flex;flex-wrap:wrap;gap:8px}.exception-filters .btn{padding:8px 12px;font-size:14px}.ops-priority-list{display:grid;gap:12px}.ops-priority-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.ops-priority-item.danger{background:var(--panel);border-color:var(--line);border-left:3px solid var(--red)}.ops-priority-item.warn{background:var(--panel);border-color:var(--line)}
.ops-priority-title{font-weight:650;font-size:16px}.ops-priority-meta{font-size:14px;color:var(--muted);line-height:1.65;margin-top:6px}.ops-priority-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:320px}.ops-priority-actions .btn{min-height:44px;padding:8px 12px;font-size:14px}

/* Detail and shared action groups. */
.d-head{margin-bottom:24px}.d-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.d-sub{margin-top:12px;color:var(--ink-secondary)}.a-series{margin-top:8px;font-size:14px;color:var(--muted)}
.d-actions{display:flex;flex-wrap:wrap;gap:8px;max-width:440px;justify-content:flex-end}.d-delete{color:var(--ink-secondary)!important}.d-actions .d-main{font-weight:700}
.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px;margin:20px 0}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.info{padding:12px 0;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;background:none;min-width:0}.info small{font-size:14px;font-weight:500;color:var(--muted)}.info p{margin-top:4px;font-size:16px;font-weight:500;overflow-wrap:anywhere}
.d-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}.d-quick .btn{padding:8px 10px}.d-techs{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}
.tech-btn{min-height:48px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:15px;font-weight:600;color:var(--ink)}.tech-btn.active{background:var(--ink);border-color:var(--ink);color:#fff}
.tech-btn:disabled{opacity:1;cursor:not-allowed;color:var(--muted);background:var(--ground-raised);border-color:var(--line)}.tech-btn.active:disabled{color:var(--ink)}
.action-panel,.action-panel.primary,.action-panel.warn{padding:16px;border:1px solid var(--line-soft);border-radius:10px;background:var(--hover);box-shadow:none;min-width:0}.step-dot{display:none}.action-panel-head{margin-bottom:12px}.action-panel-head b{font-size:16px;font-weight:650}.action-panel-head>div>span,.action-panel-head span{font-size:14px;color:var(--muted)}
.quick-action-layout,.document-action-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.action-grid.single{grid-template-columns:1fr}.action-grid .btn{min-height:44px;padding:10px;font-size:14px;border-radius:8px}.action-grid .btn.full,.action-grid>.btn:only-child{grid-column:1/-1}
.d-customer-link{margin-bottom:20px}.d-customer-link>div{min-width:0;max-width:100%}.d-customer-link .memo{overflow-wrap:anywhere;word-break:break-word}
.d-checks{list-style:none;margin:0;padding:0}.d-checks li{display:grid;grid-template-columns:96px 48px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:15px}.d-checks li span{font-weight:600;color:var(--yellow-ink)}.d-checks li.is-ok span{color:var(--teal)}.d-checks small{color:var(--muted)}.d-step{margin-top:16px;font-size:14px;font-weight:650}
.d-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.d-check{display:flex;align-items:center;gap:8px;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:14px;text-align:left;line-height:1.5;color:var(--ink)}.d-check i{display:flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;border:1px solid #A29B8D;border-radius:4px;font-style:normal;font-size:14px;color:#fff}.d-check.is-done i{background:var(--teal);border-color:var(--teal)}

/* Disclosure, shared by documents, optional settings and phone details. */
.t-more,.d-mini-fold,.a-pay-manual,.form-more{margin-top:16px;border-top:1px solid var(--line);padding-top:8px}.t-more>summary,.d-mini-fold>summary,.a-pay-manual>summary,.form-more>summary,.d-fold>summary{display:flex;align-items:center;gap:12px;min-height:48px;list-style:none;cursor:pointer;color:var(--ink-secondary);font-size:15px;font-weight:600;line-height:1.5}
summary::-webkit-details-marker{display:none}.t-more>summary::after,.d-mini-fold>summary::after,.a-pay-manual>summary::after,.form-more>summary::after,.d-fold>summary::after{content:"+";font-size:22px;font-weight:400;margin-left:auto;color:var(--muted)}
.t-more[open]>summary::after,.d-mini-fold[open]>summary::after,.a-pay-manual[open]>summary::after,.form-more[open]>summary::after,.d-fold[open]>summary::after{content:"−"}.t-more[open]>summary,.d-fold[open]>summary,.form-more[open]>summary{margin-bottom:12px}.t-more>*+*{margin-top:12px}.d-fold>summary span{margin-left:auto;color:var(--muted);font-size:14px;font-weight:400}.form-more summary span{font-size:14px;font-weight:400;color:var(--muted)}
.form-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:12px}.form-more-grid .field.span{grid-column:1/-1}.modal-body .field:has(>#fRepeatCount:disabled){display:none}

/* Photos: same frame and clear empty state everywhere. */
.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}.photo-boxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.photo-boxes>div{min-width:0}.photo-thumb{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:8px;background:var(--ground-raised)}.photo-placeholder{display:flex;align-items:center;justify-content:center;min-height:96px;padding:16px;aspect-ratio:4/3;border:1px dashed #B8B3A8;border-radius:8px;background:var(--hover);color:var(--muted);font-size:14px;text-align:center}
.photo-open{display:block;min-height:44px;width:100%;border:0;padding:0;background:none;border-radius:8px;cursor:zoom-in}.photo-meta{font-size:14px;line-height:1.5;color:var(--muted);margin-top:8px}.photo-preview-card{background:var(--ink);border-radius:16px;padding:16px;max-width:960px;width:100%;box-shadow:var(--shadow-dialog)}.photo-preview-frame{background:#070A0D;border-radius:8px;overflow:hidden}.photo-preview-frame img{display:block;width:100%;max-height:75dvh;object-fit:contain}.photo-preview-caption{color:#E6E3DC;font-size:14px;margin-top:12px;text-align:center}

/* Ledger, payment schedules, estimates and immutable sent records. */
.a-pay-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:20px 0;background:var(--hover);border:1px solid var(--line-soft);border-radius:10px}.a-pay-sum>div{display:flex;flex-direction:column;gap:4px;padding:16px;min-width:0}.a-pay-sum>div+div{border-left:1px solid var(--line)}.a-pay-sum small{font-size:14px;color:var(--muted)}.a-pay-sum b{font-size:21px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;letter-spacing:-.025em}
.a-pay-list{list-style:none;padding:0;margin:16px 0}.a-pay-list li{display:grid;grid-template-columns:100px 80px 120px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:14px}.a-pay-list b{text-align:right;font-variant-numeric:tabular-nums}.a-pay-list .btn{font-size:14px;padding:8px 12px}.a-pay-list .is-void{color:var(--muted)}.a-pay-list .is-void b{text-decoration:line-through}
.a-pay-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:end;margin-top:20px}.a-pay-form:has(select[name=stageId]){grid-template-columns:repeat(3,minmax(0,1fr))}.a-pay-form label{display:grid;gap:8px;font-size:14px;color:var(--ink-secondary);min-width:0}.a-pay-form input,.a-pay-form select{width:100%}.a-pay-form>.btn{min-height:48px}.a-pay-manual{font-size:14px}
.payment-schedule,.public-payment-schedule{min-width:0;overflow-wrap:anywhere;margin:20px 0}.payment-schedule>p{margin-top:8px}.payment-schedule .estimate-options>article{padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--hover);min-width:0}.payment-schedule .estimate-options article h3{margin-bottom:8px}.payment-schedule .estimate-options article .btn{margin-top:12px;width:100%;background:var(--panel);border-color:var(--line)}
#paymentScheduleForm fieldset{min-width:0;display:grid;gap:12px;margin:0;padding:16px;border-color:var(--line)}#paymentScheduleForm label{display:grid;gap:8px;font-size:14px;min-width:0}#paymentScheduleForm label:has(input[type=checkbox]){display:flex;align-items:center}#paymentScheduleForm input:not([type=checkbox]),#paymentScheduleForm select{width:100%}
#estimateCard,#reviewSettingsCard{margin:20px 0}#estimateCard>p{margin-top:8px}.estimate-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.estimate-options:has(>:only-child){grid-template-columns:minmax(0,1fr)}.estimate-options:has(>:first-child:nth-last-child(2)){grid-template-columns:repeat(2,minmax(0,1fr))}
.estimate-options>div,.estimate-option{padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--panel);min-width:0;overflow-wrap:anywhere}.estimate-options>div>p{margin:8px 0;color:var(--muted)}.estimate-options>div>strong{display:block;margin-top:12px;font-size:24px;font-variant-numeric:tabular-nums}
.estimate-option{display:flex;flex-direction:column;gap:12px;cursor:pointer}.estimate-option.is-recommended{border:2px solid var(--ink);background:var(--hover)}.estimate-option>span:first-child{font-size:14px;font-weight:650;min-height:22px;color:var(--ink-secondary)}.estimate-option strong{font-size:28px;font-weight:700;margin-top:auto}.estimate-option ul{padding-left:20px;margin:8px 0;font-size:15px;color:var(--ink-secondary)}.estimate-option:has(input:checked){outline:3px solid var(--ink);outline-offset:3px;background:var(--yellow-soft)}.estimate-option:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:3px}
.estimate-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}.estimate-note{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink-secondary);line-height:1.7}.estimate-editor{padding:24px;overflow:auto;max-height:65dvh;min-width:0}.estimate-editor label,.review-settings-row label{display:grid;gap:8px;min-width:0;font-size:14px;color:var(--ink-secondary)}.estimate-editor input:not([type=radio]),.estimate-editor textarea,.review-settings-row input{width:100%}.estimate-edit-option{border:1px solid var(--line);border-radius:12px;padding:20px;margin:20px 0;min-width:0}.estimate-edit-option legend{padding:0 8px;font-weight:650;font-size:14px}.estimate-edit-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:end;margin-bottom:16px}.estimate-item-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:16px}
.review-settings-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:16px;margin:16px 0}.a-doc-history{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}.a-doc-history h3{font-size:16px;margin-bottom:8px}.a-doc-history>p{font-size:14px;color:var(--muted)}.a-doc-sent{border-bottom:1px solid var(--line-soft)}.a-doc-sent summary{display:flex;flex-wrap:wrap;gap:8px 16px;min-height:48px;align-items:center;cursor:pointer;font-size:14px}.a-doc-sent .memo{margin-bottom:12px}

/* Customers and users: compact summaries, full records one disclosure away. */
.customer-history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0 24px}.customer-history-card{padding:24px}.customer-history-head,.customer-history-item-top{display:flex;justify-content:space-between;align-items:start;gap:16px}.customer-history-head>div,.customer-history-item-top>div{min-width:0;overflow-wrap:anywhere}.customer-history-head h3{font-size:21px;font-weight:700}.customer-history-sub{color:var(--muted);font-size:14px;margin-top:6px;line-height:1.6}.customer-history-list{display:grid;gap:12px;margin-top:16px}.customer-history-item{padding:16px;border:1px solid var(--line-soft);background:var(--hover);border-radius:8px}.dispatch-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
table{width:100%;border-collapse:collapse;font-size:14px}th{padding:16px;background:var(--hover);color:var(--muted);font-weight:600;text-align:left}td{padding:16px;border-top:1px solid var(--line-soft);line-height:1.6}tr:hover td{background:var(--hover)}.table-wrap{overflow:auto;max-width:100%}.users-table{margin-top:24px}.users-table table{min-width:0}.users-table td{overflow-wrap:anywhere}.user-management-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.user-management-actions .btn{font-size:14px}.u-settings{margin-top:24px}.onboarding-panel{margin-bottom:24px}.onboarding-panel h3{font-size:16px}

/* Monthly report: numbers first, labelled row tables on phones. */
.a-report{max-width:1120px;min-width:0}.a-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0 32px}.a-figures>div{min-width:0;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:8px}.a-figures dt{font-size:14px;color:var(--muted)}.a-figures dd{font-size:26px;font-weight:700;letter-spacing:-.035em;font-variant-numeric:tabular-nums;margin:0;overflow-wrap:anywhere}.a-diff{font-size:14px;color:var(--muted)}
.a-table-block{margin:24px 0;padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.a-table-block h2{margin-bottom:16px}.a-table{min-width:0;table-layout:fixed}.a-table th,.a-table td{padding:16px 12px;overflow-wrap:anywhere}.a-table .num{text-align:right;font-variant-numeric:tabular-nums}.a-empty-cell{color:var(--muted);text-align:center}

/* Technician: one next step, supporting actions in pairs. */
.tech-mobile{max-width:600px;margin:0 auto;min-width:0}.a-tech-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.tech-mobile h1{font-size:26px}.t-card{margin:20px 0 0;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--panel);min-width:0}.t-card.is-now{border:2px solid var(--ink);padding:23px;box-shadow:4px 4px 0 var(--ground-raised)}.t-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.t-time{font-size:20px;font-weight:650;font-variant-numeric:tabular-nums}.t-state{font-size:14px}.t-name{font-size:24px;margin:12px 0 4px;font-weight:700}.t-meta{font-size:16px;color:var(--ink-secondary);line-height:1.65;margin-top:4px}.t-hint{margin-top:16px;padding:12px;border-radius:8px;background:var(--yellow-soft);color:var(--yellow-ink);font-size:15px;font-weight:600}.t-main{min-height:56px!important;margin-top:20px;font-size:18px!important;font-weight:700}.t-sub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.t-sub .btn,.t-sms .btn{min-height:48px;font-size:16px}.t-sms{margin-top:8px}.a-now{padding:16px;border:1px solid #DCC475;background:var(--yellow-soft);border-radius:10px;margin:16px 0;font-size:14px}.a-now span{display:block}.location{background:var(--hover);border:1px solid var(--line);border-radius:8px;padding:16px}

/* Multi-day sites: a clear timeline, monetary data stays in the office. */
.projects{max-width:1100px;min-width:0}.projects>h1{margin-top:24px}.projects>p{margin-top:8px;color:var(--ink-secondary)}.projects progress{display:block;width:100%;height:8px;margin:24px 0;accent-color:var(--ink);border:0;border-radius:8px;overflow:hidden}.projects progress::-webkit-progress-bar{background:var(--line);border-radius:8px}.projects progress::-webkit-progress-value{background:var(--ink);border-radius:8px}
.project-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 20px;width:100%;padding:24px;margin-top:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);text-align:left;overflow-wrap:anywhere}.project-row:hover{border-color:#A29B8D;background:var(--hover)}.project-row b{font-size:18px;font-weight:650}.project-row span{grid-column:1;color:var(--muted);font-size:14px}.project-row strong{grid-column:2;grid-row:1/3;align-self:center;font-size:14px;font-weight:600;background:var(--ground-raised);padding:8px 12px;border-radius:6px}
.project-timeline{margin:24px 0}.project-day{padding:20px;margin:12px 0;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow-wrap:anywhere}.project-day summary{display:flex;flex-wrap:wrap;gap:8px 20px;min-height:48px;align-items:center;cursor:pointer;font-size:14px}.project-day summary b{font-size:16px}.daily-log{padding:16px 0;min-width:0}.daily-log>p{margin-top:8px;color:var(--ink-secondary)}.daily-log h3{margin-top:24px}.daily-log form{display:grid;gap:16px;margin-top:20px}.daily-log label,.project-schedule label{display:grid;gap:8px;min-width:0;font-size:14px;color:var(--ink-secondary)}.daily-log input,.daily-log textarea,.project-schedule input{width:100%}.daily-log textarea{min-height:120px}.project-schedule{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-top:20px}.project-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.project-photos img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}.public-project>.btn{margin-top:20px}

/* Public links: a calm receipt with explicit review and consent sections. */
.public{max-width:780px;margin:0 auto;min-width:0}.public.public-estimate{max-width:1080px;width:100%}.public h1{font-size:28px}.public>p{margin-top:12px;color:var(--muted)}
.public-completion-hero{position:relative;padding:32px 24px;text-align:left;border-top:4px solid var(--teal)}.public-completion-hero .success{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;margin:0;background:var(--teal-soft);color:var(--teal)}.public-completion-hero h1{font-size:28px;margin-top:16px!important}.public-status-chip{display:inline-flex;align-items:center;gap:8px;min-height:32px;margin-top:16px;padding:4px 10px;border-radius:5px;font-size:14px;font-weight:650}.public-status-chip i{width:6px;height:6px;background:currentColor;border-radius:50%}.public-status-chip.is-pending{background:var(--yellow-soft);color:var(--yellow-ink)}.public-status-chip.is-confirmed{background:var(--teal-soft);color:var(--teal)}
.public-completion-sheet{padding:24px;overflow:hidden}.public-total-card{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;padding:24px;border:1px solid var(--line);border-radius:10px;background:var(--hover);color:var(--ink)}.public-total-card span{font-size:15px;color:var(--ink-secondary)}.public-total-card strong{font-size:32px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.035em}.public-total-card small{flex-basis:100%;text-align:right;color:var(--muted)}
.public-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:16px}.public-summary-grid .info{padding:14px 0}.public-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.public-detail-card{padding:20px;background:var(--hover);border:1px solid var(--line-soft);border-radius:10px;min-width:0}.public-detail-card-wide{grid-column:1/-1}.public-detail-card h2{font-size:16px}.public-summary-note{margin-top:12px;line-height:1.75;white-space:pre-wrap}.public-records{margin-top:16px}.public-timeline-list{display:grid;gap:0;margin-top:12px}.public-timeline-list>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line)}.public-timeline-list span{color:var(--muted);font-size:14px}.public-timeline-list strong{font-size:14px;font-weight:500}.public-checklist-summary{display:grid;gap:8px;margin-top:12px;font-size:14px;color:var(--teal)}.public-checklist-summary span::before{content:"✓";margin-right:8px}
.public-charge-card{margin-top:20px;padding:16px 20px;border:1px solid var(--line);border-radius:10px;background:var(--hover)}.public-charge-card>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.public-charge-card span{font-size:14px;color:var(--muted)}.public-charge-card strong{font-size:15px;font-weight:600}.public-charge-card.has-charge{background:var(--yellow-soft);border-color:#DCC475}
.public-photo-section{margin-top:32px}.public-section-heading{margin-bottom:16px}.public-photo-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.public-photo-column{min-width:0}.public-photo-column-head h2{font-size:15px;color:var(--muted);font-weight:600}.public-photo-column.is-after .public-photo-column-head h2{color:var(--teal)}.public-photo-column .photo-boxes{grid-template-columns:1fr;margin-top:8px}.public-photo-column .photo-thumb{aspect-ratio:4/3}
.public-confirmation-panel{margin-top:32px;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--hover)}.public-confirmation-copy>p{margin-top:8px;color:var(--ink-secondary)}.public-consent-wording{margin:16px 0!important;padding:16px;border-left:3px solid var(--yellow);background:var(--yellow-soft);color:var(--ink)!important;font-size:15px;line-height:1.75;white-space:pre-wrap}
.public-guidance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.public-guidance-grid>div{min-width:0;padding:16px;border:1px solid var(--line);border-radius:10px}.public-guidance-grid span,.public-section-heading>span,.public-detail-card-head>span,.public-confirmation-copy>span{display:block;font-size:14px;font-weight:600;color:var(--muted)}.public-guidance-grid strong{display:block;margin-top:8px;font-size:15px}.public-guidance-grid p,.public-confirmation-footnote{margin-top:8px;font-size:14px;line-height:1.65;color:var(--muted)}.as-box{border-radius:10px;background:var(--ink);color:#fff;font-size:15px;font-weight:600}.public-confirmation-status{padding:12px;border:1px solid #E9B4AB;border-radius:8px;background:var(--red-soft);color:var(--red)}.public-confirmation-status.is-pending{border-color:var(--line);background:var(--ground-raised);color:var(--ink-secondary)}
.public-confirmation-field{display:grid;gap:8px;margin-top:20px;font-size:14px;color:var(--ink-secondary)}.public-confirmation-field .input{width:100%}.public-confirmation-field small{margin-left:4px;color:var(--muted)}.public-charge-consent{display:flex;align-items:flex-start;gap:8px;margin-top:20px;padding:16px;border:1px solid #DCC475;border-radius:8px;background:var(--yellow-soft);font-size:15px}.public-charge-consent input{margin-top:3px}.public-confirm-button{margin-top:24px;min-height:56px;font-size:17px;font-weight:700}.public-confirmation-status{margin:16px 0;font-size:15px}.public-confirmation-status.is-error,.public-confirmation-status.is-review{padding:12px;border:1px solid #E9B4AB;border-radius:8px;background:var(--red-soft);color:var(--red)}.public-confirmation-status.is-success{color:var(--teal)}
.public-confirmation-receipt{display:flex;align-items:start;gap:16px;margin-top:24px;padding:24px;background:var(--teal-soft);border:1px solid #A3C8BC;border-radius:12px;color:var(--teal)}.public-receipt-mark{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--teal);color:#fff}.public-confirmation-receipt dl{margin:12px 0 0}.public-confirmation-receipt dl>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;margin-top:8px;font-size:14px}.public-confirmation-receipt dt{font-weight:500}.public-confirmation-receipt dd{margin:0;color:var(--ink)}.public-review-request{margin-top:24px}.public-estimate>.t-more{margin-top:24px}.public-estimate form>.btn.full{margin-top:24px;min-height:56px}.public-payment-schedule{padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--hover)}.public-payment-schedule .estimate-options{margin-bottom:0}

/* Login, signup and information pages: same paper and ink as the workbench. */
.main.auth-main{background:var(--bg);padding:56px 32px;--lp-ground:var(--bg);--lp-line:var(--line);--lp-muted:var(--muted);--lp-ink:var(--ink);--lp-ink-2:var(--ink-secondary)}
.auth-shell{max-width:1000px;margin:0 auto;padding-top:0}.auth-shell>.top{margin-bottom:32px}.auth-brand,.auth-main .auth-brand{display:inline-flex;align-items:center;min-height:44px;margin-bottom:24px;padding:0;border:0;background:none;color:var(--ink);font:inherit;font-size:18px;font-weight:700;letter-spacing:-.02em;gap:10px;cursor:pointer}.auth-brand:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.auth-brand svg{flex-shrink:0}.auth-brand svg.ilm-wordmark{display:block;width:auto;height:19px}.auth-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px}.auth-main .auth-panel,.auth-main .card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:none}.auth-main .auth-grid>.auth-panel:first-child{border:1px solid var(--ink);box-shadow:5px 5px 0 var(--ground-raised)}.auth-panel{padding:32px}.auth-actions{display:grid;gap:16px}.auth-main .auth-action{padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:10px;min-height:88px}.auth-action b{font-size:16px;font-weight:650}.auth-action span{color:var(--muted);font-size:14px;line-height:1.65}.auth-form{display:grid;gap:20px;margin-top:24px}.auth-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.auth-breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}.auth-breadcrumb button{min-height:44px;min-width:44px;padding:8px 0;border:0;background:none;color:var(--ink);font-weight:500}
.auth-main .btn{background:var(--yellow);border:1px solid var(--yellow);color:var(--ink);min-height:48px;border-radius:8px;font-weight:650}.auth-main .btn:hover:not(:disabled){background:var(--yellow-hover);border-color:var(--yellow-hover)}.auth-main .btn.secondary{background:var(--panel);border-color:var(--line);color:var(--ink)}.auth-main .field input,.auth-main .field select,.auth-main .field textarea,.auth-main .input{border:1px solid #858A93;border-radius:8px}.auth-main .field input:focus-visible,.auth-main .field select:focus-visible,.auth-main .field textarea:focus-visible,.auth-main .input:focus-visible{outline:2px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 5px var(--yellow-soft)}.auth-main .memo{background:var(--hover);border:1px solid var(--line-soft);color:var(--ink-secondary)}.auth-main .landing-text-btn{min-height:44px;padding:8px 4px;color:var(--ink)}
.inquiry-steps{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.inquiry-steps-head{font-weight:650;margin-bottom:16px}.inquiry-steps ol{display:grid;gap:16px;margin:0;padding:0;list-style:none}.inquiry-steps li{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px;font-size:14px}.inquiry-steps b{font-weight:650}.inquiry-steps span{color:var(--muted)}.inquiry-status{padding:16px;border:1px solid var(--line);border-radius:10px;margin-bottom:24px;background:var(--hover)}.inquiry-status.is-error{color:var(--red);background:var(--red-soft);border-color:#E9B4AB}.inquiry-status.is-success{color:var(--teal);background:var(--teal-soft)}

/* Bottom-sheet dialogs and command search. Header/actions never leave the viewport. */
.modal-back{padding:24px;background:#141A2166;overscroll-behavior:contain}.modal{max-width:760px;max-height:calc(100dvh - 48px);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-dialog)}.modal form{overflow:hidden;min-height:0}.modal-head{padding:24px;gap:16px;border-color:var(--line)}.modal-head>div{flex:1;min-width:0}.modal-head>.btn{width:auto;flex:0 0 auto}.modal-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:24px;min-height:0;overflow:auto;scroll-padding:24px}.field.span{grid-column:1/-1}.modal-foot{padding:16px 24px;border-color:var(--line);gap:12px;background:var(--panel)}.modal-foot .btn{min-height:48px;min-width:100px}
.admin-command-trigger{min-height:44px;padding:10px 12px;border-radius:8px;border-color:var(--line);font-size:14px;font-weight:500;background:var(--hover)}.admin-command-trigger:hover{color:var(--ink);border-color:#A29B8D}.admin-command-trigger kbd,.admin-command-head kbd{font-size:14px;font-weight:400;background:var(--panel);padding:3px 5px}.admin-command-dialog{border-radius:14px;border-color:var(--line);box-shadow:var(--shadow-dialog)}.admin-command-head{padding:16px}.admin-command-head input{border:0!important;padding:8px!important;box-shadow:none!important}.admin-command-item{min-height:52px;border-radius:8px;font-size:15px;font-weight:600}.admin-command-item:hover,.admin-command-item:focus-visible{background:var(--yellow-soft);border-color:var(--line)}.admin-command-item:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}.admin-command-item small{font-size:14px;font-weight:400}.admin-command-back{background:#141A2166}

@media(max-width:1180px){.a-dash{grid-template-columns:minmax(0,1fr) 264px;gap:20px}.main{padding-left:24px;padding-right:24px}.a-dash .job-row{padding:16px}.a-figures{gap:12px}.a-figures>div{padding:16px}.a-figures dd{font-size:23px}.quick-action-layout,.document-action-flow{grid-template-columns:1fr}.a-pay-form{grid-template-columns:repeat(2,minmax(0,1fr))}.a-pay-list li{grid-template-columns:96px 70px 100px minmax(0,1fr) auto}}
@media(max-width:1100px){.side{display:none}.main{margin-left:0;width:100%;padding:32px 24px 48px}.app{display:block}.mobile-top{display:flex}.mobile-menu.show{display:block}body[data-ui-surface=admin] .mobile-admin-command-trigger{display:inline-flex}.a-dash{grid-template-columns:minmax(0,1fr) 288px}.detail-grid{grid-template-columns:1fr}.d-quick{grid-template-columns:repeat(2,minmax(0,1fr))}.d-actions{max-width:380px}.users-table table{min-width:760px}}
@media(max-width:800px){.a-dash{grid-template-columns:1fr;gap:24px}.a-dash-side{grid-template-columns:repeat(2,minmax(0,1fr))}.a-dash-side .a-account{grid-column:1/-1}.photo-grid{grid-template-columns:1fr}.a-figures{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-history-grid{grid-template-columns:1fr}.estimate-edit-head{grid-template-columns:minmax(0,1fr) auto}.estimate-edit-head>.btn{grid-column:1/-1}.estimate-item-row{grid-template-columns:repeat(2,minmax(0,1fr))}.estimate-item-row>label:first-child{grid-column:1/-1}.estimate-options,.estimate-options:has(>:first-child:nth-last-child(2)){grid-template-columns:1fr}.auth-grid{grid-template-columns:1fr}.ops-priority-item{grid-template-columns:1fr}.ops-priority-actions{max-width:none}.a-pay-list li{grid-template-columns:96px minmax(0,1fr) auto}.a-pay-list li>span:nth-child(4){grid-column:1/-1}.a-pay-form:has(select[name=stageId]){grid-template-columns:repeat(2,minmax(0,1fr))}.review-settings-row{grid-template-columns:1fr}.public-details-grid{grid-template-columns:1fr}}
@media(max-width:640px){
  body{font-size:16px}h1{font-size:26px}h2{font-size:18px}.main{padding:24px 16px 40px}.top,.a-dash-head{flex-direction:column;align-items:stretch;gap:16px;margin-bottom:20px}.a-dash-actions{width:100%}.a-dash-actions>.btn{flex:1}.card-pad{padding:20px}.a-dash-side{grid-template-columns:1fr}.a-summary{margin-bottom:20px}.a-date{margin-bottom:4px}
  .job-row,.a-dash .job-row{grid-template-columns:48px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:4px 10px;padding:16px 12px;align-items:start;min-height:96px}.job-row>*{margin:0}.job-row .time,.a-dash .job-row .time{grid-column:1;grid-row:1/3;font-size:16px;align-self:start}.job-row .job-main,.a-dash .job-row .job-main{grid-column:2;grid-row:1/3}.job-row .job-main>b{font-size:16px;font-weight:650}.job-row .job-main>span{font-size:14px}.job-row .job-state,.a-dash .job-row .job-state{grid-column:3;grid-row:1;text-align:right;align-self:start}.job-row .price,.a-dash .job-row .price{grid-column:3;grid-row:2;text-align:right;font-size:14px;align-self:start;color:var(--muted)}.job-row .badge,.job-row .a-warn{padding:2px 5px;font-size:14px}.a-backlog .job-row{display:flex}
  .a-tabs{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:8px;margin-bottom:12px;scrollbar-width:thin;scrollbar-color:#B8B3A8 transparent}.a-tab{flex:0 0 auto}.a-day h3,.a-list-head{padding:14px 12px}.a-past-head{margin-top:24px}
  .d-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;justify-content:stretch}.d-actions>.btn{min-height:48px;padding:10px}.d-actions>.d-main{grid-column:1/-1}.d-actions>.btn:only-child{grid-column:1/-1}.d-quick{grid-template-columns:repeat(2,minmax(0,1fr))}.d-quick .btn{font-size:14px}.detail-grid,.photo-grid{gap:16px;margin:16px 0}.info-grid{grid-template-columns:1fr;gap:0}.info-grid>.info,.public-summary-grid>.info{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;padding:12px 0;align-items:baseline}.info p{margin:0;font-size:16px}.info small{font-size:14px}.info-grid>.info>*:not(small):not(p){grid-column:2}.d-checklist{grid-template-columns:repeat(2,minmax(0,1fr))}.d-check{padding:10px;font-size:14px;min-width:0}.d-checks li{grid-template-columns:84px 40px minmax(0,1fr);gap:8px;font-size:14px}
  .exception-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.exception-filters .btn{padding:8px 4px}.ops-priority-item{padding:16px}.ops-alert-board.a-counts{gap:12px 20px;padding:16px}.ops-priority-actions .btn{width:100%}.action-grid,.document-action-flow .action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-action-layout,.document-action-flow{gap:12px}
  .a-pay-sum{grid-template-columns:1fr;margin:16px 0}.a-pay-sum>div{flex-direction:row;align-items:baseline;justify-content:space-between;padding:12px 16px}.a-pay-sum>div+div{border-left:0;border-top:1px solid var(--line)}.a-pay-sum b{font-size:22px}.a-pay-form,.a-pay-form:has(select[name=stageId]){grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.a-pay-form .btn{grid-column:1/-1}.a-pay-form input,.a-pay-form select{width:100%}.a-pay-list li{grid-template-columns:90px minmax(0,1fr) auto;gap:8px;font-size:14px}.a-pay-list li>span:nth-child(4){grid-column:1/-1}.a-pay-list li b{font-size:15px}.a-pay-list li .btn{padding:8px;font-size:14px}.payment-schedule .estimate-options>article{padding:16px}
  .customer-history-card{padding:20px}.customer-history-grid{gap:12px}.customer-history-head{gap:12px}.customer-history-head>.badge{flex-shrink:0}.customer-history-card .dispatch-actions,.customer-history-item>div:last-child{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.customer-history-card .dispatch-actions .btn{padding:8px}
  .users-table table,.users-table tbody{display:block;min-width:0;width:100%}.users-table thead{display:none}.users-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:20px;border-bottom:1px solid var(--line)}.users-table tr:last-child{border-bottom:0}.users-table td{min-width:0;padding:0;border:0}.users-table td:first-child{grid-column:1;grid-row:1}.users-table td:nth-child(4){grid-column:2;grid-row:1;text-align:right}.users-table td:nth-child(2),.users-table td:nth-child(3),.users-table td:nth-child(5),.users-table td:nth-child(6){grid-column:1/-1}.users-table td:nth-child(5)::before{content:"현장 표시 이름 · ";color:var(--muted)}.user-management-actions{align-items:start}.user-management-actions>.muted{width:100%}.onboarding-panel .auth-split>.card{padding:16px}.auth-split{grid-template-columns:1fr}
  .a-figures{gap:12px;margin-top:20px}.a-figures>div{padding:16px}.a-figures dd{font-size:23px}.a-table-block{padding:20px}.a-table thead{display:none}.a-table,.a-table tbody{display:block;width:100%}.a-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0;border-top:1px solid var(--line)}.a-table td{padding:0;border:0;text-align:left!important;font-size:15px}.a-table td:first-child{grid-column:1/-1;font-size:16px;font-weight:650}.a-table td[data-label]::before{content:attr(data-label);display:block;margin-bottom:4px;font-size:14px;font-weight:400;color:var(--muted)}.a-table td[colspan]{grid-column:1/-1;font-weight:400}.join-requests tr{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row dense}.join-requests td[data-label="이메일"],.join-requests td:last-child{grid-column:1/-1}.a-table-block h2{margin-bottom:12px}
  .tech-mobile{width:100%;max-width:600px}.a-tech-head{align-items:center;margin-bottom:20px}.t-card{padding:20px;margin-top:16px}.t-card.is-now{padding:19px;box-shadow:3px 3px 0 var(--ground-raised)}.t-name{font-size:24px}.t-main{margin-top:16px}.t-time{font-size:18px}.t-top{align-items:start}.t-more>summary{font-size:14px}.tech-mobile .photo-boxes{grid-template-columns:1fr}.t-card .photo-boxes{grid-template-columns:repeat(2,minmax(0,1fr))}.t-card .d-checklist{grid-template-columns:1fr}.t-card .estimate-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.t-card .estimate-actions .btn{width:100%;padding:10px}
  .projects{width:100%}.projects h1{font-size:26px}.projects .estimate-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.projects .estimate-actions .btn{padding:10px;font-size:14px;min-width:0;width:100%}.project-row{padding:20px;grid-template-columns:minmax(0,1fr);gap:8px}.project-row strong{grid-column:1;grid-row:auto;justify-self:start}.project-day{padding:16px}.project-day summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.project-day summary>span:last-child{grid-column:1/-1}.project-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.project-schedule{display:grid;grid-template-columns:minmax(0,1fr)}.daily-log label{font-size:15px}
  .public h1,.public-completion-hero h1{font-size:25px}.public-completion-hero{padding:24px 20px}.public-completion-sheet{padding:20px}.public-total-card{padding:20px;display:block}.public-total-card span{display:block}.public-total-card strong{display:block;font-size:32px;margin-top:4px}.public-total-card small{text-align:left}.public-summary-grid{grid-template-columns:1fr;gap:0}.public-summary-grid>.info{grid-template-columns:80px minmax(0,1fr)}.public-details-grid,.public-guidance-grid{grid-template-columns:1fr}.public-detail-card{padding:16px}.public-photo-compare{gap:12px}.public-confirmation-panel{padding:20px 16px;margin-top:24px}.public-consent-wording{padding:12px}.public-confirm-button{font-size:16px;padding:14px 12px}.public-charge-card{padding:16px}.public-confirmation-receipt{padding:20px 16px;gap:12px}.public-confirmation-receipt h2{font-size:17px}.public-confirmation-receipt dl>div{grid-template-columns:72px minmax(0,1fr)}.public-completion-sheet>div[style*="display:flex"]{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}.public-completion-sheet>div[style*="display:flex"]>.btn:only-child{grid-column:1/-1}.public-payment-schedule{padding:16px}.estimate-options>div,.estimate-option{padding:20px}.estimate-option strong{font-size:26px}.estimate-actions .btn{flex:1 1 auto}.estimate-editor{padding:20px 16px;max-height:none;min-height:0}.estimate-edit-option{padding:16px}.estimate-edit-head{grid-template-columns:minmax(0,1fr)}.estimate-item-row{gap:12px}.review-settings-row{gap:12px}
  .main.auth-main{padding:32px 16px}.auth-brand,.auth-main .auth-brand{margin-bottom:20px}.auth-shell>.top{margin-bottom:24px}.auth-panel{padding:24px 20px}.auth-grid{gap:20px}.auth-main .auth-grid>.auth-panel:first-child{box-shadow:3px 3px 0 var(--ground-raised)}.auth-main .auth-action{padding:20px 16px}.auth-main .top>.btn{align-self:start}.inquiry-steps{padding:20px}.inquiry-steps li{grid-template-columns:1fr;gap:4px}
  .modal-back{align-items:flex-end;padding:0}.modal{max-height:calc(100dvh - 24px);border:0;border-radius:20px 20px 0 0;box-shadow:var(--shadow-dialog)}.modal-head{position:relative;padding:24px 20px 16px;align-items:center}.modal-head::before{content:"";position:absolute;width:40px;height:4px;left:calc(50% - 20px);top:8px;background:#B8B3A8;border-radius:4px}.modal-head h2{font-size:20px}.modal-body{grid-template-columns:minmax(0,1fr);padding:20px 16px;gap:16px}.modal-body .field:has(>label){display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px 12px;align-items:center}.modal-body .field>label{margin:0}.modal-body .field>.muted{grid-column:2}.modal-body .field:has(>textarea){grid-template-columns:minmax(0,1fr)}.form-more-grid{grid-template-columns:minmax(0,1fr)}.field.span{grid-column:1/-1}.modal-foot{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:16px 16px calc(16px + env(safe-area-inset-bottom));gap:12px}.modal-foot>.btn{width:100%;min-width:0}.modal:has(.estimate-editor) form{min-height:0}.admin-command-back{padding:10vh 16px 16px}
}
/* Customer links: company, proof, money, explicit consent in one receipt column. */
.public.receipt{max-width:688px;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--ink);border-radius:4px 4px 14px 14px;overflow-wrap:anywhere}.public.receipt.is-confirmed{border-top-color:var(--teal)}.receipt .public-completion-hero{padding:28px 32px 24px;border:0;border-bottom:1px dashed var(--line);border-radius:0;background:none}.receipt-company{font-size:18px;font-weight:700}.receipt h1{font-size:29px;margin-top:16px}.receipt-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0;margin:24px 0 0;list-style:none}.receipt-steps li{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:14px;color:var(--muted);position:relative}.receipt-steps li::before{content:"";position:absolute;top:11px;left:0;right:0;height:1px;background:var(--line)}.receipt-steps li:first-child::before{left:50%}.receipt-steps li:last-child::before{right:50%}.receipt-steps i{display:flex;align-items:center;justify-content:center;position:relative;width:22px;height:22px;border-radius:50%;background:var(--ground-raised);font-style:normal;font-size:14px}.receipt-steps .done i{background:var(--teal);color:var(--panel)}.receipt-steps .current{color:var(--ink);font-weight:650}.receipt-steps .current i{background:var(--yellow)}.receipt .public-completion-sheet{border:0;border-radius:0;padding:0 32px 28px;overflow:visible;background:none}.receipt .public-summary-grid{grid-template-columns:1fr;gap:0;padding:16px 0;border-bottom:1px dashed var(--line)}.receipt .public-summary-grid .info{display:grid;grid-template-columns:80px minmax(0,1fr);gap:12px;border:0;padding:6px 0}.receipt .public-summary-grid .info p{margin:0;font-size:15px}.public-photo-viewer{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;max-width:100%;margin-top:16px;padding-bottom:8px}.public-photo-viewer>.public-photo-compare{flex:0 0 100%;scroll-snap-align:start}.public-photo-viewer h3{font-size:15px;margin-bottom:8px}.receipt .public-detail-card{padding:16px 0;border:0;background:none}.receipt-amounts{padding:24px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);margin-top:20px}.receipt-amounts dl{margin:16px 0}.receipt-amounts dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:6px 0}.receipt-amounts dt{color:var(--muted);font-size:15px}.receipt-amounts dd{margin:0;font-variant-numeric:tabular-nums}.receipt-amounts .public-total-card{border:0;border-top:1px solid var(--line);border-radius:0;background:none;margin-top:12px;padding-top:16px}.receipt-amounts .public-total-card dt{color:var(--ink);font-weight:650}.receipt .public-confirmation-panel{padding:24px 0;border:0;background:none;border-radius:0}.receipt .public-consent-wording{background:var(--hover);border:0;border-radius:8px}.receipt-support{margin-top:24px;padding-top:20px;border-top:1px dashed var(--line);color:var(--muted);font-size:14px}.receipt-support p{margin-top:8px}.receipt-action{position:fixed;inset:auto 0 0;z-index:34;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line)}.receipt-action>div{max-width:688px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.receipt-action span{font-size:14px;color:var(--muted);min-width:0}.receipt-action strong{display:block;color:var(--ink);font-size:24px;font-variant-numeric:tabular-nums}.receipt-action .btn{margin:0;min-height:56px;width:auto;min-width:280px}.main:has(.receipt-action){padding-bottom:calc(140px + env(safe-area-inset-bottom))}.public.public-estimate.receipt{max-width:960px;padding:28px 32px}.public-estimate .is-recommended{background:var(--yellow-soft);border:2px solid var(--ink)}.public-estimate .estimate-options{align-items:stretch}.public-project.receipt{padding:28px 32px}.public-project h2{margin-top:20px}.project-day-strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px}.project-day-strip>span{flex:1;min-width:56px;text-align:center;font-size:14px;color:var(--muted)}.project-day-strip i{display:block;height:6px;background:var(--ground-raised);border-radius:3px;margin-bottom:6px}.project-day-strip .done i{background:var(--teal)}.public-project .public-log{padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0}.public-date-row{display:flex;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);font-size:15px}.public-date-row span{color:var(--muted)}
@media(max-width:700px){.receipt .public-completion-hero{padding:22px 20px 20px}.receipt .public-completion-sheet{padding:0 20px 20px}.receipt h1{font-size:26px}.receipt-action>div{gap:12px}.receipt-action .btn{min-width:0;flex:1;font-size:16px;padding:12px}.receipt-action strong{font-size:21px}.receipt-action span{max-width:45%}.public.public-estimate.receipt,.public-project.receipt{padding:22px 20px 20px}.public-estimate .estimate-option{padding:16px;gap:6px}.public-estimate .estimate-option strong{font-size:24px}.public-estimate .estimate-option ul{font-size:14px;margin:4px 0}.receipt .public-summary-grid .info{grid-template-columns:64px minmax(0,1fr)}.receipt .public-total-card strong{font-size:28px}.receipt .public-photo-column .photo-thumb{aspect-ratio:1.18}}
/* Technician: one expanded assignment; one thumb-zone action. */
.tech-compact-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;min-height:64px;padding:12px 0;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font-size:14px;text-align:left}.tech-compact-row time{font-weight:650;font-variant-numeric:tabular-nums}.tech-compact-row time small{display:block;font-size:12px;font-weight:500;color:var(--muted)}.tech-mobile .job-stepper{margin:24px 0}.tech-mobile h3{margin-top:20px}.tech-mobile .t-card .daily-log form>button.btn{min-height:56px}.tech-mobile .t-card .t-more .btn{background:var(--panel);border-color:var(--line)}
@media(max-width:700px){.main:has(.tech-mobile){padding-bottom:calc(150px + env(safe-area-inset-bottom))}.tech-mobile .tech-next-action:not(:empty),.tech-mobile .daily-log form>button.btn{position:fixed;left:0;right:0;bottom:0;z-index:34;margin:0;width:100%;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:var(--panel);border:0;border-top:1px solid var(--line);border-radius:0}.tech-next-action .t-main{margin:0;min-height:56px}.tech-mobile .daily-log form>button.btn{background:var(--yellow);color:var(--ink);min-height:76px}.tech-mobile .t-card{padding:20px 16px}.tech-mobile .t-card.is-now{border-width:1px;padding:20px 16px}}
/* Detail A: persistent summary and real, non-destructive tabs. */
.detail-a{display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px;align-items:start}.detail-summary{position:sticky;top:24px;min-width:0}.detail-summary h1{font-size:27px}.detail-summary .d-sub{margin-top:6px}.detail-kv{margin:16px 0}.detail-kv .info{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:baseline}.detail-kv .info p{margin:0;font-size:15px}.summary-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0 12px}.detail-next{margin:16px 0}.detail-content{min-width:0}.detail-content>[role=tabpanel]{outline-offset:4px}.detail-content>[role=tabpanel]>.card,.detail-content>[role=tabpanel]>.detail-grid{margin:20px 0}.detail-content .detail-grid{grid-template-columns:1fr}.detail-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--bg)}.detail-tabs button{min-height:52px;border:0;border-bottom:3px solid transparent;background:none;color:var(--muted);font-size:15px;font-weight:600;padding:8px 4px}.detail-tabs [aria-selected=true]{color:var(--ink);border-color:var(--ink)}.detail-content .photo-grid{grid-template-columns:1fr}.detail-content h3{margin-top:20px}.detail-content .a-pay-sum b{font-size:23px}.detail-content .payment-schedule .estimate-options{grid-template-columns:1fr;gap:0}.detail-content .payment-schedule .estimate-options>article{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 16px;padding:16px 0;background:none;border:0;border-radius:0;border-bottom:1px solid var(--line)}.detail-content .payment-schedule .estimate-options>article p{font-size:14px;color:var(--muted)}.detail-content .payment-schedule .estimate-options>article .btn{grid-column:2;margin:0;align-self:end}.detail-content .a-pay-form,.detail-content .a-pay-form:has(select[name=stageId]){grid-template-columns:repeat(2,minmax(0,1fr))}.detail-content .a-pay-list li{grid-template-columns:90px minmax(0,1fr) auto}.detail-content .a-pay-list li>span:nth-child(4){grid-column:1/-1}.detail-content .d-checklist{grid-template-columns:1fr}.job-stepper{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 3px;list-style:none;margin:20px 0;padding:0}.job-stepper.owner{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 4px}.job-stepper li{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:14px;color:var(--muted);text-align:center}.job-stepper i{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:var(--panel);font-size:14px;font-style:normal}.job-stepper .done i{background:var(--ink);border-color:var(--ink);color:var(--panel)}.job-stepper .current{color:var(--ink);font-weight:650}.job-stepper .current i{background:var(--yellow);border-color:var(--yellow)}
@media(max-width:760px){.detail-a{grid-template-columns:1fr;gap:16px}.detail-summary{position:static}.detail-summary h1{font-size:27px}.job-stepper.owner{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px 4px}.detail-tabs{position:sticky;top:64px;z-index:12}.detail-summary .detail-next:not(:empty){position:fixed;left:0;right:0;bottom:calc(76px + env(safe-area-inset-bottom));z-index:34;margin:0;padding:10px 16px;background:var(--panel);border-top:1px solid var(--line)}.detail-next .btn{min-height:52px}.has-owner-nav .main:has(.detail-a){padding-bottom:calc(190px + env(safe-area-inset-bottom))}.detail-content .card-pad{padding:20px}.detail-content .a-pay-sum b{font-size:23px}}
/* Today: time marks are scheduled starts, never inferred durations. */
.today-filters{display:flex;gap:8px;margin:24px 0;overflow-x:auto;padding:2px 2px 10px;max-width:100%}.today-filters button{flex:0 0 auto;min-height:48px;padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);font-size:14px}.today-filters b{margin-left:8px;color:var(--ink);font-size:18px}.today-filters [aria-pressed=true]{border-color:var(--ink);color:var(--ink);background:var(--yellow-soft)}
.today-workbench{display:grid;grid-template-columns:minmax(0,1fr) 284px;gap:24px;align-items:start}.today-workbench>div{min-width:0}.today-timeline{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}.today-timeline header{padding:20px;border-bottom:1px solid var(--line)}.today-axis,.today-lane{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center}.today-axis{padding:16px 12px;color:var(--muted);font-size:14px;background:var(--hover)}.today-axis>div{position:relative;height:1.6em}.today-axis time{position:absolute;transform:translateX(var(--tick-shift));white-space:nowrap}.today-lane{padding:12px;border-top:1px solid var(--line-soft);font-size:14px;gap:0}.today-lane>b{padding-right:8px;overflow-wrap:anywhere}.today-track{position:relative;min-width:0;height:calc(var(--tracks)*68px);background:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--tick-step) - 1px),var(--line-soft) calc(var(--tick-step) - 1px),var(--line-soft) var(--tick-step))}.today-block{position:absolute;left:clamp(0px,var(--left),calc(100% - 136px));top:calc(var(--track)*68px);width:136px;min-height:60px;padding:7px 9px;background:var(--ground-raised);border:1px solid var(--line);border-radius:7px;text-align:left;color:var(--ink);font-size:14px;overflow:hidden}.today-block b,.today-block span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-block span{color:var(--muted)}.today-block.active{background:var(--yellow-soft);border-color:#DCC475}.today-block.done{background:var(--teal-soft);border-color:#A3C8BC}.today-block.unassigned{border-style:dashed;background:var(--hover)}.today-no-job{display:flex;align-items:center;height:100%;color:var(--muted);font-size:14px}.today-mobile-list{display:none}.today-group{margin:24px 0}.today-group h2{font-size:17px;margin-bottom:8px}.today-group small{font-weight:400;color:var(--muted)}.today-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:76px;padding:12px 0;width:100%;border:0;border-top:1px solid var(--line);background:none;text-align:left;font-size:14px;color:var(--ink)}.today-row time{font-variant-numeric:tabular-nums;font-weight:650}.today-row small{display:block;margin-top:4px;color:var(--muted)}
@media(max-width:900px){.today-workbench{grid-template-columns:1fr}.today-workbench .a-dash-side{grid-template-columns:1fr}}
@media(max-width:700px){.today-timeline{display:none}.today-mobile-list{display:block}.today-filters{margin:16px 0}.today-workbench{gap:16px}}
/* Owner phone navigation. The native dialog supplies focus containment and Escape. */
.owner-bottom-nav{display:none}
.owner-more-sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,560px);max-height:85dvh;overflow:auto;padding:24px 16px calc(24px + env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:20px 20px 0 0;background:var(--panel);color:var(--ink)}
.owner-more-sheet::backdrop{background:#141A2166}.owner-more-sheet header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.owner-more-links{display:grid;gap:8px}.owner-more-links .btn{justify-content:flex-start;min-height:48px}
@media(max-width:1100px){
  .has-owner-nav #mobileMenuToggle,.has-owner-nav #mobileMenu{display:none!important}
  .has-owner-nav .main{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
  .owner-bottom-nav:not([hidden]){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;inset:auto 0 0;z-index:35;padding:8px 16px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--panel)}
  .owner-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:52px;border:0;border-radius:8px;background:none;color:var(--muted);font-size:14px;font-weight:600}.owner-bottom-nav button[aria-current]{color:var(--ink);background:var(--yellow-soft)}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.google-signin{margin-top:20px}.google-signin-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px;margin-bottom:16px}.google-signin-divider::before,.google-signin-divider::after{content:'';flex:1;height:1px;background:var(--line)}.google-signin-button{min-height:44px;display:flex;justify-content:center}.google-signin-other{margin-top:10px;text-align:center;font-size:14px}.google-signin-other a{color:var(--muted)}
/* Unsaved-changes prompt: a small centred dialog on every screen size, above the form it guards. */
.modal-back.discard-back{align-items:center;padding:16px;z-index:60}.discard-back .modal{max-width:400px;border:1px solid var(--line);border-radius:16px}.discard-body{padding:24px 24px 8px}.discard-body h2{font-size:20px;margin:0 0 8px}.discard-body p{margin:0;color:var(--muted,#64748b);line-height:1.6}.discard-back .modal-foot{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:0;padding:16px 24px 24px}.discard-back .modal-foot>.btn{width:100%;min-width:0}
/* Document tables remain readable within the card and print at the same column widths. */
.document-item-table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;white-space:normal;margin:12px 0;font-size:13px}.document-item-table td{border:1px solid var(--line);padding:8px 5px;overflow-wrap:anywhere;word-break:normal}.document-item-table tr:first-child{font-weight:700;background:var(--hover)}.document-item-table td:first-child{width:30%}.document-item-table td:nth-child(2){width:20%}.document-item-table td:nth-child(3){width:10%}
/* Job form: 개인/사업자 choice, 기타 source text and 품목 rows. */
.customer-kind{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden}.customer-kind label{position:relative;display:flex;align-items:center;justify-content:center;min-width:96px;min-height:44px;margin:0;padding:0 16px;font-size:15px;font-weight:600;color:var(--ink-secondary,#475569);cursor:pointer}.customer-kind label+label{border-left:1px solid var(--line)}.customer-kind input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;pointer-events:none}.customer-kind label:has(input:checked){background:var(--ink,#141a21);color:#fff}.customer-kind label:has(input:focus-visible){outline:2px solid var(--focus,#2563eb);outline-offset:-2px}
#fSourceOther{margin-top:8px}.modal-body .field>#fSourceOther{grid-column:2}
/* An empty sync-badge slot must not push the header button off the content edge. */
.a-dash-actions>div:empty{display:none!important}
/* Phone cards bleed to the screen edges; a table card must not be held back by its max-width. */
@media(max-width:640px){.main:not(.auth-main) .table-wrap.card{max-width:none}}
/* 부가세 포함/별도 sits under the 금액 input, never beside or over it. */
.field>input+.customer-kind{margin-top:8px}@media(max-width:640px){.modal-body .field>input+.customer-kind{grid-column:2;margin-top:0;justify-self:start}}
.job-item-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1.2fr) auto;gap:8px;align-items:end;padding:12px 0;border-bottom:1px solid var(--line)}.job-item-row label{display:grid;gap:6px;margin:0;font-size:13px}.job-item-row input{width:100%}.job-items-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.job-items-foot>.btn{width:auto}
@media(max-width:640px){.job-item-row{grid-template-columns:repeat(2,minmax(0,1fr))}.job-item-row>label:first-child{grid-column:1/-1}.job-item-row>.btn{grid-column:1/-1}}
.report-month-picker{min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff);font:inherit}
/* Signup account-type choice: two large cards, owner or staff. */
.signup-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:16px}
.signup-type-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:190px;padding:22px;border:1.5px solid var(--line);border-radius:18px;background:var(--panel);color:inherit;font:inherit;text-align:center;cursor:pointer}
.signup-type-art{display:block;width:140px;height:auto;max-width:100%;color:var(--ink)}.signup-type-art .art-yellow{fill:var(--yellow)}.signup-type-art .art-soft{fill:var(--yellow-soft)}
.signup-type-card b{font-size:22px}
.signup-type-card span{color:var(--muted);line-height:1.5}
.signup-type-card:hover,.signup-type-card:focus-visible{border-color:currentColor;outline:none}

.t-address{display:block;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.t-address:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.input-actions{display:flex;align-items:center;gap:8px;min-width:0}.input-actions>input{flex:1;min-width:0;width:0}.input-actions>.btn{flex:0 0 auto;width:auto;min-height:44px;white-space:nowrap}.input-actions>.date-arrow{width:44px;min-width:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}.address-search-body{padding:16px;overflow:auto}#addressSearchLayer{height:min(480px,65dvh);width:100%}#addressSearchLayer iframe{max-width:100%}.owner-start{max-width:480px}.owner-start-steps{display:grid;gap:12px;padding:24px}.owner-start-step{display:flex;align-items:center;justify-content:space-between;gap:12px}.owner-start-step>.btn{width:auto;min-height:44px}
@media(max-width:640px){.modal-body .field>.input-actions{grid-column:2}}
/* Per-industry fields: hidden only, the stored values stay. */
body[data-hidden~="repeat"] [data-feature~="repeat"],
body[data-hidden~="contract"] [data-feature~="contract"],
body[data-hidden~="returnAddress"] [data-feature~="returnAddress"],
body[data-hidden~="transportFee"] [data-feature~="transportFee"],
body[data-hidden~="itemPeriod"] [data-feature~="itemPeriod"],
body[data-hidden~="vat"] [data-feature~="vat"]{display:none!important}
#fPriceBreakdown{margin-top:6px;line-height:1.5}.job-items-foot{flex-wrap:wrap}.job-items-foot>b{min-width:0;overflow-wrap:anywhere}
@media(max-width:640px){.modal-body .field>#fPriceBreakdown{grid-column:2}}
.industry-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:4px 0 0;padding:0;border:0}
.industry-cards legend{font-weight:800;margin-bottom:8px}
.industry-cards label{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:4px;padding:14px;border:1.5px solid var(--line);border-radius:14px;background:var(--panel);cursor:pointer}
.industry-cards label:has(input:checked){border-color:currentColor}
.industry-cards input{margin:0 0 4px}
.industry-cards span{color:var(--muted);font-size:14px;line-height:1.45}
.feature-picks{display:grid;gap:8px;margin-top:4px}
.feature-picks>div{display:flex;flex-wrap:wrap;gap:8px}
.feature-picks label{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);cursor:pointer}
.join-applicant{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0 0}
.join-applicant dt{color:var(--muted)}
.join-applicant dd{margin:0}
.biz-status.warn-text{color:var(--yellow-ink);font-weight:600}
.modal-body .field:has(>label)>.biz-status{grid-column:2}
.tech-sync{margin:0 0 12px}
/* Amount summary: stack the three boxes whenever their card is narrow (two-column detail on tablets), not only on phones. */
*:has(>.a-pay-sum){container-type:inline-size}
@container (max-width:560px){.a-pay-sum{grid-template-columns:1fr}.a-pay-sum>div{flex-direction:row;align-items:baseline;justify-content:space-between;padding:12px 16px}.a-pay-sum>div+div{border-left:0;border-top:1px solid var(--line)}}
.a-day-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.a-day-nav h1{margin:0}.a-day-nav .btn{min-height:44px;min-width:44px;padding:0 12px;width:auto}
.sync-note{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--muted)}.sync-note>span{color:#15803d;font-weight:700}
