:root{
  --green:#122805;--green-2:#1B3A0F;--green-3:#0D1D04;--green-ui:#2E5A1C;--green-soft:#E8F0E1;
  --gold:#C9A24B;--gold-2:#E2C87F;--gold-ink:#7A5A14;--gold-soft:#F6EDD4;
  --ivory:#F7F4EC;--card:#FFFFFF;--ink:#14210B;--ink-2:#3B4532;--muted:#5E6656;--line:#DDD6C4;--line-2:#C8BFA8;
  --red:#B42318;--red-soft:#FDECEA;--amber:#9A6B00;--amber-soft:#FFF4D6;--ok:#2E7D32;--ok-soft:#E6F4E7;
  --chart-1:#3F7A2A;--chart-2:#B8913F;
  --r:14px;--r-sm:10px;--shadow:0 1px 2px rgba(20,33,11,.06),0 4px 14px rgba(20,33,11,.06);
  --serif:'Cormorant Garamond',Georgia,serif;--sans:Inter,system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.1;color:var(--ink);font-variant-numeric:lining-nums}
h1{font-size:2.1rem}h2{font-size:1.55rem}h3{font-size:1.2rem}
.small{font-size:.86rem}.muted{color:var(--muted)}.right{text-align:right}.nowrap{white-space:nowrap}
.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1;min-width:0}
.stack>*+*{margin-top:12px}.stack-lg>*+*{margin-top:20px}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}

/* shell */
.shell{display:flex;min-height:100vh}
.sidebar{width:248px;flex:0 0 248px;background:var(--green);color:#EDE8D8;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:18px 12px;overflow-y:auto;z-index:30}
.brand{display:flex;align-items:center;gap:10px;padding:0 6px 16px;border-bottom:1px solid rgba(201,162,75,.35);margin-bottom:12px;text-decoration:none}
.brand img{width:46px;height:46px}
.brand b{display:block;font-family:var(--serif);font-size:1.45rem;color:#fff;font-weight:600;line-height:1}
.brand span{display:block;font-size:.56rem;letter-spacing:.1em;white-space:nowrap;color:var(--gold-2);margin-top:4px}
.nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;text-decoration:none;color:#EDE8D8;font-size:.98rem;margin-bottom:2px;transition:background .15s}
.nav a:hover{background:rgba(255,255,255,.07)}
.nav a.on{background:var(--gold);color:#17140A;font-weight:600}
.nav .em{font-size:1.2rem;width:26px;text-align:center}
.nav .head{font-size:.7rem;letter-spacing:.14em;color:#B9BCA8;margin:14px 12px 6px}
.side-foot{margin-top:auto;padding:12px 6px 0;border-top:1px solid rgba(201,162,75,.25)}
.who{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:#EDE8D8;cursor:pointer;padding:6px;border-radius:12px;text-align:left}
.who:hover{background:rgba(255,255,255,.07)}
.side-btn{flex:1;background:rgba(255,255,255,.08);color:#EDE8D8;border-color:rgba(201,162,75,.4)}
.side-btn:hover{background:rgba(201,162,75,.2)}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--gold-soft);display:grid;place-items:center;font-size:1.25rem;flex:0 0 auto}
.main-col{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:12px;padding:14px 26px;background:rgba(247,244,236,.92);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}
.topbar h1{font-size:1.75rem}
.burger{display:none;border:1px solid var(--line-2);background:#fff;border-radius:10px;width:44px;height:44px;font-size:1.2rem;cursor:pointer}
.icon-btn{border:1px solid var(--line-2);background:#fff;border-radius:999px;height:42px;min-width:42px;padding:0 12px;font-size:1.1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.page{padding:22px 26px 60px;width:100%}
.scrim{display:none}
@media (max-width:900px){
  .sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.3)}
  .sidebar.open{transform:none}
  .scrim.open{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:25}
  .burger{display:inline-grid;place-items:center}
  .topbar{padding:10px 14px}.topbar h1{font-size:1.4rem}
  .page{padding:16px 14px 80px}
}

/* cards and pieces */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow)}
.card.tight{padding:12px 14px}
.card h3{margin-bottom:10px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.card-head h3{margin:0}
.hero{background:var(--green);color:#F2EFE6;border-radius:18px;padding:22px 24px;position:relative;overflow:hidden}
.hero h2{color:#fff;font-size:2rem}
.hero p{color:#D9D6C8}
.hero .gold{color:var(--gold-2)}
.hero::after{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;border:1px solid rgba(201,162,75,.35)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 18px;border-radius:999px;border:1px solid transparent;font-weight:600;font-size:.96rem;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .1s,background .15s}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--green-2);color:#fff}
.btn-primary:hover{background:var(--green-ui)}
.btn-gold{background:var(--gold);color:#17140A}
.btn-gold:hover{background:var(--gold-2)}
.btn-line{background:#fff;border-color:var(--line-2);color:var(--ink)}
.btn-line:hover{border-color:var(--green-ui)}
.btn-wa{background:#25D366;color:#fff}
.btn-danger{background:#fff;border-color:#E3B4AF;color:var(--red)}
.btn-sm{min-height:36px;padding:6px 13px;font-size:.86rem}
.btn-lg{min-height:56px;padding:14px 26px;font-size:1.05rem}
.btn[disabled]{opacity:.55;cursor:wait}
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.8rem;font-weight:600;background:var(--green-soft);color:var(--green-2);white-space:nowrap}
.pill.gold{background:var(--gold-soft);color:var(--gold-ink)}
.pill.red{background:var(--red-soft);color:var(--red)}
.pill.amber{background:var(--amber-soft);color:var(--amber)}
.pill.grey{background:#EEEBE3;color:var(--ink-2)}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--line-2);background:#fff;border-radius:999px;padding:8px 14px;font-size:.9rem;cursor:pointer;font-weight:500}
.chip.on{background:var(--green-2);border-color:var(--green-2);color:#fff}
.field{display:block}
.field>span{display:block;font-size:.88rem;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.input,select.input,textarea.input{width:100%;background:#fff;border:1.5px solid var(--line-2);border-radius:12px;padding:12px 14px;font-size:1rem;outline:none;min-height:48px}
.input:focus{border-color:var(--green-ui);box-shadow:0 0 0 3px rgba(46,90,28,.15)}
textarea.input{min-height:90px;resize:vertical}
.search{position:relative}
.search .input{padding-left:42px}
.search::before{content:'🔎';position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:1rem}
.err{color:var(--red);font-size:.9rem;margin-top:6px;font-weight:500}
.list{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.list-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);text-decoration:none;cursor:pointer}
.list-row:last-child{border-bottom:0}
.list-row:hover{background:#FBF9F3}
.initials{width:42px;height:42px;border-radius:50%;background:var(--gold-soft);color:var(--gold-ink);font-weight:700;display:grid;place-items:center;flex:0 0 auto;font-size:.95rem}
.empty{text-align:center;padding:36px 16px;color:var(--muted)}
.empty .big{font-size:2.6rem;margin-bottom:6px}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
.tab{background:none;border:0;padding:10px 14px;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}
.tab.on{color:var(--ink);border-bottom-color:var(--gold)}
table.t{width:100%;border-collapse:collapse;font-size:.94rem}
table.t th{text-align:left;font-size:.8rem;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line)}
table.t td{padding:10px;border-bottom:1px solid #EEE9DC;vertical-align:top}
table.t tr:last-child td{border-bottom:0}
table.t .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.scroll-x{overflow-x:auto}

/* stats */
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--shadow);cursor:default;text-align:left;width:100%}
button.stat{cursor:pointer}
button.stat:hover{border-color:var(--gold)}
.stat .lbl{font-size:.86rem;color:var(--ink-2);font-weight:600;display:flex;align-items:center;gap:6px}
.stat .val{font-family:var(--sans);font-size:clamp(1.35rem,2.1vw,1.85rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin-top:6px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat .sub{font-size:.82rem;color:var(--muted);margin-top:4px}
.delta{font-size:.82rem;font-weight:700;margin-top:6px;display:inline-flex;align-items:center;gap:4px}
.delta.good{color:var(--ok)}.delta.bad{color:var(--red)}.delta.flat{color:var(--muted)}

/* stage track */
.track{display:flex;gap:4px;margin:8px 0 4px}
.track span{flex:1;height:7px;border-radius:999px;background:#E9E4D6}
.track span.done{background:var(--green-ui)}
.track span.now{background:var(--gold)}
.swatch{display:inline-block;vertical-align:middle;width:34px;height:34px;border-radius:9px;border:1px solid rgba(0,0,0,.12);flex:0 0 auto}
.swatch.lg{display:block;width:100%;height:84px;border-radius:12px;margin-bottom:8px}

/* wizard */
.wiz-bar{height:8px;background:#E9E4D6;border-radius:999px;overflow:hidden;margin:6px 0 18px}
.wiz-bar>div{height:100%;background:linear-gradient(90deg,var(--green-ui),var(--gold));border-radius:999px;transition:width .3s}
.wiz-steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.wiz-step{font-size:.8rem;padding:5px 11px;border-radius:999px;background:#EEEBE3;color:var(--ink-2);font-weight:600;border:0;cursor:pointer}
.wiz-step.on{background:var(--green-2);color:#fff}
.wiz-step.done{background:var(--green-soft);color:var(--green-2)}
.wiz-foot{position:sticky;bottom:0;background:rgba(247,244,236,.96);backdrop-filter:blur(6px);padding:14px 0;margin-top:20px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center;z-index:5}
.pick{display:block;cursor:pointer;background:#fff;border:2px solid var(--line);border-radius:14px;padding:14px;text-align:left;width:100%;transition:border-color .12s,box-shadow .12s,transform .1s}
.pick:hover{border-color:var(--gold)}
.pick:active{transform:scale(.98)}
.pick.on{border-color:var(--green-ui);box-shadow:0 0 0 3px rgba(46,90,28,.15);background:#FBFDF8}
.pick .em{font-size:2rem}
.pick b{display:block;margin-top:4px}
.opt{border:1.5px solid var(--line-2);background:#fff;border-radius:999px;padding:9px 15px;cursor:pointer;font-weight:500}
.opt.on{background:var(--green-2);border-color:var(--green-2);color:#fff;font-weight:600}
.sig{width:100%;height:190px;background:#fff;border:1.5px dashed var(--line-2);border-radius:14px;touch-action:none;display:block}

/* pin pad */
.login{min-height:100vh;background:var(--green);display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden}
.login::before,.login::after{content:'';position:absolute;border-radius:50%;border:1px solid rgba(201,162,75,.25)}
.login::before{width:620px;height:620px;left:-200px;top:-220px}
.login::after{width:520px;height:520px;right:-180px;bottom:-200px}
.login-box{position:relative;z-index:1;width:100%;max-width:880px;text-align:center;color:#F2EFE6}
.login-box h1{color:#fff;font-size:2.6rem}
.login-box .sub{color:var(--gold-2);letter-spacing:.2em;font-size:.72rem;margin-top:6px}
.who-grid{display:grid;grid-template-columns:repeat(auto-fill,130px);justify-content:center;gap:12px;margin-top:22px}
.who-tile{background:rgba(255,255,255,.06);border:1px solid rgba(201,162,75,.35);border-radius:16px;padding:16px 8px;color:#fff;cursor:pointer;transition:background .15s,transform .1s}
.who-tile:hover{background:rgba(201,162,75,.18)}
.who-tile:active{transform:scale(.97)}
.who-tile .em{font-size:2rem}
.who-tile b{display:block;margin-top:6px;font-size:1rem}
.who-tile small{color:var(--gold-2);font-size:.75rem}
.who-head{color:var(--gold-2);font-size:.75rem;letter-spacing:.16em;text-align:center;margin:24px 0 -10px}
.pin-card{background:#fff;color:var(--ink);border-radius:22px;padding:26px;max-width:380px;margin:24px auto 0;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.dots{display:flex;gap:14px;justify-content:center;margin:16px 0 20px}
.dots span{width:16px;height:16px;border-radius:50%;border:2px solid var(--green-ui)}
.dots span.on{background:var(--green-ui)}
.dots.shake{animation:shake .35s}
@keyframes shake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.keys button{height:62px;border-radius:16px;border:1px solid var(--line);background:#FBF9F3;font-size:1.5rem;font-weight:600;cursor:pointer}
.keys button:active{background:var(--gold-soft)}

/* celebration */
.celebrate{position:fixed;inset:0;display:grid;place-items:center;z-index:200;pointer-events:none}
.celebrate .box{background:#fff;border:2px solid var(--gold);border-radius:24px;padding:26px 34px;text-align:center;box-shadow:0 30px 80px rgba(18,40,5,.35);animation:pop .45s cubic-bezier(.2,1.6,.4,1);max-width:90vw}
.celebrate .box .em{font-size:3.4rem;animation:bell 0.9s ease-in-out 2}
.celebrate .box h2{font-size:2rem;margin-top:6px}
.celebrate .box p{color:var(--ink-2);margin-top:4px}
.celebrate.out .box{animation:fade .4s forwards}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes fade{to{transform:scale(.9);opacity:0}}
@keyframes bell{0%,100%{transform:rotate(0)}20%{transform:rotate(18deg)}40%{transform:rotate(-16deg)}60%{transform:rotate(10deg)}80%{transform:rotate(-6deg)}}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--green);color:#fff;padding:12px 20px;border-radius:999px;font-weight:600;z-index:150;box-shadow:0 10px 30px rgba(0,0,0,.25);animation:pop .3s}
.toast.bad{background:var(--red)}

/* modal and drawer */
.modal-bg{position:fixed;inset:0;background:rgba(13,29,4,.45);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:5vh 14px;overflow-y:auto}
.modal{background:#fff;border-radius:20px;width:100%;max-width:620px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,.3)}
.modal.wide{max-width:920px}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.x{border:0;background:#F1EDE2;border-radius:50%;width:38px;height:38px;font-size:1.2rem;cursor:pointer}

/* workshop board */
.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}
.col{flex:0 0 270px;background:#EFEADD;border-radius:16px;padding:10px}
.col-head{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 10px;font-weight:700}
.job{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:8px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04);text-align:left;width:100%;display:block}
.job:hover{border-color:var(--gold)}
.job .top{display:flex;align-items:center;gap:8px}
.job .em{font-size:1.4rem}
.mini{height:5px;background:#E9E4D6;border-radius:999px;overflow:hidden;margin-top:8px}
.mini>div{height:100%;background:var(--green-ui)}
.step{display:flex;align-items:center;gap:12px;padding:12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;width:100%;text-align:left;margin-bottom:8px}
.step .tick{width:30px;height:30px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;flex:0 0 auto;font-size:1rem}
.step.done{background:var(--green-soft);border-color:#BFD4AF}
.step.done .tick{background:var(--green-ui);border-color:var(--green-ui);color:#fff}
.step.done .nm{text-decoration:line-through;color:var(--muted)}

/* goal ring */
.ring{position:relative;width:120px;height:120px;flex:0 0 auto}
.ring svg{transform:rotate(-90deg)}
.ring .in{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.ring .in b{font-family:var(--sans);font-weight:700;font-size:1.7rem;line-height:1}
.leader{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #EEE9DC}
.leader:last-child{border-bottom:0}
.medal{width:28px;text-align:center;font-size:1.2rem}
.bar-row{display:grid;grid-template-columns:minmax(110px,1.3fr) minmax(40px,1fr) minmax(84px,auto);gap:10px;align-items:center;margin:8px 0;font-size:.9rem}
.bar-row .right{white-space:nowrap}
.bar-lbl{min-width:0;line-height:1.25}
.bar-row .bar{height:14px;background:#EFEADD;border-radius:999px;overflow:hidden}
.bar-row .bar>div{height:100%;background:var(--chart-1);border-radius:999px}
.bar-row .bar>div.over{background:var(--red)}
.attn{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #EEE9DC}
.attn:last-child{border-bottom:0}
.attn .em{font-size:1.3rem}

/* measurement figure */
.figure{display:flex;gap:10px;justify-content:center}
.figure svg{width:150px;height:auto}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}

.mfield.changed .input{border-color:var(--gold);background:var(--gold-soft)}


/* calendar */
.legend{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-weight:600;font-size:.8rem}
.k-measurement{background:#F6EDD4;color:#6B4E10;border-color:#E2C87F}
.k-fitting{background:#E3EFDA;color:#1B3A0F;border-color:#B7D3A2}
.k-extra{background:#FFE9C7;color:#8A4B00;border-color:#F0C27A}
.k-collection{background:#E4ECF7;color:#1F3B63;border-color:#B9CBE6}
.faded{opacity:.55}
.cal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-dow{font-size:.8rem;font-weight:700;color:var(--muted);padding:4px 6px}
.cal-cell{background:#fff;border:1px solid var(--line);border-radius:10px;min-height:108px;padding:6px;cursor:pointer;overflow:hidden}
.cal-cell:hover{border-color:var(--gold)}
.cal-cell.out{background:#F3EFE5}
.cal-cell.today{border:2px solid var(--gold)}
.cal-num{font-weight:700;font-size:.9rem;margin-bottom:4px}
.appt{display:block;width:100%;text-align:left;border:1px solid;border-radius:6px;padding:2px 6px;margin-bottom:3px;font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.cal-week{display:grid;min-width:max-content}
.cal-dayhead{text-align:center;padding:8px 4px;border-bottom:1px solid var(--line);font-size:.9rem;position:sticky;top:0;background:#fff;z-index:2}
.cal-dayhead.today{color:var(--gold-ink);background:var(--gold-soft);border-radius:8px 8px 0 0}
.cal-hours div{font-size:.72rem;color:var(--muted);text-align:right;padding-right:8px;border-top:1px solid #F0EBDF;box-sizing:border-box}
.cal-col{position:relative;border-left:1px solid #EEE9DC;background:repeating-linear-gradient(180deg,#fff 0 43px,#F6F2E8 43px 44px)}
.cal-arrow{font-size:1.4rem;line-height:1;min-width:40px;padding:4px 10px}
.cal-slot{position:absolute;left:0;right:0;border:0;background:transparent;cursor:pointer}
.cal-slot:hover{background:rgba(201,162,75,.15)}
.cal-ev{position:absolute;left:3px;right:3px;border:1px solid;border-radius:8px;padding:3px 7px;gap:1px;text-align:left;font-size:.78rem;line-height:1.25;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;z-index:1;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.cal-ev span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;margin-top:10px}
.mini-day{border:1px solid transparent;background:#fff;border-radius:10px;height:40px;font-weight:600;cursor:pointer}
.mini-day:hover{border-color:var(--gold)}
.mini-day.out{color:#B5AE9C}
.mini-day.today{border-color:var(--gold)}
.mini-day.on{background:var(--green-2);color:#fff}
.mini-day[disabled]{opacity:.35;cursor:default}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin-top:10px}
.slot{border:1.5px solid var(--line-2);background:#fff;border-radius:12px;padding:9px 4px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;line-height:1.2}
.slot small{font-weight:500;font-size:.7rem;color:var(--amber)}
.slot.busy{background:#FFF8E8}
.slot.on{background:var(--green-2);border-color:var(--green-2);color:#fff}
.slot.on small{color:var(--gold-2)}


/* garment drawings */
.garment{display:block;margin:0 auto;max-width:100%}
.garment *{transition:fill .35s ease}
.garment-empty{display:grid;place-items:center;font-size:3rem;background:#F3EFE5;border-radius:12px}
.design{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:start}
.preview{background:radial-gradient(circle at 50% 30%,#FFFFFF 0,#F3EFE5 75%);border:1px solid var(--line);border-radius:16px;padding:12px;text-align:center;position:sticky;top:84px}
.preview.sm{position:static;padding:6px;border-radius:12px;width:110px;flex:0 0 auto}
.pick-art{height:112px;display:grid;place-items:center}
.lineup{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px}
.lineup .preview{position:static;min-width:170px}
@media (max-width:760px){
  .design{grid-template-columns:1fr}
  .preview{position:static}
  .design>.preview{position:sticky;top:62px;z-index:4;padding:6px;box-shadow:0 6px 14px rgba(20,33,11,.08)}
  .design>.preview .garment{height:170px!important}
}


/* client journey */
.step-no{font-size:.7rem;font-weight:800;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:rgba(226,200,127,.22);color:var(--gold-2)}
.nav a.on .step-no{background:rgba(23,20,10,.15);color:#17140A}
.journey{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.journey a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;text-decoration:none;position:relative;box-shadow:var(--shadow)}
.journey a:hover{border-color:var(--gold)}
.journey a b{display:block;font-size:1.6rem;line-height:1.1;margin-top:4px}
.journey a span{font-size:.8rem;color:var(--ink-2);font-weight:600}
.journey a:not(:last-child)::after{content:'›';position:absolute;right:-9px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:1.3rem;z-index:1}
@media (max-width:900px){.journey{grid-template-columns:repeat(3,minmax(0,1fr))}.journey a::after{display:none}}

/* design studio */
.line-tabs{display:flex;gap:8px;overflow-x:auto;align-items:stretch;padding-bottom:4px}
.line-tab{display:flex;align-items:stretch;background:#fff;border:1.5px solid var(--line);border-radius:14px;flex:0 0 auto}
.line-tab.on{border-color:var(--green-ui);box-shadow:0 0 0 3px rgba(46,90,28,.12)}
.lt-main{display:flex;gap:8px;align-items:center;background:none;border:0;padding:6px 10px;cursor:pointer;text-align:left}
.lt-art{width:40px;display:grid;place-items:center;font-size:1.6rem}
.lt-x{border:0;background:none;color:var(--muted);font-size:1.2rem;padding:0 10px;cursor:pointer;border-left:1px solid var(--line)}
.studio{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,390px);gap:16px;align-items:start}
.stage{position:sticky;top:84px;background:radial-gradient(circle at 50% 35%,#FFFFFF 0,#F1ECDF 80%);border:1px solid var(--line);border-radius:20px;padding:14px}
.stage-art{display:grid;place-items:center;min-height:440px}
.stage-info{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:10px}
.panel{display:flex;flex-direction:column;gap:6px}
.cat{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cat.open{border-color:var(--gold)}
.cat-head{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:12px 14px;cursor:pointer;text-align:left}
.cat-head .em{font-size:1.2rem;width:24px;text-align:center}
.cat-head .caret{color:var(--muted)}
.cat-body{padding:4px 14px 14px}
.opt-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.opt-tile{background:#FBF9F3;border:2px solid var(--line);border-radius:12px;padding:6px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.78rem;font-weight:600;line-height:1.15;text-align:center}
.opt-tile:hover{border-color:var(--gold)}
.opt-tile.on{border-color:var(--green-ui);background:#F3F8EE;box-shadow:0 0 0 3px rgba(46,90,28,.12)}
.swatch.dot{width:16px;height:16px;border-radius:50%}
.mini-line{display:flex;gap:2px;margin-top:6px}
.mtable{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 14px;margin-top:6px}
.mtable div{display:flex;justify-content:space-between;border-bottom:1px dashed #E6E0D0;padding:3px 0;font-size:.88rem}
.mfield.bad .input{border-color:var(--red)}
.posture{display:flex;flex-direction:column;align-items:center;gap:2px;border:1.5px solid var(--line-2);background:#fff;border-radius:12px;padding:6px 8px;cursor:pointer;font-size:.78rem;font-weight:600;min-width:84px;color:var(--ink-2)}
.posture.on{background:var(--green-2);border-color:var(--green-2);color:#fff}
.posture-ic{width:30px;height:44px}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.photo-slot{display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff;border:1.5px dashed var(--line-2);border-radius:14px;padding:10px;cursor:pointer;text-decoration:none;text-transform:capitalize}
.photo-slot img{width:100%;height:150px;object-fit:cover;border-radius:10px}
.photo-slot .ph{font-size:2.4rem;height:150px;display:grid;place-items:center}
@media (max-width:980px){
  .studio{grid-template-columns:1fr}
  .stage{position:sticky;top:62px;z-index:4;padding:8px}
  .stage-art{min-height:0}
  .stage-art .garment{height:200px!important}
}


/* design studio, in the style of an online shirt designer */
.ts{display:grid;grid-template-columns:92px minmax(260px,330px) minmax(0,1fr);gap:12px;align-items:start}
.ts-rail{display:flex;flex-direction:column;gap:6px;position:sticky;top:80px;max-height:calc(100vh - 100px);overflow-y:auto;padding-right:2px}
.ts-tile{display:flex;flex-direction:column;align-items:center;gap:3px;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:6px 4px;cursor:pointer;min-height:84px}
.ts-tile:hover{border-color:var(--gold)}
.ts-tile.on{border-color:var(--green-2);background:var(--green-2);color:#fff}
.ts-ic{height:50px;display:grid;place-items:center;font-size:1.6rem;background:#FBF9F3;border-radius:8px;width:100%;overflow:hidden}
.ts-label{font-size:.68rem;font-weight:700;text-align:center;line-height:1.1}
.ts-panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);position:sticky;top:80px;max-height:calc(100vh - 100px);display:flex;flex-direction:column;overflow:hidden}
.ts-panel-head{background:var(--green);color:#fff;padding:10px 14px;display:flex;justify-content:space-between;gap:8px;align-items:center}
.ts-panel-head .muted{color:var(--gold-2)}
.ts-panel-body{padding:10px;overflow-y:auto}
.ts-list{display:flex;flex-direction:column;gap:4px}
.ts-row{display:flex;gap:10px;align-items:center;background:#fff;border:1.5px solid transparent;border-bottom-color:#EEE9DC;border-radius:10px;padding:6px 8px;cursor:pointer;text-align:left;width:100%}
.ts-row:hover{background:#FBF9F3}
.ts-row.on{border-color:var(--green-ui);background:#F3F8EE}
.ts-row b{display:block;font-size:.92rem}
.ts-row .small{display:block;line-height:1.3}
.ts-row-art{flex:0 0 64px;height:64px;display:grid;place-items:center;background:#FBF9F3;border-radius:8px;overflow:hidden}
.ts-row-art.em{font-size:1.2rem;color:var(--green-ui);font-weight:800}
.swatch.row{width:52px;height:52px;border-radius:8px;flex:0 0 auto}
.swatch.tile{width:100%;height:50px;border-radius:8px}
.ts-stage{position:sticky;top:80px;background:radial-gradient(circle at 45% 35%,#FFFFFF 0,#ECE7DA 85%);border:1px solid var(--line);border-radius:20px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;min-height:520px}
.ts-art{display:grid;place-items:center}
.ts-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:4px;text-align:right;min-width:120px}
.ts-name{font-family:var(--serif);font-size:1.35rem;color:var(--ink-2)}
.ts-price{font-family:var(--serif);font-size:2.4rem;font-weight:700;line-height:1}
.ts-tools{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-top:12px}
.ts-tools .icon-btn{font-size:.85rem;height:38px}
.ts-tools .icon-btn.on{background:var(--green-2);color:#fff;border-color:var(--green-2)}
@media (max-width:1180px){
  .ts{grid-template-columns:84px minmax(0,1fr)}
  .ts-stage{grid-column:2;grid-row:1;position:static;min-height:0}
  .ts-panel{grid-column:2;position:static;max-height:none}
  .ts-rail{grid-row:1 / span 2}
  .ts-stage .garment{height:330px!important}
}
@media (max-width:700px){
  .ts{grid-template-columns:1fr}
  .ts-rail{flex-direction:row;overflow-x:auto;position:static;max-height:none;grid-row:auto}
  .ts-tile{min-width:76px}
  .ts-stage{grid-column:1;position:sticky;top:62px;z-index:4;grid-template-columns:1fr auto;padding:8px}
  .ts-stage .garment{height:190px!important}
  .ts-panel{grid-column:1}
  .ts-price{font-size:1.6rem}
}


/* the workshop board: a filterable task board */
.stage-strip{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
.stage-chip{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:8px 6px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:2px;min-width:0}
.stage-chip b{font-size:1.3rem;line-height:1}
.stage-chip span{font-size:.7rem;font-weight:600;color:var(--ink-2);line-height:1.15}
.stage-chip.on{background:var(--green-2);border-color:var(--green-2);color:#fff}
.stage-chip.on span{color:var(--gold-2)}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
select.input.sel{width:auto;min-height:42px;padding:8px 12px;font-size:.92rem;flex:0 0 auto}
.filters .search{flex:1 1 220px}
.tboard{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);gap:10px;overflow-x:auto;height:calc(100vh - 280px);min-height:420px}
.tcol{background:#EFEADD;border-radius:14px;display:flex;flex-direction:column;min-height:0}
.tcol-head{display:flex;justify-content:space-between;align-items:center;padding:10px 10px 8px;font-weight:700;font-size:.9rem}
.tcol-body{overflow-y:auto;padding:0 8px 8px;display:flex;flex-direction:column;gap:6px;min-height:0}
.tcard{display:flex;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;text-align:left;cursor:pointer;width:100%;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.tcard:hover{border-color:var(--gold)}
.tcard.late{border-left:4px solid var(--red)}
.tcard-art{flex:0 0 34px;display:grid;place-items:center}
.tcard-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.tcard-body b{font-size:.88rem}
.tcard-meta{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:3px}
.tcard-meta .pill{font-size:.7rem;padding:2px 7px}
.who-dot{margin-left:auto;width:24px;height:24px;border-radius:50%;background:var(--gold-soft);display:grid;place-items:center;font-size:.85rem}
.mini>span{display:block;height:100%;background:var(--green-ui)}
.tlist{display:flex;flex-direction:column;gap:10px}
.tgroup{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.tgroup summary{display:flex;gap:8px;align-items:center;padding:10px 14px;font-weight:700;cursor:pointer;background:#F6F2E8}
.trow{cursor:pointer}.trow:hover td{background:#FBF9F3}.trow.late td:first-child{box-shadow:inset 4px 0 0 var(--red)}
.drawer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:18px;align-items:start}
.drawer-side{position:sticky;top:0}
@media (max-width:900px){.drawer-grid{grid-template-columns:1fr}.stage-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.tboard{height:auto;grid-auto-columns:minmax(230px,80vw)}.tcol-body{max-height:60vh}}


.date-f{display:flex;flex-direction:column;gap:2px}
.date-f .input{min-height:42px;padding:6px 10px;width:150px}
.grid-t{table-layout:auto}
.grid-t td{vertical-align:middle}
.garm-ic{width:30px;display:inline-grid;place-items:center}
.msg-cell{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.msg-cell .btn{min-height:32px;padding:5px 11px;font-size:.82rem}
.tcard{flex-wrap:nowrap}
@media (max-width:1100px){.hide-sm{display:none}}
.linkish{background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit;font:inherit}
.who-card{border-color:var(--green-ui);display:flex;flex-direction:column;gap:4px}

/* plans, progress and capacity */
.pp{display:flex;flex-direction:column;gap:3px;min-width:150px}
.pp-row{display:grid;grid-template-columns:34px 1fr 34px;gap:6px;align-items:center}
.pp-bar{height:7px;background:#ECE7DA;border-radius:999px;overflow:hidden;display:block}
.pp-bar>span{display:block;height:100%;background:var(--green-ui);border-radius:999px}
.pp-bar>span.behind{background:var(--red)}
.pp-bar.time>span{background:#B9B2A0}
.msl{display:flex;align-items:flex-start;gap:0;margin-bottom:6px;position:relative}
.ms{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;position:relative;min-width:0;text-align:center}
.ms::before{content:'';position:absolute;top:6px;left:-50%;right:50%;height:2px;background:#DDD6C4;z-index:0}
.ms:first-child::before{display:none}
.ms.done::before,.ms.cur::before{background:var(--green-ui)}
.ms i{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid #CFC8B6;z-index:1;display:block}
.ms.done i{background:var(--green-ui);border-color:var(--green-ui)}
.ms.cur i{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 4px rgba(201,162,75,.25)}
.ms.late:not(.done) i{border-color:var(--red)}
.ms.cur.late i{background:var(--red);border-color:var(--red);box-shadow:0 0 0 4px rgba(180,35,24,.2)}
.ms-l{font-size:.64rem;font-weight:700;line-height:1.1;color:var(--ink-2)}
.ms-d{font-size:.62rem;color:var(--muted);line-height:1.1}
.ms.cur .ms-l{color:var(--ink)}
.handoff{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ho-arrow{color:var(--gold);font-weight:800}
.ho-next{color:var(--ink-2)}
.cap{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:4px 16px;margin-top:8px}
.cap-row{display:grid;grid-template-columns:110px 1fr 64px;gap:8px;align-items:center;background:none;border:0;padding:4px 6px;border-radius:8px;cursor:pointer;text-align:left}
.cap-row:hover,.cap-row.on{background:var(--gold-soft)}
.cap-who{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;font-size:.88rem}
.cap-bar{height:10px;background:#ECE7DA;border-radius:999px;overflow:hidden;display:block}
.cap-bar>span{display:block;height:100%;background:var(--green-ui)}
.cap-bar>span.high{background:var(--amber)}
.cap-bar>span.over{background:var(--red)}
.cap-n{text-align:right;color:var(--muted)}
.health{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.hcard{border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:8px 14px;display:flex;flex-direction:column;cursor:pointer;min-width:120px;text-align:left}
.hcard b{font-size:1.5rem;line-height:1}
.hcard span{font-size:.8rem;font-weight:700;white-space:nowrap}
.hcard.red b{color:var(--red)}.hcard.amber b{color:var(--amber)}.hcard.ok b{color:var(--ok)}
.hcard.on{border-color:var(--green-2);box-shadow:0 0 0 3px rgba(46,90,28,.15)}
.stage-pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1}
.stage-pills .chip{white-space:nowrap;padding:6px 11px;font-size:.84rem}
.tlist{container-type:inline-size}
.task-head{display:none}
.task{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(170px,1fr) 130px 180px;grid-template-areas:"what who when msg" "plan plan plan msg";gap:8px 14px;align-items:center;padding:10px 14px;border-bottom:1px solid #EEE9DC;cursor:pointer}
.task-what{grid-area:what}.task-who{grid-area:who}.task-when{grid-area:when}.task-plan{grid-area:plan;display:grid;grid-template-columns:1fr 210px;gap:14px;align-items:center}.task-msg{grid-area:msg}
.task:hover{background:#FBF9F3}
.task.overdue{box-shadow:inset 4px 0 0 var(--red)}
.task.risk{box-shadow:inset 4px 0 0 var(--amber)}
.task-what{display:flex;gap:8px;align-items:center}
.task-when{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.task-plan .msl{margin-bottom:0}
@container (max-width:760px){
  .task{grid-template-columns:1fr 1fr;grid-template-areas:"what when" "who who" "plan plan" "msg msg"}
  .task-plan{grid-template-columns:1fr}
}
.health{flex-wrap:wrap;align-items:flex-start}
.health .hcard{flex:0 0 auto}
.stage-pills{flex-basis:100%}
/* period tabs and counters on the workshop board */
.period{display:flex;flex-wrap:wrap;gap:4px;background:#ECE7DA;padding:4px;border-radius:12px;align-self:flex-start}
.ptab{border:0;background:none;padding:8px 16px;border-radius:9px;font-weight:700;font-size:.9rem;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.ptab.on{background:#fff;color:var(--green-2);box-shadow:0 1px 3px rgba(20,33,11,.12)}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px}
.stat{border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;text-align:center}
.stat b{font-size:1.6rem;line-height:1;color:var(--ink)}
.stat span{font-size:.78rem;font-weight:700;color:var(--ink-2);line-height:1.2}
.stat.red b{color:var(--red)}.stat.amber b{color:var(--amber)}.stat.ok b{color:var(--ok)}
.stat:hover{border-color:var(--line-2)}
.stat.on{border-color:var(--green-2);box-shadow:0 0 0 3px rgba(46,90,28,.15);background:var(--green-soft)}
.search.wide{width:100%}
.search.wide .input{width:100%}

/* WhatsApp inbox */
.wa{display:grid;grid-template-columns:330px 1fr;gap:14px;align-items:start}
.wa-list{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px;max-height:calc(100vh - 170px);overflow:auto}
.wa-row{display:flex;gap:8px;align-items:flex-start;width:100%;background:none;border:0;border-bottom:1px solid #EEE9DC;padding:10px 6px;text-align:left;cursor:pointer;border-radius:8px}
.wa-row:hover{background:#FBF9F3}.wa-row.on{background:var(--green-soft)}
.wa-prev{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.wa-thread{background:#fff;border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;height:calc(100vh - 170px);min-height:420px}
.wa-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.wa-msgs{flex:1;overflow:auto;padding:14px;background:#F4F0E6;display:flex;flex-direction:column;gap:8px}
.bubble{max-width:75%;padding:8px 12px;border-radius:12px;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.06);white-space:pre-wrap;line-height:1.4}
.bubble.in{align-self:flex-start;border-top-left-radius:4px}
.bubble.out{align-self:flex-end;background:#DCF3D0;border-top-right-radius:4px}
.bubble.failed{background:var(--red-soft)}
.bubble .meta{display:flex;gap:8px;justify-content:flex-end;font-size:.7rem;color:var(--muted);margin-top:4px;flex-wrap:wrap}
.wa-compose{border-top:1px solid var(--line);padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.wa-window{font-size:.8rem;font-weight:600;padding:6px 10px;border-radius:8px}
.wa-window.open{background:var(--ok-soft);color:var(--ok)}.wa-window.closed{background:var(--amber-soft);color:var(--amber)}
.wa-banner{display:flex;gap:10px;align-items:flex-start;background:var(--gold-soft);border:1px solid var(--gold-2);border-radius:12px;padding:10px 14px;font-size:.9rem}
.wa-back{display:none;margin-bottom:8px}
.wa-badge{background:#25D366;color:#fff;border-radius:999px;font-size:.72rem;font-weight:800;padding:1px 7px;margin-right:4px}
@media (max-width:1000px){
  .wa{grid-template-columns:1fr}
  .wa.has-thread .wa-list{display:none}
  .wa:not(.has-thread) .wa-main{display:none}
  .wa-back{display:inline-flex}
}
.copybox{display:flex;gap:8px;align-items:center;background:#F6F3EA;border:1px solid var(--line);border-radius:8px;padding:6px 8px;margin-top:4px}
.copybox code{flex:1;font-size:.8rem;white-space:pre-wrap;word-break:break-all}
/* leads, like an Airtable list */
.llist{container-type:inline-size}
.lrow{display:grid;grid-template-columns:minmax(130px,1.2fr) 58px 150px 132px 112px minmax(120px,1.6fr) 40px;gap:8px;align-items:center;padding:8px 14px;border-bottom:1px solid #EEE9DC;background:#fff}
.lrow.lhead{background:#FBF9F3;font-size:.72rem;font-weight:700;color:var(--muted);padding-top:6px;padding-bottom:6px}
.lrow.overdue{box-shadow:inset 4px 0 0 var(--red)}
.lrow.today{box-shadow:inset 4px 0 0 var(--amber)}
.lrow .l-lab{display:none}
.lrow .l-follow{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.input.cell.late{border-color:var(--red);color:var(--red);font-weight:700;background:var(--red-soft)}
.input.cell.due{border-color:var(--amber);color:var(--amber);font-weight:700;background:var(--amber-soft)}
.input.cell{min-height:36px;padding:4px 8px;font-size:.86rem;width:100%}
.l-detail .linkish{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.detail-log{margin-top:8px;font-size:.86rem;display:flex;flex-direction:column;gap:4px;max-height:200px;overflow:auto}
@container (max-width:740px){
  .lrow{grid-template-columns:1fr 1fr;grid-template-areas:"name stage" "date follow" "owner follow" "detail detail" "act act"}
  .lrow.lhead{display:none}
  .lrow .l-lab{display:block}
  .l-name{grid-area:name}.l-date{grid-area:date}.l-stage{grid-area:stage}.l-follow{grid-area:follow}.l-owner{grid-area:owner}.l-detail{grid-area:detail}.l-act{grid-area:act}
}

/* workshop board, tight */
.tight-stack{gap:10px}
.board-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.board-top .search{min-width:240px}
.board-top .search .input{width:100%}
.flow{display:flex;align-items:stretch;gap:4px}
.flow-card{flex:1;display:flex;align-items:center;gap:10px;justify-content:center;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:7px 10px;cursor:pointer;min-width:0}
.flow-card b{font-size:1.45rem;line-height:1}
.flow-card span{font-size:.8rem;font-weight:700;color:var(--ink-2);line-height:1.15;text-align:left}
.flow-card.red b{color:var(--red)}.flow-card.gold b{color:var(--gold-ink)}.flow-card.amber b{color:var(--amber)}.flow-card.ok b{color:var(--ok)}
.flow-card.on{border-color:var(--green-2);background:var(--green-soft);box-shadow:0 0 0 3px rgba(46,90,28,.15)}
.flow-arrow{align-self:center;color:var(--line-2);font-size:1.3rem;font-weight:700}
.team-strip{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.team-toggle{border:0;background:none;font-weight:800;font-size:.85rem;cursor:pointer;padding:4px 6px 4px 0;color:var(--ink)}
.tchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px;font-size:.8rem;cursor:pointer;white-space:nowrap}
.tchip b{font-size:.85rem}
.tchip.on{border-color:var(--green-2);background:var(--green-soft)}
.tchip.free{border-style:dashed;color:var(--muted)}
.tlate{color:var(--red);font-weight:700;font-size:.72rem}
.tbar{width:34px;height:5px;background:#ECE7DA;border-radius:999px;overflow:hidden;display:inline-block}
.tbar>span{display:block;height:100%;background:var(--green-ui)}.tbar>span.high{background:var(--amber)}.tbar>span.over{background:var(--red)}
.filters.tight{gap:6px}
.filters.tight .input.sel{min-height:38px;padding-top:4px;padding-bottom:4px;font-size:.88rem}
.tiny{font-size:.72rem;line-height:1.25}
.task{grid-template-columns:minmax(170px,1.3fr) minmax(150px,1.1fr) 112px minmax(110px,.8fr) 150px;grid-template-areas:"what who due plan msg";gap:10px;padding:6px 12px;align-items:center}
.task .who{grid-area:who;display:flex;flex-direction:column;gap:1px;min-width:0}
.task .due{grid-area:due;display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.task .due b{font-size:.88rem}
.task .due .pill{font-size:.7rem;padding:1px 7px}
.task-plan{display:flex;flex-direction:column;gap:4px;grid-template-columns:none;align-items:stretch;min-width:0}
.pbar{width:100%}
.task.payment{box-shadow:inset 4px 0 0 var(--gold)}
.who-sel{border:1px solid transparent;background:transparent;font-weight:700;font-size:.88rem;padding:2px 4px;margin-left:-5px;border-radius:6px;cursor:pointer;max-width:100%;color:var(--ink)}
.who-sel:hover,.who-sel:focus{border-color:var(--line-2);background:#fff}
.who-sel.none{color:var(--red)}
.who-name{font-size:.88rem}
.btn.btn-xs{min-height:30px;padding:3px 9px;font-size:.78rem;border-radius:8px}
.msg-cell{display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.msg-cell .tiny{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pbar{display:flex;align-items:center;gap:6px}
.pbar-track{position:relative;flex:1;height:7px;background:#ECE7DA;border-radius:999px}
.pbar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--green-ui);border-radius:999px}
.pbar-fill.behind{background:var(--red)}
.pbar-tick{position:absolute;top:-3px;width:2px;height:13px;background:var(--ink-2);border-radius:2px;margin-left:-1px}
.msl.compact .ms i{width:10px;height:10px}
.msl.compact .ms::before{top:4px}
.tgroup summary{padding:8px 12px}
@container (max-width:760px){
  .task{grid-template-columns:1fr 1fr;grid-template-areas:"what due" "who msg" "plan plan"}
}
@media (max-width:700px){.flow{flex-wrap:wrap}.flow-card{flex:1 1 40%}.flow-arrow{display:none}}
.hero.slim{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:14px 20px}
.hero.slim h2{font-size:1.45rem;margin-top:2px}
.hero.slim p{margin:2px 0 0}
.hpill{background:rgba(255,255,255,.1)}

/* workshop board, roomier */
.flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.flow .stat{padding:14px 10px}
.flow .stat b{font-size:2rem}
.flow .stat span{font-size:.88rem}
.stat.gold b{color:var(--gold-ink)}
.board-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.bf{display:flex;flex-direction:column;gap:4px}
.bf>span{font-size:.75rem;font-weight:700;color:var(--muted)}
.bf .input{width:100%}
.task{padding:10px 14px;gap:14px}
@container (min-width:761px){.task{grid-template-columns:minmax(200px,1.4fr) minmax(170px,1.1fr) 130px minmax(140px,1fr) 170px}}
.task .who-sel,.who-name{font-size:.95rem}
.task .due b{font-size:.95rem}
.task .tiny{font-size:.78rem}
.board-top .period{flex:none}
@media (max-width:800px){.flow,.board-filters{grid-template-columns:1fr 1fr}}
/* today: four buttons, one panel at a time */
.today-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.ttab{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:12px 16px;cursor:pointer;text-align:left;box-shadow:var(--shadow)}
.ttab:hover{border-color:var(--line-2)}
.ttab-em{font-size:1.7rem;line-height:1}
.ttab-txt{display:flex;flex-direction:column}
.ttab-txt b{font-size:1.5rem;line-height:1.05;font-family:var(--serif)}
.ttab-txt>span{font-size:.85rem;font-weight:700;color:var(--ink-2)}
.ttab.red b{color:var(--red)}.ttab.ok b{color:var(--ok)}.ttab.gold b{color:var(--gold-ink)}
.ttab.on{border-color:var(--gold);background:var(--gold-soft);box-shadow:0 0 0 3px rgba(201,162,75,.25)}
.more-btn{display:block;width:100%;margin-top:6px;padding:9px;border:0;border-radius:10px;background:#F6F3EA;font-weight:700;color:var(--green-2);cursor:pointer}
.more-btn:hover{background:var(--gold-soft)}
.team-panel{display:flex;flex-direction:column}
.team-line{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(100px,1.4fr) 110px;gap:12px;align-items:center;padding:8px 2px;border-bottom:1px solid #EEE9DC;text-decoration:none;color:inherit}
.team-who{font-weight:700}
@media (max-width:640px){.team-line{grid-template-columns:1fr 1fr}}
.skin-pick{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.skin-dot{width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line-2);cursor:pointer;padding:0;font-size:.9rem;line-height:1;color:var(--muted);background:#fff}
.skin-dot.on{box-shadow:0 0 0 2px var(--gold)}
/* new design: choose the client */
.pick-list{background:#fff;border:1px solid var(--line);border-radius:14px;max-height:460px;overflow:auto}
.pick-head{position:sticky;top:0;background:#FBF9F3;padding:8px 14px;border-bottom:1px solid var(--line);z-index:1}
.pick-row{display:flex;align-items:center;gap:14px;width:100%;background:none;border:0;border-bottom:1px solid #EEE9DC;padding:11px 14px;text-align:left;cursor:pointer}
.pick-row:hover{background:var(--gold-soft)}
.pick-go{font-weight:700;color:var(--green-2);font-size:.85rem;white-space:nowrap}
.pick-meta{white-space:nowrap}
@media (max-width:640px){.pick-meta{display:none}}
/* measure: drawings beside the numbers */
.mlayout{display:grid;grid-template-columns:minmax(300px,.85fr) 1.15fr;gap:16px;align-items:start}
.mlayout .mgrid{grid-template-columns:repeat(4,minmax(0,1fr))}
.mlayout .mdiag svg{height:330px}
@media (max-width:1100px){.mlayout{grid-template-columns:1fr}.mlayout .mgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:640px){.mlayout .mgrid{grid-template-columns:1fr 1fr}}
.btn.wa-ic{padding:6px 9px;display:inline-flex;align-items:center;justify-content:center}
/* sales */
.section-h{font-size:1.35rem;margin:0 0 12px}
.sales-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.sq{display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:16px 10px;cursor:pointer;text-align:center;box-shadow:var(--shadow)}
.sq b{font-family:var(--serif);font-size:1.75rem;line-height:1.1;color:var(--ink)}
.sq .sq-l{font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink)}
.sq.on{border-color:var(--gold);background:var(--gold-soft);box-shadow:0 0 0 3px rgba(201,162,75,.25)}
.sales-total{font-family:var(--serif);font-size:2.6rem;line-height:1.1;margin:2px 0 6px}
.sales-chart{margin-top:12px}
.sales-chart svg{width:100%;height:auto;display:block}
.chart-tip{font-size:.85rem;min-height:1.3em;margin-top:4px}
.dept-row{display:grid;grid-template-columns:150px 1fr 150px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #EEE9DC}
.dept-name{font-weight:700}
.dept-bar{height:12px;background:#ECE7DA;border-radius:999px;overflow:hidden;display:block}
.dept-bar>span{display:block;height:100%;background:var(--chart-1);border-radius:999px}
.dept-val{display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.day-list{display:flex;flex-direction:column;max-height:520px;overflow:auto}
.day-sale{display:flex;gap:12px;align-items:center;padding:10px 2px;border-bottom:1px solid #EEE9DC}
.ds-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.ds-client{font-weight:800;font-size:1rem;color:var(--ink);text-decoration:none}
.ds-client:hover{text-decoration:underline}
.ds-money{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 18px;margin-top:14px;padding:12px 14px;background:#FBF9F3;border-radius:12px}
.contact-item{display:flex;flex-direction:column;gap:2px;min-width:0;word-break:break-word}
.stat.red b{color:var(--red)}
@media (max-width:800px){.sales-quick{grid-template-columns:1fr 1fr}.dept-row{grid-template-columns:110px 1fr 110px}}
/* sales dashboard, one tap per period */
.period-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.pc{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:12px 8px;cursor:pointer;text-align:center;box-shadow:var(--shadow);overflow:hidden}
.pc-l{font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink);white-space:nowrap}
.pc-v{font-family:var(--serif);font-size:clamp(1rem,1.55vw,1.45rem);line-height:1.15;color:var(--ink);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.pc-s{font-size:.78rem;color:var(--muted);white-space:nowrap}
.pc.on{border-color:var(--gold);background:var(--gold-soft);box-shadow:0 0 0 3px rgba(201,162,75,.25)}
.sales-split{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;align-items:start}
.prod-row{display:grid;grid-template-columns:140px minmax(0,1fr) 140px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #EEE9DC}
.prod-row:last-child{border-bottom:0}
.prod-name{font-weight:700;white-space:nowrap}
.prod-bar{height:12px;background:#ECE7DA;border-radius:999px;overflow:hidden;display:block}
.prod-bar>span{display:block;height:100%;background:var(--chart-1);border-radius:999px}
.prod-val{display:flex;flex-direction:column;align-items:flex-end;text-align:right;min-width:0}
.prod-val b{white-space:nowrap}
.rev-big{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.1;margin:4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rev-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.rev-grid>div{background:#FBF9F3;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.rev-grid b{font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1100px){.period-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.sales-split{grid-template-columns:1fr}}
@media (max-width:560px){.period-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.prod-row{grid-template-columns:110px minmax(0,1fr) 110px}}
/* sales dashboard, sized to fill the screen */
.pc{padding:18px 10px;gap:6px}
.pc-l{font-size:.82rem}
.pc-v{font-size:clamp(1.15rem,1.9vw,2.1rem)}
.pc-s{font-size:.86rem}
.sales-split .card{padding:22px 24px}
.sales-split .card-head h3{font-size:1.35rem}
.prod-row{grid-template-columns:minmax(150px,1.1fr) minmax(0,1.4fr) minmax(130px,auto);gap:16px;padding:16px 0}
.prod-name{font-size:1.08rem;white-space:normal;display:flex;flex-direction:column;gap:2px}
.prod-sub{font-size:.76rem;font-weight:500;color:var(--muted)}
.prod-bar{height:16px}
.prod-val b{font-size:1.15rem}
.rev-big{font-size:clamp(2.2rem,3.6vw,3.4rem)}
.rev-grid{gap:12px;margin-top:18px}
.rev-grid>div{padding:14px 16px}
.rev-grid b{font-size:1.4rem}
/* business report number boxes: their own class, so the newer button styles never squash them */
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--shadow);text-align:left;width:100%;min-width:0;display:block;cursor:pointer}
.kpi:hover{border-color:var(--gold)}
.kpi .lbl{font-size:.86rem;color:var(--ink-2);font-weight:600;display:flex;align-items:center;gap:6px}
.kpi .val{font-size:1.45rem;font-weight:700;letter-spacing:-.02em;line-height:1.15;margin-top:6px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.kpi .sub{font-size:.8rem;color:var(--muted);margin-top:4px}
.sales-t td{vertical-align:middle}
.dash-kpis{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.dash-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr))}
.dash-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.dash-2 .t,.dash-3 .t{font-size:.86rem}
.dash-3 .t{table-layout:auto;width:100%}
.dash-3 .t th,.dash-3 .t td{padding:7px 6px}
.dash-3 .t th{white-space:nowrap}
.lines{display:flex;flex-direction:column}
.even{align-items:stretch}
.sales-split{align-items:stretch}
.sales-split>.card{height:100%}
.sales-split>.stack{display:flex;flex-direction:column}
.sales-split>.stack>.card:last-child{flex:1}
.bottom-row{grid-template-columns:minmax(300px,1fr) minmax(0,2fr)}
.load-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
.load-row{display:grid;grid-template-columns:minmax(90px,1fr) minmax(40px,1.2fr) auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #EEE9DC}
.load-row .bar{height:12px;background:#EFEADD;border-radius:999px;overflow:hidden}
.load-row .bar>div{height:100%;background:var(--chart-1);border-radius:999px}
.load-row .bar>div.over{background:var(--red)}
@media (max-width:1000px){.bottom-row{grid-template-columns:1fr}}
@media (max-width:640px){.load-grid{grid-template-columns:1fr}}
.line{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;background:none;border:0;border-bottom:1px solid #EEE9DC;padding:8px 4px;text-align:left;cursor:pointer;border-radius:8px}
.line:last-child{border-bottom:0}
.line:hover{background:#FBF9F3}
.line.plain{cursor:default}
.line-l{display:flex;flex-direction:column;gap:2px;min-width:0;font-weight:600}
.line-v{display:flex;flex-direction:column;align-items:flex-end;text-align:right;flex:none}
.line-v b{font-size:1.15rem;white-space:nowrap}
.line-v .delta{margin-top:2px;white-space:nowrap}
/* dashboard: clean even numbers and a slim period bar that stays at the top */
.period-cards{position:sticky;top:var(--topbar-h,62px);z-index:15;background:var(--ivory);padding:10px 0;margin-top:-10px;gap:8px}
.pc{flex-direction:column;padding:9px 10px;gap:2px;border-radius:12px;box-shadow:none}
.pc-l{font-size:.68rem;letter-spacing:.08em}
.pc-v{font-family:var(--sans);font-size:clamp(.95rem,1.15vw,1.2rem);font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums lining-nums}
.pc.on .pc-v{color:var(--green-2)}
.prod-val b,.line-v b,.rev-big,.load-row b,.bar-row .right,.t td.num{font-family:var(--sans);font-variant-numeric:tabular-nums lining-nums}
.prod-val b,.line-v b{font-weight:700;letter-spacing:-.01em}
.line-v b{font-size:1.1rem}
.prod-val b{font-size:1.08rem}
/* targets */
.pc-bar{display:block;width:100%;height:4px;background:#ECE7DA;border-radius:999px;overflow:hidden;margin-top:4px}
.pc-bar>span{display:block;height:100%;background:var(--gold);border-radius:999px}
.pc-bar>span.hit{background:var(--ok)}
.tgt-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.tgt{background:#FBF9F3;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:5px;min-width:0}
.tgt.hit{background:var(--ok-soft)}
.tgt-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.tgt-l{font-weight:700;font-size:.88rem}
.tgt-p{font-weight:800;font-size:.95rem;font-variant-numeric:tabular-nums;color:var(--gold-ink)}
.tgt.hit .tgt-p{color:var(--ok)}
.tgt-v{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tgt-v b{font-size:1.1rem;font-variant-numeric:tabular-nums lining-nums}
.tgt-bar{height:8px;background:#E6E0D1;border-radius:999px;overflow:hidden}
.tgt-bar>span{display:block;height:100%;background:var(--gold);border-radius:999px}
.tgt.hit .tgt-bar>span{background:var(--ok)}
.target-t .input{min-height:38px;max-width:140px;margin-left:auto;text-align:right;font-variant-numeric:tabular-nums}
.target-phone{display:none}
.target-kpi{padding:10px 0;border-bottom:1px solid var(--line)}
.target-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin-top:6px}
.target-grid label{display:flex;flex-direction:column;gap:2px;min-width:0}
.target-grid .input{width:100%;min-height:42px;text-align:right;font-family:Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums lining-nums}
@media (max-width:640px){.target-phone{display:block}.target-wide{display:none}}
@media (max-width:1100px){.tgt-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.tgt-row{grid-template-columns:1fr 1fr}}
.ready-card{display:flex;flex-wrap:wrap;gap:12px;align-items:center;border:2px solid var(--gold);background:var(--gold-soft)}

/* add an order from the paper form */
.add-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.add-choice{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;background:#fff;border:2px solid var(--line);border-radius:18px;padding:34px 20px;cursor:pointer;box-shadow:var(--shadow);font:inherit}
.add-choice:hover{border-color:var(--gold)}
.add-choice b{font-size:1.25rem}
.add-em{font-size:3rem;line-height:1}
.add-reading{text-align:center;padding:30px}
.add-reading .big{font-size:3rem}
.add-reading img{max-width:260px;margin-top:14px;border-radius:10px;opacity:.8}
.add-grid{display:grid;grid-template-columns:minmax(260px,.8fr) 1.6fr;gap:18px;align-items:start}
.add-grid.no-photo{grid-template-columns:1fr}
.add-photo{position:sticky;top:calc(var(--topbar-h,62px) + 10px)}
.add-photo img{width:100%;border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow)}
.add-item{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:#FBF9F3}
.add-item-top{display:grid;grid-template-columns:minmax(160px,1.4fr) 90px 130px 120px auto;gap:10px;align-items:end}
.add-line-total{display:flex;flex-direction:column;padding-bottom:8px}
.add-cloths{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.add-cloth{display:grid;grid-template-columns:minmax(160px,1fr) 100px minmax(110px,auto) auto;gap:8px;align-items:center}
.add-appt{display:grid;grid-template-columns:160px 170px 130px auto;gap:8px;align-items:center;margin-bottom:8px}
.add-totals{display:flex;flex-direction:column;align-items:flex-end;gap:4px;margin-top:12px}
.add-totals>div{display:flex;gap:16px;align-items:baseline}
.add-totals .grand b{font-size:1.25rem}
.input.need{border-color:var(--amber);background:var(--amber-soft)}
.warn{color:var(--amber);font-weight:700}
@media (max-width:900px){.add-grid{grid-template-columns:1fr}.add-photo{position:static}.add-photo img{max-height:320px;object-fit:contain}.add-item-top{grid-template-columns:1fr 1fr}.add-cloth{grid-template-columns:1fr 90px}.add-appt{grid-template-columns:1fr 1fr}}
.nav-more{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;color:#B9BCA8;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;padding:14px 12px 6px;cursor:pointer;text-align:left}
.nav-more:hover{color:#EDE8D8}
/* orders and follow-ups lists */
.ord-list,.fu-list{display:flex;flex-direction:column;gap:10px}
.ord,.fu{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow)}
.ord-main,.fu-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;cursor:pointer}
.ord-top{display:flex;gap:8px;align-items:baseline}
.ord-top b{font-size:1.05rem}
.ord-no{color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}
.ord-act,.fu-act{display:flex;flex-direction:column;gap:6px;align-items:flex-end;flex:none}
.ord-total{font-variant-numeric:tabular-nums;font-size:1rem}
.fu-em{font-size:1.6rem;flex:none}
@media (max-width:640px){
  .ord,.fu{flex-wrap:wrap}
  .ord-act,.fu-act{flex-direction:row;flex-wrap:wrap;width:100%;justify-content:flex-start;align-items:center}
  .ord-total{margin-left:auto}
  .fu-act .btn{flex:1}
}
/* today */
.hpill{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:999px;font-weight:700;font-size:.85rem;text-decoration:none;background:rgba(255,255,255,.1);border:1px solid rgba(226,200,127,.4);color:#fff}
.urg-row,.work-row{display:flex;gap:10px;align-items:center;width:100%;background:none;border:0;border-bottom:1px solid #EEE9DC;padding:9px 2px;text-align:left;cursor:pointer}
.work-row{cursor:default}
.urg-row:hover{background:#FDF3F1}
.work-em{font-size:1.3rem;width:28px;text-align:center}
.fun-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 34px;gap:10px;align-items:center;padding:7px 0;text-decoration:none;border-bottom:1px solid #EEE9DC}
.fun-bar{height:10px;background:#ECE7DA;border-radius:999px;overflow:hidden;display:block}
.fun-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--green-ui),var(--gold))}

/* comments and notifications */
.comments-list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;margin-bottom:8px}
.cmt{display:flex;gap:8px;align-items:flex-start}
.cmt .cmt-text{background:#F6F2E8;border-radius:12px;padding:7px 10px;margin-top:2px;font-size:.92rem;white-space:pre-wrap}
.cmt.mine .cmt-text{background:var(--green-soft)}
.tag{color:var(--green-ui);background:rgba(46,90,28,.1);border-radius:6px;padding:0 3px}
.avatar.sm{width:30px;height:30px;font-size:1rem}
.comment-box{position:relative}
.mention-menu{position:absolute;bottom:100%;left:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:4px;z-index:20;display:flex;flex-direction:column;min-width:180px;margin-bottom:4px}
.mention-menu button{background:none;border:0;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer}
.mention-menu button:hover{background:var(--gold-soft)}
.bell{position:relative}
.bell-n{position:absolute;top:-4px;right:-4px;background:var(--red);color:#fff;border-radius:999px;font-size:.7rem;font-weight:800;min-width:18px;height:18px;display:grid;place-items:center;padding:0 4px}
.bell-panel{position:absolute;right:0;top:48px;width:340px;max-width:90vw;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.18);z-index:60;max-height:70vh;overflow-y:auto}
.bell-item{display:flex;gap:8px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid #EEE9DC;padding:10px 12px;cursor:pointer}
.bell-item.unread{background:#FBF6E8}
.bell-item:hover{background:#F6F2E8}

/* aftercare rows */
.ac-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line)}
.ac-row:last-child{border-bottom:0}
.ac-em{font-size:1.3rem;width:28px;text-align:center}
.ac-who{flex:1;min-width:160px;background:none;border:0;text-align:left;cursor:pointer;display:flex;flex-direction:column}
.ac-msg{flex-basis:100%;background:#F6F2E8;border-radius:10px;padding:8px 10px;margin-left:36px}

/* the client's tracking page */
.track-page{min-height:100vh;background:var(--ivory)}
.track-head{background:var(--green);color:#fff;display:flex;align-items:center;gap:12px;padding:14px 18px}
.track-head img{width:44px;height:44px}
.track-head b{display:block;font-family:var(--serif);font-size:1.4rem}
.track-head span{font-size:.75rem;color:var(--gold-2);letter-spacing:.1em}
.track-body{max-width:760px;margin:0 auto;padding:24px 16px 50px;text-align:center}
.track-body h1{font-size:2rem}
.timeline{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin:22px 0;position:relative}
.tl-step{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--muted)}
.tl-dot{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#EDE8DA;font-size:1.1rem;border:2px solid #E2DBC8}
.tl-step.done .tl-dot{background:var(--green-ui);border-color:var(--green-ui);color:#fff}
.tl-step.now .tl-dot{background:var(--gold);border-color:var(--gold);transform:scale(1.15);box-shadow:0 0 0 6px rgba(201,162,75,.25)}
.tl-step.now{color:var(--ink)}
@media (max-width:560px){.tl-label{font-size:.66rem}.tl-dot{width:34px;height:34px}}


/* measuring diagrams */
.mdiags{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mdiag{background:radial-gradient(circle at 50% 30%,#FFFFFF 0,#F1ECDF 85%);border:1px solid var(--line);border-radius:16px;padding:10px;text-align:center}
.mdiag svg{width:100%;height:360px}
.mline:hover circle{stroke-width:2}
.mlabel{display:flex!important;align-items:center;gap:8px}
.nb{font-style:normal;width:24px;height:24px;border-radius:50%;background:var(--gold);color:#17140A;font-size:.78rem;font-weight:800;display:grid;place-items:center;flex:0 0 auto}
.mfield.active .nb{background:var(--red);color:#fff}
.mfield.active .input{border-color:var(--red);box-shadow:0 0 0 3px rgba(180,35,24,.12)}
@media (max-width:640px){.mdiag svg{height:250px}}

/* invoice, laid out like the shop's paper order form */
.inv{font-family:Inter,Arial,sans-serif;font-size:.92rem}
.inv-head{display:flex;gap:14px;align-items:center;justify-content:center;text-align:center}
.inv-seal{width:64px;height:64px;filter:brightness(.55)}
.inv-name{font-weight:800;letter-spacing:.06em;font-size:1.25rem}
.inv-title{text-align:center;font-weight:800;letter-spacing:.12em;margin:14px 0 4px;padding:6px;border-top:2px solid #111;border-bottom:2px solid #111}
.inv table{width:100%;border-collapse:collapse;margin-top:8px}
.inv th,.inv td{border:1px solid #CFC8B6;padding:6px 8px;text-align:left;vertical-align:top}
.inv-meta th{background:#F6F2E8;width:120px;font-weight:600}
.inv-lines thead th{background:#F6F2E8}
.inv .num{text-align:right;white-space:nowrap}
.inv-totals{width:320px!important;margin-left:auto}
.inv-totals th{background:#F6F2E8}
.inv-totals .grand th,.inv-totals .grand td{font-weight:800;font-size:1.05rem}
/* invoice */
.invoice{background:#fff;max-width:820px;margin:0 auto;padding:40px;border:1px solid var(--line);border-radius:6px;color:#111}
.invoice h1{font-size:2rem}
@media print{
  .sidebar,.topbar,.no-print,.scrim{display:none!important}
  body,.page{background:#fff;padding:0}
  .invoice{border:0;padding:0}
}
@media (max-width:640px){
  .g4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .list-row{flex-wrap:wrap}
  .list-row>.row:last-child{width:100%;justify-content:flex-end}
  .stat{padding:12px}
  h1{font-size:1.7rem}
  .bar-row{grid-template-columns:minmax(90px,1.3fr) minmax(30px,1fr) minmax(70px,auto)}
  .stat .val{font-size:1.7rem}
  .col{flex-basis:240px}
}
.sidebar{overflow-x:hidden}

/* phones: every screen fits the width, nothing scrolls sideways */
@media (max-width:640px){
  .page{padding:14px 12px 70px}
  .tabs{flex-wrap:wrap;overflow-x:visible}
  .tab{padding:8px 10px}
  .board-top .period{width:100%}
  .board-top .period .ptab{flex:1;padding:8px 6px;font-size:.82rem}
  .wiz-foot{flex-wrap:wrap;gap:8px}
  .wiz-foot .btn{flex:1 1 auto}
  .wiz-foot .btn-lg{width:100%;order:3}
  .prod-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name val" "bar bar";gap:6px 10px}
  .prod-name{grid-area:name}.prod-val{grid-area:val}.prod-bar{grid-area:bar}
  .sales-split .card{padding:16px}
  .sales-split{grid-template-columns:minmax(0,1fr)}
  .sales-split .t{font-size:.8rem;width:100%}
  .sales-split .t th,.sales-split .t td{padding:6px 4px}
  .sales-split .t th{white-space:normal}
  .rev-grid b{font-size:1.15rem}
  .line-v b{font-size:1rem}
  .grid-t,.grid-t tbody,.grid-t tr,.grid-t td{display:block;width:100%}
  .grid-t thead{display:none}
  .grid-t tr{padding:10px 4px;border-bottom:1px solid var(--line)}
  .grid-t td{padding:3px 0;border:0}
  .period-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .pc-v{font-size:1rem}
  .tgt-row{gap:8px}
  .tgt{padding:9px 10px;gap:3px}
  .tgt-l{font-size:.8rem}
  .tgt-v b{font-size:1rem}
  .tgt>.tiny:last-child{display:none}
  .pc{padding:8px 6px}
  .pc-l{font-size:.62rem;letter-spacing:.04em}
  .topbar{padding:10px 12px}
  .topbar h1{font-size:1.35rem}
  .add-choice{padding:24px 16px}
}
.sidebar{overflow-x:hidden}

/* look back by month */
.month-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:10px 0 14px}
.month-grid .chip{justify-content:center;width:100%}
.month-grid .chip:disabled{opacity:.35;cursor:default}
.lb-stats{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lb-stats div{display:flex;flex-direction:column;gap:2px;min-width:0}
.lb-stats b{font-family:Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums lining-nums;font-size:1.15rem}
.lb-list{display:flex;flex-direction:column}
.lb-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.lb-row:last-child{border-bottom:0}
.lb-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;cursor:pointer}
.lb-row .btn{flex:none}
@media (max-width:640px){
  .month-grid{grid-template-columns:repeat(4,1fr)}
  .lb-stats{grid-template-columns:1fr 1fr}
  .lb-row{flex-wrap:wrap}
  .lb-row .btn{width:100%}
}

/* iPhone home-screen app: keep the menu button and headings clear of the clock, notch and home bar */
.topbar{padding-top:calc(14px + env(safe-area-inset-top))}
.sidebar{padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}
.login{padding-top:calc(24px + env(safe-area-inset-top));padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.modal-bg{padding-top:calc(5vh + env(safe-area-inset-top))}
.toast{bottom:calc(24px + env(safe-area-inset-bottom))}
@media (max-width:900px){
  .topbar{padding-top:calc(10px + env(safe-area-inset-top))}
  .page{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
}

/* workshop board: Show dropdown, team now, garments made */
.view-pick{max-width:260px}
.team-now{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.tn{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--ivory);border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;font:inherit;color:inherit}
.tn:hover{border-color:var(--gold)}
.tn-name{font-weight:700}
.tn .bar,.made-row .bar{display:block;height:8px;background:var(--line);border-radius:99px;overflow:hidden}
.tn .bar span,.made-row .bar span{display:block;height:100%;background:var(--gold);border-radius:99px}
.tn .bar span.over{background:var(--red)}
.made-months-pick{grid-template-columns:repeat(7,1fr)}
.made-list{display:flex;flex-direction:column}
.made-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.made-row:last-child{border-bottom:0}
.made-who{display:flex;flex-direction:column;min-width:0}
.made-n{display:flex;flex-direction:column;align-items:flex-end;min-width:64px}
.made-n b{font-family:Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums lining-nums;font-size:1.2rem}
.made-months{grid-column:1/-1;display:grid;grid-template-columns:repeat(12,1fr);gap:4px;height:46px}
.made-months span{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;height:100%}
.made-months i{display:block;width:70%;background:var(--green);border-radius:3px 3px 0 0;flex:none}
.made-months em{font-style:normal;font-size:.62rem;color:var(--muted)}
@media (max-width:640px){
  .view-pick{max-width:none}
  .team-now{grid-template-columns:1fr 1fr;gap:8px}
  .tn{padding:8px 10px}
  .made-months-pick{grid-template-columns:repeat(4,1fr)}
  .made-months-pick .chip:first-child{grid-column:1/-1}
  .made-row{grid-template-columns:minmax(0,1fr) auto}
  .made-row .bar{grid-column:1/-1;grid-row:2}
}

/* menu groups: Workshop opens to Team, Clients and In progress */
.nav-group{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border-radius:12px;background:none;border:0;color:#EDE8D8;font:inherit;font-size:.98rem;cursor:pointer;text-align:left;margin-bottom:2px}
.nav-group:hover{background:rgba(255,255,255,.07)}
.nav-group.here{color:var(--gold-2)}
.nav-group .caret{font-size:.8rem;opacity:.7}
.nav a.nav-sub{padding:8px 12px 8px 30px;font-size:.92rem}
.nav a.nav-sub .em{font-size:1rem}

/* dashboard: a compact period bar (two rows of three on phones) and a simple targets form */
.period-cards{padding:6px 0;gap:6px}
.pc{padding:6px 8px;gap:1px;border-radius:10px}
.pc-l{font-size:.62rem}
.pc-v{font-size:clamp(.85rem,1.05vw,1.05rem)}
.pc-bar{height:3px;margin-top:2px}
.tgt-head{display:flex;justify-content:center;margin-bottom:10px}
.tgt-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.tgt-tabs .chip{justify-content:center}
.target-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.target-line .input{width:160px;flex:none;min-height:42px;text-align:right;font-family:Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums lining-nums}
@media (max-width:1100px){.period-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){
  .period-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:5px 0}
  .pc{padding:5px 4px;border-radius:9px}
  .pc-l{font-size:.56rem;letter-spacing:.03em}
  .pc-v{font-size:.8rem}
  .pc-bar{display:none}
  .target-line .input{width:140px}
}
