/* vin/tr's dashboard: the client space's look (Archivo, navy, 4px corners), made for lists and forms. Computers only. */

@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Archivo.woff2) format("woff2")}
:root{--navy:#1c2e3c;--ink:#18222b;--muted:#617080;--line:#e1e5e8;--bg:#f4f2ee;--paper:#fff;--blue:#1260b9;--green:#087d5a;--amber:#986000;--red:#a12d2d;--gold:#b08d3c}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Archivo,Arial,Helvetica,sans-serif;min-width:1180px}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:24px;line-height:1.2;letter-spacing:-.5px;margin:0}
h2{font-size:17px;margin:0;letter-spacing:-.2px}
h3{font-size:14px;margin:0 0 6px}
p{margin:0 0 12px}
.muted{color:var(--muted)}.small{font-size:12px}
.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}
.stack{display:grid;gap:16px}
button{height:38px;padding:0 14px;background:#fff;border:1px solid #aebac3;border-radius:4px;color:var(--navy);font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}
button:hover{background:#f0f4f6}button:disabled{opacity:.45;cursor:default}
button.primary{background:var(--navy);border-color:var(--navy);color:#fff}button.primary:hover{background:#294758}
button.small{height:30px;padding:0 10px;font-size:12px}
button.link{border:0;background:none;padding:0;height:auto;color:var(--blue);font-weight:500}
button.danger{color:var(--red);border-color:#e3b8b8}
input,select,textarea{border:1px solid #cdd5db;border-radius:4px;background:#fff;padding:8px 10px;min-width:0;width:100%}
input,select{height:38px}textarea{min-height:90px;resize:vertical;line-height:1.5}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--navy);padding:0}
label.f{display:grid;gap:5px;font-size:12px;color:var(--muted)}label.f>span b{color:var(--ink);font-weight:600}
.help{font-size:11px;color:var(--muted)}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:3px 9px;border-radius:30px;white-space:nowrap;background:#eef1f3;color:#3d4c58}
.pill.green{background:#e3f3eb;color:#076344}.pill.amber{background:#fff1d9;color:#875000}.pill.blue{background:#e7f0fd;color:#195d9e}.pill.red{background:#fbe6e6;color:#8b2323}.pill.navy{background:var(--navy);color:#fff}
.card{background:var(--paper);border:1px solid var(--line);border-radius:4px}
.pad{padding:18px 20px}
.card-head{padding:14px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}

/* frame */
.sidebar{position:fixed;inset:0 auto 0 0;z-index:10;width:210px;background:#fdfdfc url(/img/sidebar-pattern.svg) left bottom / 100% auto no-repeat;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:24px 12px 18px}
.brand{display:block;color:var(--navy);padding:0 12px}.brand svg{width:96px;height:auto;display:block}
.brand small{display:block;font-size:10px;letter-spacing:1.6px;margin-top:8px;color:var(--muted)}
.menu{display:grid;gap:4px;margin-top:26px}
.menu a{display:flex;justify-content:space-between;align-items:center;height:40px;padding:0 12px;border-radius:4px;color:var(--navy);font-weight:500}
.menu a:hover{background:#f0f3f5;text-decoration:none}.menu a.on{background:var(--navy);color:#fff}
.menu a .count{font-size:11px;background:#fff1d9;color:#875000;border-radius:20px;padding:1px 8px}.menu a.on .count{background:#ffffff26;color:#fff}
.who-am-i{margin-top:auto;padding:0 12px;font-size:12px;color:var(--muted)}
.shell{margin-left:210px;padding:26px 32px 60px;max-width:1500px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.page-head p{margin:6px 0 0}

/* lists */
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:11px;font-weight:600;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:11px 12px;border-bottom:1px solid #eef0f2;vertical-align:top}
tr:last-child td{border-bottom:0}
tr.click{cursor:pointer}tr.click:hover td{background:#fafbfb}
.due{white-space:nowrap}.due.late{color:var(--red);font-weight:600}.due.soon{color:var(--amber);font-weight:600}
.empty{padding:22px 20px;color:var(--muted)}

/* a client's page */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:8px 0 20px;flex-wrap:wrap}
.tabs a{padding:10px 14px;color:var(--muted);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a:hover{color:var(--navy);text-decoration:none}.tabs a.on{color:var(--navy);border-bottom-color:var(--navy)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
dl.kv{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:9px 18px;margin:0;font-size:13px}
dl.kv dt{color:var(--muted)}dl.kv dd{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.form{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.form .wide{grid-column:1/-1}
.checks{display:flex;gap:14px;flex-wrap:wrap}.checks label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--ink)}
.stat{padding:16px 20px}.stat strong{display:block;font-size:22px;letter-spacing:-.4px}.stat span{font-size:12px;color:var(--muted)}
.email{border-top:1px solid #eef0f2;padding:14px 20px}.email:first-child{border-top:0}
.email pre{white-space:pre-wrap;font:13px/1.55 Archivo,Arial,sans-serif;margin:8px 0 0;color:#2b3640}
.change{font-size:12px;color:var(--muted);margin-top:4px}.change b{color:var(--ink);font-weight:600}

/* pop-ups and messages */
.backdrop{position:fixed;inset:0;background:#11212c70;display:grid;place-items:center;z-index:400;padding:30px}
.modal{width:min(720px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:6px;box-shadow:0 20px 60px #0003;padding:24px}
.modal h2{font-size:18px;margin-bottom:6px}
.modal .does{background:#f6f8f9;border:1px solid var(--line);border-radius:4px;padding:12px 14px;font-size:13px;margin:14px 0}
.modal .does b{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-top:8px}.modal .does b:first-child{margin-top:0}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.error{color:var(--red);font-size:12px;margin-top:10px}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:11px 18px;border-radius:4px;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:60}.toast.show{opacity:1}
.loading{padding:40px;color:var(--muted)}

/* sign-in */
body.signin{min-width:0;display:grid;place-items:start center}
.signin main{width:min(440px,92vw);margin-top:12vh;padding:30px}
.signin .brand{padding:0;margin-bottom:24px}.signin .brand svg{width:110px}
.signin input{margin:14px 0}.signin button{width:100%}

/* the work: one card per winery, its step, whose turn it is */
a.btn{display:inline-flex;align-items:center;height:38px;padding:0 14px;background:#fff;border:1px solid #aebac3;border-radius:4px;color:var(--navy);font-size:13px;font-weight:600;text-decoration:none}a.btn:hover{background:#f0f4f6}
.group{margin-bottom:26px}.group h2{margin:0 0 10px;font-size:15px}.group h2 .muted{font-weight:500;margin-left:4px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.wcard{display:grid;gap:10px;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:4px;padding:14px 16px;color:var(--ink);text-decoration:none}
.wcard:hover{border-color:#c9d1d6;text-decoration:none;box-shadow:0 2px 8px #18222b0f}
.wcard.yours{border-left-color:var(--navy)}
.wtop{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.wtop strong{display:block;font-size:14px}.wtop .small{display:block;margin-top:2px}
.wnext{display:flex;align-items:center;gap:8px;font-size:13px}
.empty-line{color:var(--muted);font-size:13px;margin:0}
.track{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}
.track span{height:6px;border-radius:3px;background:#e7ebee;font-size:0}
.track span.done{background:#9cc9b5}.track span.now{background:var(--navy)}
.track.big{gap:4px;margin:4px 0 16px}.track.big span{height:auto;font-size:12px;font-weight:600;text-align:center;padding:6px 4px;color:var(--muted);background:#e9edf0}
.track.big button{height:auto;font-size:12px;font-weight:600;padding:7px 4px;border:0;border-radius:3px;color:var(--muted);background:#e9edf0}
.track.big button:hover{background:#dde3e7}
.track.big button.done{background:#e3f3eb;color:#076344}.track.big button.done:hover{background:#d3ecdf}
.track.big button.now{background:var(--navy);color:#fff}
.track.big button.sel:not(.now){box-shadow:inset 0 0 0 2px var(--navy);color:var(--navy)}
.step-note{margin:0;padding:12px 20px 0;font-size:12px;color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 22px}.filters input{width:260px;height:34px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{height:32px;padding:0 13px;border-radius:30px;border-color:var(--line);font-weight:500;color:var(--ink)}
.chip span{color:var(--muted);margin-left:2px}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}.chip.on span{color:#ffffffb3}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:1320px){.grid4{grid-template-columns:repeat(3,minmax(0,1fr))}}
.wcard.mini{gap:9px;padding:12px 14px}.wcard.mini .wtop strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wcard.mini .wtop>div{min-width:0}
.wfoot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.who{display:inline-flex;align-items:center;font-size:11px;font-weight:700;letter-spacing:.2px;padding:3px 9px;border-radius:30px;white-space:nowrap}
.who.you{background:var(--navy);color:#fff}.who.client{background:#fff1d9;color:#875000}.who.auto{background:#eef1f3;color:#3d4c58}
.when{font-size:12px;white-space:nowrap}.when.late{color:var(--red);font-weight:700}.when.warn{color:var(--amber);font-weight:600}
.crumb{margin:0 0 8px;font-size:12px}
.winery-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}.winery-head p{margin:6px 0 0}
.step-card .card-head h2{font-size:16px}
.checklist{list-style:none;margin:0;padding:4px 0}
.ck{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:12px;align-items:start;padding:16px 20px;border-top:1px solid #eef0f2}
.ck:first-child{border-top:0}
.ck-icon{width:20px;line-height:20px;text-align:center;font-size:15px;color:#a3adb4}
.ck.done .ck-icon{color:#2c7a59;font-size:13px}.ck.todo.you .ck-icon{color:var(--navy);font-weight:700}.ck.todo.client .ck-icon,.ck.todo.owner .ck-icon{color:#b07a1e}
.ck-text{display:grid;gap:3px}.ck-label{font-size:14px}.ck.todo.you .ck-label{font-weight:600}
.ck.done .ck-label,.ck.later .ck-label,.ck.wait .ck-label{color:var(--muted)}

.note{font-size:12px;color:var(--muted)}
.ck-effect{font-size:12px;color:var(--muted);margin-top:2px}.ck-effect b{color:var(--ink);font-weight:600}
.ck-group{margin:0;padding:16px 20px 4px;font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line)}
.ck-group:first-of-type{border-top:0}.ck-topic-done{color:#076344;letter-spacing:0;text-transform:none;font-weight:600;margin-left:6px}
.legend .btn-key{display:inline-block;border:1px solid #aebac3;border-radius:4px;padding:0 7px;font-weight:600;color:var(--navy)}.legend{line-height:2}
.mails{display:grid;gap:14px;max-width:920px;padding-bottom:90px}
.mail .card-head h2{font-size:15px}.mail .card-head p{margin:2px 0 0}
.mail-form,.mail-openers{display:grid;gap:12px}.mail-form textarea{min-height:190px;font-size:13px;line-height:1.55}.mail-openers textarea{min-height:56px;font-size:13px}
.mail-subject{font-weight:600;margin:0 0 10px}.mail-body{white-space:pre-wrap;font-size:13px;line-height:1.55;margin:0 0 8px}
.asked{padding:10px 12px;background:#fbe6e6;border-radius:4px;font-size:13px;color:#8b2323}
.mail-bar{position:fixed;left:210px;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 32px;background:#fff;border-top:1px solid var(--line);z-index:5}.mail-bar p{margin:0;font-size:13px}

.who-text{font-size:12px;color:var(--muted);white-space:nowrap}
.ck-links{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;margin-top:5px}.ck-links a,.ck-links button.link{font-size:12px;text-decoration:underline;text-underline-offset:3px}
.ck-data{font-size:12px;margin-top:3px}.ck-data b{font-weight:600}
.ck-tools{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;margin-top:4px}
.step-intro{margin:3px 0 0;font-size:12px;color:var(--muted);font-weight:400}
.ck-btn{text-align:right;padding-top:2px}
.others{display:flex;align-items:center;gap:16px;padding:12px 20px;border-top:1px solid var(--line);background:#fafbfb}
.legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:12px 0 0}
.decide{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;border-top:1px solid var(--line);background:#fafbfb}.decide p{margin:2px 0 0}
details.more{margin-top:18px}details.more>summary{cursor:pointer;font-weight:600;color:var(--navy);font-size:13px}
details summary{cursor:pointer}
/* under the hood */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.tile{display:grid;gap:4px;padding:14px 16px}.tile>span{font-size:12px;color:var(--muted)}.tile strong{font-size:20px;letter-spacing:-.3px}.tile strong small{font-size:12px;font-weight:500;color:var(--muted)}
.small-tiles{grid-template-columns:repeat(3,1fr)}.small-tiles .tile{background:#f7f8f8;border-radius:4px}
.progress{display:block;height:6px;background:#e7ebee;border-radius:3px;overflow:hidden;margin-top:4px}.progress span{display:block;height:100%;background:var(--green)}
.bars{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;align-items:end;height:140px;padding-top:16px}
.bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.bar-fill{width:70%;min-height:2px;background:var(--navy);border-radius:2px 2px 0 0}.bar-v{font-size:11px;color:var(--muted)}.bar-l{font-size:11px;color:var(--muted)}
.hbar{display:grid;grid-template-columns:140px 1fr 32px;gap:10px;align-items:center;font-size:12px;margin:6px 0}.hbar strong{text-align:right}
.hbar-track{height:8px;background:#eef1f3;border-radius:4px;overflow:hidden}.hbar-track span{display:block;height:100%;background:var(--navy)}
.campaign{margin-bottom:16px}.campaign h3{font-size:13px;margin:14px 0 8px}
.gantt{display:grid;gap:5px}.g-row{display:grid;grid-template-columns:130px 1fr;gap:8px;align-items:center;font-size:12px}
.g-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g-track{position:relative;height:10px;background:#f2f4f5;border-radius:3px}
.g-bar{position:absolute;top:0;bottom:0;border-radius:3px}.g-bar.now{background:var(--navy)}.g-bar.done{background:#b9c3ca}.g-bar.next{background:#c9d8e6}
.g-today{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--gold)}
.stepname{color:var(--navy);font-weight:700}
.auto-mark{position:relative;display:inline-flex;vertical-align:-2px;margin-left:7px;color:#d97757;cursor:help}.auto-mark svg{width:14px;height:14px}
.auto-mark.static{margin:0 2px;cursor:default}
.auto-mark:not(.static):hover::after,.auto-mark:not(.static):focus::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);width:280px;padding:9px 11px;border-radius:4px;background:var(--navy);color:#fff;font-size:12px;font-weight:400;line-height:1.45;white-space:normal;z-index:20;box-shadow:0 4px 14px #18222b33}
.ck-sent{font-size:12px;color:#076344;margin-top:2px}
.confirm{text-align:center;padding:6px 6px 0}.confirm p{color:#2b3640;margin:0 auto 10px;max-width:440px}.confirm .modal-actions{justify-content:center;margin-top:18px}
.confirm-tick{width:44px;height:44px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background:#e3f3eb;color:#076344;font-size:22px;font-weight:700}
.letters{display:grid;gap:22px;max-width:760px}
.letter-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:8px}.letter-head p{margin:2px 0 0}.letter-head .pill{margin-left:auto}
.letter-n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:12px;font-weight:700}
.letter iframe{display:block;width:100%;height:520px;border:1px solid var(--line);border-radius:4px;background:#fbfaf7}
.preview-list{margin:0;padding-left:18px;font-size:13px;line-height:1.9;color:var(--ink)}
.link-key{color:var(--blue)}
.wcard.alert{border-left-color:var(--red);background:#fffafa}
.alert-tag{display:inline-block;padding:1px 7px;border-radius:4px;background:var(--red);color:#fff;font-size:11px;font-weight:700;letter-spacing:.2px;white-space:nowrap}
.ck.alert{background:#fdf6f6}.ck.alert .ck-icon{color:var(--red);font-weight:700}.ck.alert .ck-label{color:var(--red)}
.too-short{color:var(--red);font-weight:700}
/* Today: one line per winery (24 Oct 2026) */
.summary{display:flex;align-items:baseline;gap:28px;padding:0 0 18px;margin:0 0 22px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}
.summary b{font-size:22px;font-weight:600;color:var(--ink);letter-spacing:-.5px;margin-right:6px}.summary .late b{color:var(--red)}.summary-note{margin-left:auto}
.group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 8px}.group-head h2{margin:0;font-size:15px}.group-head h2 .muted{font-weight:500;margin-left:4px}
.tlist{display:grid;gap:6px}
.thead,.trow{display:grid;grid-template-columns:minmax(230px,1.1fr) minmax(300px,1.9fr) 130px 120px 16px;gap:18px;align-items:center}
.thead{padding:0 18px 2px;font-size:11px;font-weight:600;color:var(--muted)}
.trow{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:4px;padding:12px 18px;color:var(--ink);text-decoration:none}
.trow:hover{border-color:#c9d1d6;text-decoration:none;box-shadow:0 2px 8px #18222b0f}.trow.yours{border-left-color:var(--navy)}.trow.alert{border-left-color:var(--red);background:#fffafa}
.t-winery,.t-next{display:grid;gap:3px;min-width:0}.t-winery strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t-step{display:flex;align-items:center;gap:8px;font-size:12px;min-width:0}.t-step b{color:var(--navy);font-weight:700}.t-step .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mtrack{display:inline-grid;grid-template-columns:repeat(5,12px);gap:2px;flex:none}.mtrack i{height:4px;border-radius:2px;background:#e1e6e9}.mtrack i.done{background:#9cc9b5}.mtrack i.now{background:var(--navy)}
.t-action{font-size:13px;font-weight:600}.t-next .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person{font-size:12px;font-weight:600;color:var(--navy)}
.t-due{text-align:right}.t-go{color:#9aa6ae;font-size:18px;text-align:right}
.scope{display:inline-flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}.scope button{height:32px;border:0;border-radius:0;background:#fff;font-weight:500}.scope button.on{background:var(--navy);color:#fff}
/* a winery: the work, and where it stands */
.work-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:start}
.side{display:grid;gap:14px;position:sticky;top:16px}
.side-card{padding:16px 18px}.side-card h3{font-size:13px;margin:0 0 12px}
.side-kv{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;margin:0 0 10px;font-size:12px}.side-kv dt{color:var(--muted)}.side-kv dd{margin:0;text-align:right}
.side-markets{font-size:12px;line-height:1.6;margin:0 0 10px}.pills{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 12px}
.side-mails{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:10px}.side-mails li{display:grid;gap:2px;font-size:12px;padding-left:10px;border-left:2px solid #dbe3e8}.side-mails li button{justify-self:start}
.small-select{height:30px;padding:0 6px;font-size:12px;width:auto;max-width:150px}
.ck-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;border-bottom:1px solid var(--line);background:#fafbfb}
.ck-views{display:flex;gap:4px;flex-wrap:wrap}.ck-views button{height:30px;padding:0 10px;border-color:transparent;background:none;font-weight:500;color:var(--ink);font-size:12px}
.ck-views button span{color:var(--muted);margin-left:3px}.ck-views button.on{background:#fff;border-color:#cdd5db;font-weight:700;color:var(--navy)}
.ck-progress{display:flex;align-items:center;gap:10px;min-width:200px}.ck-progress .progress{flex:1;margin:0}
.ck-empty{padding:18px 20px;margin:0;font-size:13px;color:var(--muted)}
.ck-quote{margin:6px 0 2px;padding:12px 14px;background:#fdfaf3;border:1px solid #efe6d2;border-radius:4px;font-size:13px;color:var(--ink);white-space:pre-wrap}
.q-from{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:12px;white-space:normal}.q-from b{font-weight:600}
.track.big button{display:grid;gap:1px;padding:6px 4px}.track.big button small{font-size:11px;font-weight:500;opacity:.75}
/* the windows: the email as it goes out */
.modal.wide{width:min(860px,96vw)}
.mail-preview{border-top:1px solid var(--line);padding-top:14px;display:grid;gap:8px}
.mp-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:13px}
.mp-frame{display:block;width:100%;height:420px;border:1px solid var(--line);border-radius:4px;background:#fbfaf7}
/* Campaigns: one line per running campaign */
.ctable td{vertical-align:middle}.ctable tr.open td{background:#f7f9fa}.ctable .chev{width:30px;text-align:center;font-size:16px;color:var(--muted)}
.ctable tr.c-detail>td{background:#fafbfb;padding:18px 20px}.c-detail-body .tiles{margin-bottom:14px}
/* Settings: who may sign in */
.staff{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}.staff li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #eef0f2}
.staff li>div:first-child{display:grid;gap:2px}.staff-add{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}
/* the emails' wording, edited (Settings, The emails wineries get) */
.letters{max-width:none}.letter{max-width:760px}.letter.editing{max-width:1300px}
.letter-tags{margin-left:auto;gap:8px;flex:none}.letter-head .letter-tags .pill{margin-left:0}
.letter-edit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:4px;padding:18px 20px}
.le-form{display:grid;gap:12px}.le-form textarea{min-height:0;font-size:13px}.le-form .modal-actions{margin-top:4px}
.le-tags{display:grid;gap:6px;font-size:12px}.le-tags .chips{display:flex;flex-wrap:wrap;gap:6px}
.tag-chip{height:28px;padding:0 10px;border-radius:30px;border-color:#d6c9a3;background:#fbf8ef;color:#6d5320;font-weight:600;font-size:12px}.tag-chip:hover{background:#f4eedb}
.le-preview{position:sticky;top:16px;display:grid;gap:6px}
.le-history{margin-top:8px}.le-history summary{color:var(--muted)}.le-history ul{margin:6px 0 0;padding-left:18px;color:var(--muted);line-height:1.8}
/* a winery's page, calmer (the founder preferred the mock-up's look, 24 Oct 2026) */
.ck-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:12px;color:var(--muted)}.ck-meta .sep{color:#c3cbd0}
.steps{display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;margin:6px 0 18px}
.st{display:flex;align-items:center;gap:12px;height:auto;padding:14px 18px;border:0;border-right:1px solid var(--line);border-radius:0;background:#fff;text-align:left;color:var(--ink);font-weight:400}
.st:last-child{border-right:0}.st:hover{background:#f6f8f9}
.st-dot{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid #d6dde2;display:grid;place-items:center;font-size:11px;color:var(--muted)}
.st-text{display:grid;gap:1px}.st-text b{font-size:13px;font-weight:600}.st-text small{font-size:11px;color:var(--muted)}
.st.done{background:#f7faf8}.st.done .st-dot{background:#e3f3eb;border-color:#e3f3eb;color:#2c7a59}
.st.now{background:var(--navy);color:#fff}.st.now:hover{background:#243a4b}.st.now .st-dot{border-color:#ffffff66;color:#fff}.st.now .st-text small{color:#ffffffb3}
.st.sel:not(.now){box-shadow:inset 0 -3px var(--navy)}
.step-head{padding:18px 20px 16px;border-bottom:1px solid var(--line)}.step-head h2{font-size:17px;display:flex;align-items:center;gap:8px}
.step-head .ck-progress{margin-top:14px}.step-head .progress{height:5px}
.ck-bar{justify-content:flex-start;padding:10px 20px}
.head-facts{display:flex;flex-wrap:wrap;gap:6px 22px;margin:8px 0 0;font-size:13px}.head-facts.muted b{font-weight:500;color:var(--ink)}
.winery-head h1{font-size:28px}
/* the checklist's views, easy to see (the founder, from the mock-up: the chosen one in a light blue box) */
.ck-bar{background:#fff;padding:12px 20px}
.ck-views{gap:6px}.ck-views button{height:36px;padding:0 13px;font-size:13px;border:1px solid transparent;border-radius:4px}
.ck-views button:hover{background:#f3f6f8}.ck-views button.on{background:#eaf2fa;border-color:#cbdbe9;color:var(--navy);font-weight:600}
/* the domain and mailboxes, ticked on the line */
.ticks{display:flex;flex-wrap:wrap;gap:8px 22px;margin:8px 0 4px;font-size:13px}
.tick{display:inline-flex;align-items:center;gap:8px}.tick label{display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.tick input[type=checkbox]{width:16px;height:16px}.tick input[type=date]{height:30px;width:auto;padding:0 6px;font-size:12px}
.tick a{font-size:12px;text-decoration:underline;text-underline-offset:3px}
.go-link{font-size:13px;font-weight:600;white-space:nowrap}
/* Finance: euros and dollars side by side */
.cur-pair{display:inline-flex;gap:12px;flex-wrap:wrap}.cur-pair .faint,.faint{color:#b3bcc2;font-weight:400}
.tile strong .cur-pair{gap:10px}
.flegend{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.flegend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.fbars{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;align-items:end;height:170px;padding-top:18px}
.fbar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}.fbar.now .fbar-l{color:var(--navy);font-weight:700}
.fbar-stack{display:flex;flex-direction:column;justify-content:flex-end;width:72%;height:100%}
.fbar-stack span,.flegend i{display:block}.su{background:#b08d3c}.mo{background:var(--navy)}.due{background:#e9c98b}.fc{background:repeating-linear-gradient(45deg,#dfe7ee,#dfe7ee 4px,#eef3f7 4px,#eef3f7 8px);border:1px dashed #b7c6d3}
.fbar-stack span:first-child{border-radius:2px 2px 0 0}.fbar-v,.fbar-l{font-size:10px;color:var(--muted);white-space:nowrap}
.layers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.layer{display:grid;gap:8px;padding:14px 16px;background:#f7f8f8;border-radius:4px}
.layer>div{display:grid;gap:2px}.layer .cur-pair{font-size:18px;font-weight:600}
.fin-kv{grid-template-columns:1fr auto}.fin-kv dd{text-align:right}
.funnel{list-style:none;margin:0;padding:0;display:grid;gap:8px}.funnel li{display:grid;grid-template-columns:120px 1fr 40px 110px;gap:10px;align-items:center;font-size:13px}
.fn-bar{height:8px;background:#eef1f3;border-radius:4px;overflow:hidden}.fn-bar span{display:block;height:100%;background:var(--navy)}.funnel strong{text-align:right}
.ending{list-style:none;margin:0;padding:0;display:grid;gap:6px}.ending li{display:flex;justify-content:space-between;gap:12px;font-size:13px}
.fin-tile strong{font-size:22px}.pair-line{display:block;font-size:12px;color:var(--muted)}.pair-line .cur-pair{gap:8px}
.layer-v strong{display:block;font-size:20px;letter-spacing:-.3px}
/* Settings, one column */
.settings{display:grid;gap:16px;max-width:920px}
.set-row{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:16px 20px;border-top:1px solid #eef0f2}
.card-head+.set-row{border-top:0}.set-row h3{margin:0 0 4px;font-size:14px}.set-row p{margin:0;max-width:580px}.set-action{flex:none}
.settings .card-head{background:#eef3f7;border-bottom-color:#dde6ed;border-radius:4px 4px 0 0}
/* Settings: Master Viny's and Viny's picture at the right of their box's header, without making it taller */
.card-head .card-avatar{height:40px;width:auto;margin:-8px 0;flex:none}
/* Finance in euros: the original dollars on a small line under a figure */
.orig{display:block;font-size:11px;font-weight:400;color:var(--muted);letter-spacing:0}
/* every box's header in a light blue-grey (the founder, 24 Oct 2026) */
.card-head{background:#eef3f7;border-bottom-color:#dde6ed;border-radius:4px 4px 0 0}
.step-head{background:#eef3f7;border-bottom-color:#dde6ed;border-radius:4px 4px 0 0}
.side-card>h3{margin:-16px -18px 12px;padding:12px 18px;background:#eef3f7;border-bottom:1px solid #dde6ed;border-radius:4px 4px 0 0}
/* the markets over the months: months along the top, "Now", the bars named */
.g-track{height:18px}.g-bar{display:flex;align-items:center;overflow:hidden}
.g-bar em{font-style:normal;font-size:10px;font-weight:600;padding:0 7px;white-space:nowrap;color:#fff}.g-bar.next em{color:#3d5a73}.g-bar.done em{color:#fff}
.g-axis{margin-bottom:2px}.g-months{position:relative;height:16px;font-size:10px;color:var(--muted)}.g-months span{position:absolute;top:0;white-space:nowrap}
.g-now{position:absolute;top:0;transform:translateX(-50%);font-size:10px;color:#8a6928;background:#fafbfb;padding:0 3px}
.g-key{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 4px 0 8px;vertical-align:-1px}.g-key:first-child{margin-left:0}
.g-key.now{background:var(--navy)}.g-key.done{background:#b9c3ca}.g-key.next{background:#c9d8e6}
.g-months{height:28px}.g-months span{top:13px}.g-now{top:0;background:none;padding:0;font-weight:700}
/* the page-by-page review (24 Oct 2026): visual fixes */
.turn{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.turn::before{content:'';width:7px;height:7px;border-radius:50%;background:#cfd6db}
.turn.you{color:var(--navy);font-weight:600}.turn.you::before{background:var(--navy)}.turn.client{color:#875000}.turn.client::before{background:#e0a640}
.legend{display:block;line-height:1.9}
.tick input:disabled+*,.tick label:has(input:disabled){opacity:.45;cursor:default}.tick input[type=date]:disabled{opacity:.45}
.card table td{vertical-align:middle}
.le-tags{order:-1;padding-bottom:6px;border-bottom:1px solid #eef0f2}
/* a campaign's markets over the months, as in the client space: years over months, today's dashed line, groups */
.tl{border:1px solid var(--line);border-radius:4px;background:#fff;overflow:hidden}
.tl-row{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:center;min-height:26px;border-top:1px solid #f0f2f3}
.tl-name{padding:0 12px;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-cols,.tl-track{display:grid;grid-template-columns:repeat(12,1fr);height:100%;align-items:center}
.tl-track{position:relative;background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(100%/12 - 1px),#f0f2f3 calc(100%/12 - 1px),#f0f2f3 calc(100%/12))}
.tl-track::after{content:'';position:absolute;top:0;bottom:0;left:var(--today);border-left:1px dashed #1260b9}
.tl-bar{height:8px;border-radius:4px;margin:0 2px}.tl-bar.now{background:var(--navy)}.tl-bar.next{background:#9cc3e4}.tl-bar.done{background:#a9c4b7}
.tl-years,.tl-months{border-top:0;min-height:24px;background:#fafbfb;font-size:11px;color:var(--muted)}.tl-months{border-bottom:1px solid var(--line)}
.tl-years .tl-cols span{text-align:center;border-left:1px solid #eef0f2}.tl-months .tl-cols span{text-align:center}
.tl-group{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;font-size:12px;font-weight:600;border-top:1px solid var(--line)}
.tl-group b{font-weight:600;color:var(--muted);margin-left:3px}.tl-group.now{background:#edf4fb}.tl-group.next{background:#f3f7fb}.tl-group.done{background:#eef6f1}
.tl-today{font-size:11px;font-weight:400;color:#1260b9}.tl-more{padding:6px 12px;border-top:1px solid #f0f2f3}
.tl-track::after{border-left:2px solid #b08d3c}.tl-today{color:#8a6928;font-weight:600}
/* Campaigns: the opened campaign a shade darker than the lines around it (the founder, 24 Oct 2026) */
.ctable tr.open td{background:#f2f4f5}.ctable tr.c-detail>td{background:#f4f5f6;border-bottom:1px solid #e3e7ea}
.c-detail-body .small-tiles .tile{background:#fff}
/* one colour, one meaning (the founder, 24 Oct 2026): navy running, light blue to come, green finished, gold today;
   the group rows neutral, each title with a swatch of its bars */
.tl-group.now,.tl-group.next,.tl-group.done{background:#f7f8f9}
.tl-sw{display:inline-block;width:14px;height:6px;border-radius:3px;margin-right:8px;vertical-align:middle;background:var(--navy)}.tl-sw.next{background:#9cc3e4}.tl-sw.done{background:#a9c4b7}
.progress.reach span{background:var(--navy)}
.tl-removed{font-weight:400;color:var(--muted)}
.tl-paused{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,rgba(97,112,128,.16) 0 3px,transparent 3px 7px);pointer-events:none}
/* deleting (with DELETE typed): a quiet red link at the foot of the page */
.erase-row{display:flex;align-items:center;gap:12px;margin:28px 0 8px}.link.erase{color:#a12d2d}.link.erase:hover{color:#7d1f1f}
button.danger{background:#a12d2d;border-color:#a12d2d;color:#fff}button.danger:disabled{background:#e9c9c9;border-color:#e9c9c9;color:#fff;cursor:default}
.tag-test{display:inline-block;margin-left:8px;padding:1px 7px;border:1px dashed #b08d3c;border-radius:4px;color:#8a6928;font-size:11px;font-weight:600;letter-spacing:.2px;vertical-align:middle;text-transform:none}
h1 .tag-test{font-size:12px;vertical-align:4px}
/* while an action runs */
body.busy,body.busy button{cursor:progress}
/* a winery's open asks on Today, and the Test tag there, sized to their text */
.t-tags{display:flex;flex-wrap:wrap;gap:6px}.t-tags .tag-test{margin-left:0}
.tag-ask{display:inline-block;padding:1px 7px;border-radius:4px;background:#fff1d9;color:#875000;font-size:11px;font-weight:600}
/* the first month's ramp-up: the bar fades in over its first month */
.tl-bar{--c:var(--navy)}.tl-bar.next{--c:#9cc3e4}.tl-bar.done{--c:#a9c4b7}
.tl-bar.ramp{background:linear-gradient(90deg,color-mix(in srgb,var(--c) 18%,#fff) 0,var(--c) calc(100% / var(--span)))}
/* the send window: emails the winery asked about and left unchanged */
.unchanged-note{color:var(--amber)}
/* Master Viny's launcher badges (the panel's own styles: .mvg, at the end of this file) */
.mv-count[hidden]{display:none}.mv-count{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--green);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;border:2px solid #fff}
/* Undo, under a message waiting its 5 seconds */
.vundo,.vundo:hover{height:auto;min-width:0;padding:0;border:0;background:none;color:var(--blue);font:inherit;font-size:11px;font-weight:600;cursor:pointer}.vundo:hover{text-decoration:underline}
/* the jump when a message comes in (two hops), none for people who ask for less motion */
@keyframes vjump{0%,100%{transform:translateY(0)}18%{transform:translateY(-12px)}36%{transform:translateY(0)}52%{transform:translateY(-6px)}68%{transform:translateY(0)}}
.jump{animation:vjump .9s ease-out 1}
@media (prefers-reduced-motion:reduce){.jump{animation:none}}
/* Master Viny's two badges: the messages green at the right, "What's new" peach (his own peach) at the left */
.mv-count.news{right:auto;left:-4px;background:#FFAB72;color:#1c2e3c}
/* read ticks, as in WhatsApp: one grey when sent, two blue once read */
.vtick{font-weight:700;letter-spacing:-2px;margin-left:2px;color:#9aa6b0}.vtick.read{color:#2b8ae6}
.mv-status{display:block;color:var(--muted);font-size:12px;font-style:italic}
.set-pad{padding:12px 20px}
.mv-cap{display:flex;align-items:center;gap:6px;white-space:nowrap}.mv-cap input{width:80px}
.mv-costs{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}.mv-costs th,.mv-costs td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--line)}
.mv-costs th{color:var(--muted);font-weight:600}
/* an email's field the lead files do not carry (26 Oct 2026) */
.mail-warn{margin:0 20px 16px;padding:8px 10px;border-radius:4px;background:#fff6e5;color:#7a5200;font-size:12px}.mail-warn code{font-size:12px}
/* Settings > Master Viny: the cost (Laurent, 26 Oct 2026): three figures, then the days */
.mv-cost h3{margin:6px 0 12px;font-size:17px;font-weight:700;color:var(--navy)}
.mv-cost-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 12px}.mv-cost-head h3{margin:0}.mv-cost-head .btn{height:34px}
.mv-cost-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
/* a winery's lead lists, in its side column (step 7) */
.lead-sender{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-top:1px solid var(--line)}.lead-sender:first-of-type{border-top:0;padding-top:0}
.lead-sender>a{color:var(--navy)}.lead-batches{list-style:none;margin:2px 0;padding:0;display:grid;gap:4px}
.lead-batches li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.lead-sender>button{align-self:flex-start}
/* Settings > Viny in the client space: his latest questions and answers */
.sv-list{list-style:none;margin:0;padding:0}.sv-list li{padding:12px 0;border-top:1px solid var(--line)}.sv-list li:first-child{border-top:0;padding-top:4px}
.sv-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}.sv-table th,.sv-table td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}
.sv-table th{color:var(--muted);font-weight:600;font-size:12px}.sv-table .num{text-align:right;font-variant-numeric:tabular-nums}
.sv-row{cursor:pointer}.sv-row:hover,.sv-row.open{background:#f4f6f8}.sv-row:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}
.sv-chev{display:inline-block;width:14px;color:var(--muted);transition:transform .15s}.sv-row.open .sv-chev{transform:rotate(90deg)}
.sv-detail>td{background:#fafbfb;padding:10px 16px 6px 34px}.sv-detail .sv-list{margin-top:6px}
.sv-meta a{color:var(--navy);font-weight:600}.sv-q{margin:6px 0 4px;font-weight:600;white-space:pre-wrap}.sv-a{margin:0;color:#3d4954;white-space:pre-wrap;font-size:13px;line-height:1.5}
.mv-cost-tiles .tile{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:#fafbfb}
.mv-cost-tiles .lbl{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.mv-cost-tiles .big{font-size:26px;font-weight:800;line-height:1.15;color:var(--navy);font-variant-numeric:tabular-nums}
.mv-cost-tiles .bar{display:block;height:6px;margin-top:8px;border-radius:3px;background:#e8ecef;overflow:hidden}
.mv-cost-tiles .bar i{display:block;height:100%;border-radius:3px;background:var(--green)}.mv-cost-tiles .bar.high i{background:#c27a00}
.mv-costs{font-size:14px;font-variant-numeric:tabular-nums}
.mv-costs th{padding:8px 10px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.mv-costs td{padding:10px}
.mv-costs .num{text-align:right}.mv-costs td.cost{font-weight:700;color:var(--navy)}
.mv-costs tbody tr:hover td{background:#f7f9fa}
.mv-costs tfoot td{border-top:2px solid var(--line);border-bottom:0;font-weight:700;color:var(--navy)}
/* Master Viny's notes (26 Oct 2026): "Remember this" under each message; the notes in Settings, by topic */
.mv-remember{align-self:flex-start;margin-top:2px;padding:0;height:auto;min-width:0;border:0;background:none;color:var(--muted);font-size:11px;cursor:pointer;opacity:0;transition:opacity .15s}
.vmsg.mine .mv-remember{align-self:flex-end}
.vmsg:hover .mv-remember,.mv-remember:focus-visible{opacity:1}.mv-remember:hover{color:var(--blue);background:none;text-decoration:underline}
.note-who{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}.note-who>span{flex-basis:100%}
.note-who label{display:inline-flex;align-items:center;gap:8px;font-size:14px;white-space:nowrap;cursor:pointer}
.note-who input[type=radio]{width:16px;height:16px;min-height:0;margin:0;padding:0;flex:none;accent-color:var(--navy)}
.mv-notes h3{margin:6px 0 4px;font-size:17px;font-weight:700;color:var(--navy)}
.mv-notes h4{margin:16px 0 6px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.mv-notes ul{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:6px}
.mv-notes li{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:10px 12px;border-bottom:1px solid var(--line)}
.mv-notes li:last-child{border-bottom:0}.mv-notes li>div{display:grid;gap:4px;font-size:14px}

/* importer pages (js/importers.js, 27 Oct 2026): start */
.num{text-align:right}th.num{text-align:right}.center{text-align:center}
.tiles.five{grid-template-columns:repeat(5,1fr)}
.pr-sec{margin:20px 0 10px}
.pr-tile{height:auto;text-align:left;cursor:pointer;font-weight:400;color:var(--ink)}.pr-tile:hover{background:#f7f9fa}.pr-tile.zero{cursor:default;opacity:.6}
.pr-list{list-style:none;margin:0;padding:6px 0}.pr-list li{display:flex;justify-content:space-between;gap:12px;padding:7px 20px;font-size:13px;border-bottom:1px solid #f0f2f4}
.pr-list li:last-child{border-bottom:0}.pr-list li.sub{padding-left:34px;color:var(--muted);font-size:12px}.pr-list li b{white-space:nowrap}
.pr-list.cols{columns:2;column-gap:0}.pr-list.cols li{break-inside:avoid}
.pr-list.flat{padding:0}.pr-list.flat li{padding:5px 0}
a.hbar{color:var(--ink)}a.hbar:hover{text-decoration:none}a.hbar:hover span:first-child{color:var(--blue)}
.pr-wrap{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}
.pr-wrap.with-card{grid-template-columns:250px minmax(0,1fr) 400px}
.pr-rail{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;padding:14px 14px 18px}
.pr-search input{height:36px}
.facet{margin-top:16px}.facet h3{margin:0;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.facet .row{margin-bottom:6px}.fv-find{height:32px;margin-bottom:6px;font-size:12px}.fv-more{margin:4px 0 0}
.fv{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:center;padding:3px 0;font-size:13px;cursor:pointer}
.fv span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fv b{font-weight:500;font-size:12px;color:var(--muted)}
.fv input{width:16px;height:16px}
.pr-main .chips{margin-bottom:12px;align-items:center}
.pr-table td{vertical-align:top}.pr-table tr.sel td{background:#eef3f7}
/* with an importer's card open, the list keeps the columns that choose (the card shows the rest) */
.with-card .pr-table .c-direct,.with-card .pr-table .c-notes{display:none}
/* on a narrower screen the filters step aside while a card is open (the chips above the list still show them) */
@media (max-width:1499px){.pr-wrap.with-card{grid-template-columns:minmax(0,1fr) 380px}.with-card .pr-rail{display:none}}
.pr-card{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;padding:16px 18px}
.pr-card h2{font-size:17px}.pr-card .kv{display:grid;grid-template-columns:110px 1fr;gap:10px;font-size:13px;padding:4px 0}
.pr-card .kv>span{color:var(--muted)}.pr-card .kv>div{overflow-wrap:anywhere}
.pr-h{margin:16px 0 6px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.pr-people{list-style:none;margin:0;padding:0}.pr-people li{padding:9px 0;border-bottom:1px solid #f0f2f4;display:grid;gap:2px}
.pr-people li.off{opacity:.6}.pr-people .small{overflow-wrap:anywhere}
.pr-hist{margin:0;padding-left:18px;font-size:13px}
.pr-drop{flex-wrap:wrap}.pr-drop input[type=file]{width:auto;flex:1;min-width:260px;padding:7px}
.pr-bar{height:8px;background:#eef1f3;border-radius:4px;overflow:hidden;margin:14px 0 6px}.pr-bar i{display:block;height:100%;background:var(--navy);transition:width .2s}
.pr-steps{margin:10px 0}
.pr-actions{margin-bottom:8px}
/* the sender's market picker: the regions on the left, the order on the right */
.mk-pick{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px;color:var(--ink);font-size:13px}
.mk-left,.mk-right{border:1px solid var(--line);border-radius:4px;padding:10px;min-width:0}
.mk-find{height:34px;margin-bottom:8px}
.mk-regions,.mk-order{max-height:340px;overflow-y:auto}
.mk-reg{border-bottom:1px solid #f0f2f4;padding:4px 0}.mk-reg:last-child{border-bottom:0}
.mk-head{display:flex;align-items:center;gap:10px}.mk-head>button:first-child{font-weight:600;color:var(--navy);margin-right:auto}
.mk-list{padding:4px 0 6px 18px}.mk-sub{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin:8px 0 2px}
.mk-m{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:center;padding:2px 0;cursor:pointer}
.mk-m input{width:15px;height:15px}.mk-m b{font-weight:500;font-size:12px;color:var(--muted)}
.mk-m.off{cursor:default;color:var(--muted)}.mk-m.off b,.mk-m.clash b{font-size:11px}.mk-m.clash,.mk-m.clash b{color:#a12d2d}
.mk-order{list-style:none;margin:8px 0 0;padding:0}
.mk-order li{display:grid;grid-template-columns:26px minmax(0,1fr) auto 26px 26px 26px;gap:6px;align-items:center;padding:3px 0;border-bottom:1px solid #f4f5f6}
.mk-order li.mk-empty{display:block;border:0;padding:4px 0}
.mk-i{color:var(--muted);font-size:11px;text-align:right}.mk-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mk-b{height:24px;width:26px;padding:0;font-size:13px}
.pz-row{margin:4px 0 6px;gap:8px}.pz-row input{height:34px}
/* a tick box beside its text in the sender's window */
.form label.f.row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink)}.form label.f.row input{flex:none}
/* importer pages: end */

/* Master Viny's panel (the founder, 28 Oct 2026: "the same design update for Master Viny", News "more UX friendly"):
   the frosted glass of the winery's messenger, a greeting, three tabs with a sign over each name, News read at a glance
   (a coloured sign for the kind of thing, who, when; the words only for a message or a change asked, on one line) */
.mvg{--g-ink:#1a2229;--g-muted:#5f6b76;--g-blue-dark:#24668f;box-sizing:border-box;position:fixed;right:24px;bottom:24px;z-index:300;width:min(440px,calc(100vw - 48px));height:min(680px,calc(100vh - 48px));padding:18px;display:flex;flex-direction:column;gap:12px;overflow:hidden;border-radius:12px;border:1px solid rgba(255,255,255,.88);color:var(--g-ink);font-size:14px;line-height:1.5;background:rgba(250,249,246,.7);-webkit-backdrop-filter:blur(28px) saturate(115%);backdrop-filter:blur(28px) saturate(115%);box-shadow:0 18px 52px rgba(26,34,41,.14),0 4px 14px rgba(26,34,41,.06),0 0 0 1px rgba(26,34,41,.06),inset 0 1px 0 rgba(255,255,255,.98)}
.mvg[hidden]{display:none}
.mvg.wide{top:16px;right:16px;bottom:16px;height:auto;width:min(620px,46vw)}
.mvg *,.mvg *::before,.mvg *::after{box-sizing:border-box}
.mvg::before,.mvg::after{content:"";position:absolute;pointer-events:none;z-index:0}
.mvg::before{inset:3px;border-radius:9px;border:1px solid rgba(255,255,255,.5);box-shadow:inset 2px 2px 5px rgba(255,255,255,.55)}
.mvg::after{inset:0;border-radius:inherit;background:radial-gradient(ellipse 160px 80px at 8% 0%,rgba(255,255,255,.45),transparent 75%),radial-gradient(ellipse 110px 70px at 100% 100%,rgba(255,255,255,.35),transparent 75%)}
.mvg>*{position:relative;z-index:1}
.mvg button{height:auto;min-width:0;padding:0;border:0;border-radius:8px;background:none;color:inherit;font:inherit;font-weight:inherit;white-space:normal;cursor:pointer}
.mvg button:hover{background:none}
.mvg textarea{width:auto;min-height:0;padding:0;border:0;border-radius:0;background:none;resize:none}
.mvg .mvg-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex:none}
.mvg .mvg-top h2{margin:0;font-size:18px;line-height:24px;font-weight:650}
.mvg .mvg-top small{display:block;font-size:12px;color:var(--g-muted)}
.mvg .mvg-top-btns{display:flex;gap:2px;margin:-8px -8px 0 0}
.mvg .mvg-icon{width:40px;height:40px;display:grid;place-items:center;color:var(--g-ink)}
.mvg .mvg-icon:hover{background:rgba(255,255,255,.6)}
/* the tabs: one segmented control, the open tab raised in white */
.mvg .mvg-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;flex:none;border-radius:10px;background:rgba(26,34,41,.05);box-shadow:inset 0 1px 2px rgba(26,34,41,.05)}
.mvg .mvg-tabs.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.mvg .mvg-tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 6px 7px;border:1px solid transparent;color:var(--g-muted);transition:background .15s,color .15s}
.mvg .mvg-tab:hover{color:var(--g-ink);background:rgba(255,255,255,.5)}
.mvg .mvg-tab[aria-selected="true"]{color:var(--g-ink);background:#fff;border-color:rgba(255,255,255,.95);box-shadow:0 2px 8px rgba(26,34,41,.08),0 1px 2px rgba(26,34,41,.06)}
.mvg .mvg-tab-pic{position:relative;display:grid;place-items:center;height:28px}
.mvg .mvg-tab-pic img{width:34px;height:auto;display:block}
.mvg .mvg-tab-label{font-size:12.5px;font-weight:600;line-height:16px}
.mvg .mvg-tab-count{position:absolute;top:-4px;right:-13px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;font-size:10.5px;font-weight:700;line-height:17px;text-align:center;color:#fff;background:var(--green)}
.mvg .mvg-tab-count.news{background:#FFAB72;color:#1c2e3c}
/* the body: a list scrolls; in a conversation the messages scroll and the box stays at the foot */
.mvg .mvg-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0 -6px;padding:2px 6px 4px;scrollbar-width:thin}
.mvg .mvg-body.in-thread{display:flex;flex-direction:column;overflow:hidden}
.mvg .mvg-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}
.mvg .mvg-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none;padding:2px 0 10px}
.mvg .mvg-head a{font-size:13px;font-weight:600;color:var(--g-blue-dark);text-decoration:none}
.mvg .mvg-head a:hover{text-decoration:underline}
.mvg .mvg-back{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600}
.mvg .mvg-back:hover{color:var(--g-blue-dark)}
.mvg .mvg-actions{display:flex;gap:6px}
.mvg .mvg-pill{padding:6px 11px;font-size:12px;font-weight:600;border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.7);box-shadow:0 2px 8px rgba(26,34,41,.05)}
.mvg .mvg-pill:hover{background:#fff}
.mvg .mvg-muted{font-size:12px;color:var(--g-muted)}
/* News */
.mvg .mvg-brief{display:flex;gap:8px;align-items:flex-start;margin:2px 0 12px}
.mvg .mvg-brief .mvg-bubble{flex:1}
.mvg .mvg-av{width:30px;height:30px;flex:none;object-fit:contain}
.mvg .mvg-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 4px}
.mvg .mvg-since{font-size:12px;color:var(--g-muted);margin-right:2px}
.mvg .mvg-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px 4px 7px;border-radius:99px;font-size:12px;font-weight:600;color:var(--c);background:color-mix(in srgb,var(--c) 10%,#fff);border:1px solid color-mix(in srgb,var(--c) 18%,#fff)}
.mvg .mvg-quiet{margin:8px 0;font-size:13px;color:var(--g-muted)}
.mvg .mvg-day{margin:16px 0 6px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--g-muted)}
.mvg .mvg-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.mvg .mvg-row>a,.mvg .mvg-row>div{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--g-ink);text-decoration:none;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.85)}
.mvg .mvg-row>a:hover{background:rgba(255,255,255,.95)}
.mvg .mvg-row.new>a,.mvg .mvg-row.new>div{box-shadow:inset 3px 0 0 var(--green)}
.mvg .mvg-ic{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;color:var(--c);background:color-mix(in srgb,var(--c) 13%,#fff)}
.mvg .mvg-txt{flex:1;min-width:0;display:grid;gap:1px}
.mvg .mvg-l1{display:flex;align-items:baseline;gap:6px;min-width:0}
.mvg .mvg-l1 strong{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mvg .mvg-l1 time{margin-left:auto;flex:none;font-size:11.5px;color:var(--g-muted)}
.mvg .mvg-l2{font-size:13px;color:#3b4650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mvg .mvg-l2 b{font-weight:700;color:var(--g-ink)}
.mvg .mvg-l3{font-size:12px;font-style:italic;color:var(--g-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mvg .mvg-go{flex:none;display:grid;color:#9aa6b0}
.mvg .mvg-test{flex:none;padding:0 5px;border:1px dashed #b79a4b;border-radius:4px;font-size:10px;font-weight:700;line-height:15px;color:#8a6928}
.mvg .mvg-needs{margin:6px 0 4px;padding:10px;border-radius:10px;background:rgba(161,45,45,.06);border:1px solid rgba(161,45,45,.14)}
.mvg .mvg-needs h3{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:12px;font-weight:700;color:#a12d2d}
.mvg .mvg-needs h3 span{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#a12d2d;color:#fff;font-size:11px;line-height:18px;text-align:center}
.mvg .mvg-needs .mvg-row>a,.mvg .mvg-needs .mvg-row>div{background:#fff}
/* Messages: one line per winery, its initial in a charcoal circle */
.mvg .mvg-initial{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:#1a2229;color:#fff;font-size:14px;font-weight:700}
.mvg .mvg-initial.small{width:30px;height:30px;font-size:12.5px}
.mvg .mvg-count{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--green);color:#fff;font-size:11px;font-weight:700;line-height:20px;text-align:center}
.mvg .mvg-empty{margin:48px 0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}
/* conversations: theirs on the left in white, ours on the right in pale champagne, as in the winery's messenger */
.mvg .mvg-thread{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding:4px 10px 12px 2px;scrollbar-width:thin}
.mvg .mvg-msg{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}
.mvg .mvg-msg.mine{justify-content:flex-end}
/* a conversation with a winery starts at the bottom, by the box, and grows upwards; his own (AI) starts at the top */
.mvg #mv-thread>:first-child{margin-top:auto}
/* the day once, in a separator; a colleague's name above their answers */
.mvg .mvg-daysep{align-self:center;margin:4px 0 12px;padding:2px 10px;border-radius:99px;background:rgba(255,255,255,.65);border:1px solid rgba(255,255,255,.85);font-size:11.5px;font-weight:600;line-height:18px;color:var(--g-muted)}
.mvg .mvg-name{margin:0 2px 3px 0;font-size:12px;font-weight:400;line-height:16px;color:var(--g-muted)}
.mvg .mvg-body-col{display:flex;flex-direction:column;align-items:flex-start;min-width:0;max-width:86%}
.mvg .mvg-msg.mine .mvg-body-col{align-items:flex-end}
.mvg .mvg-bubble{max-width:100%;padding:9px 13px;border-radius:8px;border:0;background:rgba(255,255,255,.9);box-shadow:0 1px 3px rgba(26,34,41,.06),0 4px 12px rgba(26,34,41,.04);font-size:14px;line-height:20px;overflow-wrap:anywhere}
.mvg .mvg-msg.grouped{margin-bottom:4px}
.mvg .mvg-msg.mine .mvg-bubble{background:rgba(242,234,214,.94);box-shadow:none}
.mvg .mvg-bubble p{margin:0 0 6px}.mvg .mvg-bubble p:last-child{margin-bottom:0}.mvg .mvg-bubble ul{margin:4px 0;padding-left:18px}
.mvg .mvg-bubble a{color:var(--g-blue-dark)}
.mvg .mvg-msg.error .mvg-bubble{background:#fbf4f4;box-shadow:inset 0 0 0 1px #e9c9c9}
.mvg .mvg-msg.pending .mvg-bubble{opacity:.6}
.mvg .mvg-meta{margin-top:4px;font-size:11.5px;color:var(--g-muted)}
.mvg .mvg-msg:hover .mv-remember,.mvg .mv-remember:focus-visible{opacity:1}
.mvg .mvg-msg.mine .mv-remember{align-self:flex-end}
/* his welcome */
.mvg .mvg-welcome{margin:auto 0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 6px}
.mvg .mvg-welcome img{width:104px;height:auto;margin-bottom:6px}
.mvg .mvg-hi{margin:0;font-size:20px;line-height:27px;font-weight:700}
.mvg .mvg-help{margin:0 0 14px;font-size:15px;line-height:22px;color:var(--g-muted)}
.mvg .mvg-suggest{display:flex;flex-direction:column;gap:8px;width:100%}
.mvg .mvg-suggest button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:10px 14px;border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.72);box-shadow:0 3px 10px rgba(26,34,41,.05),inset 0 1px 0 #fff;text-align:left;font-weight:500}
.mvg .mvg-suggest button:hover{background:rgba(255,255,255,.95)}
.mvg .mvg-suggest svg{flex:none;color:var(--g-muted)}
/* the box */
.mvg .mvg-composer{flex:none;display:flex;align-items:flex-end;gap:4px;min-height:56px;padding:6px;border-radius:8px;border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.76);box-shadow:inset 0 1px 2px #fff,0 3px 12px rgba(26,34,41,.04)}
.mvg .mvg-composer:focus-within{border-color:rgba(36,102,143,.45)}
.mvg .mvg-composer textarea{flex:1;min-width:0;min-height:42px;max-height:120px;padding:10px 8px;line-height:22px;color:var(--g-ink);outline:none}
.mvg .mvg-composer textarea::placeholder{color:var(--g-muted)}
.mvg .mvg-send{display:grid;place-items:center;width:42px;height:42px;flex:none;color:#fff;background:linear-gradient(145deg,#347fac,#276f9f);box-shadow:inset 0 1px 1px rgba(255,255,255,.35)}
.mvg .mvg-send:hover:not(:disabled){background:var(--g-blue-dark)}
.mvg .mvg-send:disabled{background:#c8d3db;color:#52616c;cursor:default}
.mvg .mvg-caption{flex:none;margin:7px 0 0;text-align:center;font-size:12px;color:var(--g-muted)}
.mvg .mvg-note{margin:12px 0 0;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.6);color:var(--g-muted);font-size:12px}
.mvg .mvg-hide{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mvg :is(button,a):focus-visible{outline:2px solid var(--g-blue-dark);outline-offset:2px}
@keyframes mvgin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.mvg.mvg-enter{animation:mvgin .18s ease-out}
/* the launcher: Master Viny in a round glass button, "What's new?" in the same glass */
.mvg-launcher,.mvg-launcher:hover,.mvg-launcher:focus{position:fixed;right:24px;bottom:24px;z-index:300;display:flex;align-items:center;gap:10px;height:auto;min-width:0;padding:0;border:0;background:none;cursor:pointer}
.mvg-launcher[hidden]{display:none}
.mvg-label{padding:8px 13px;border-radius:99px;font-size:13px;font-weight:600;color:#1a2229;box-shadow:0 6px 18px rgba(26,34,41,.09)}
.mvg-label,.mvg-face{border:0;background:linear-gradient(135deg,rgba(255,255,255,.55),rgba(255,255,255,.15)),rgba(248,247,244,.66);-webkit-backdrop-filter:blur(24px) saturate(115%);backdrop-filter:blur(24px) saturate(115%)}
.mvg-face{position:relative;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;box-shadow:0 12px 30px rgba(26,34,41,.12),0 3px 10px rgba(26,34,41,.06);transition:transform .15s}
.mvg-face img{width:57px;height:auto;display:block;margin-top:3px}
.mvg-launcher:hover .mvg-face{transform:translateY(-1px)}
.mvg-launcher:focus-visible .mvg-face{outline:2px solid #24668f;outline-offset:3px}
.mvg-face .mv-count{top:-3px;right:-3px;border:2px solid #fff}.mvg-face .mv-count.news{left:-3px;right:auto}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.mvg,.mvg-face,.mvg-label{background:#f8f7f4}}
@media (prefers-reduced-transparency:reduce){.mvg,.mvg-face,.mvg-label{background:#f8f7f4;-webkit-backdrop-filter:none;backdrop-filter:none}}
@media (prefers-reduced-motion:reduce){.mvg.mvg-enter{animation:none}.mvg-face,.mvg .mvg-tab{transition:none}}
/* Master Viny's draft of an answer, under the winery's last message (dashboard only, src/replies.js) */
.mvg .mvg-draft{margin:2px 0 12px 32px;padding:10px 12px;border-radius:8px;background:rgba(255,255,255,.72);border:1px dashed rgba(176,141,60,.65)}
.mvg .mvg-draft-head{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:12px;color:var(--g-muted)}
.mvg .mvg-draft-head img{width:24px;height:auto}
.mvg .mvg-draft-head b{color:var(--ink);font-weight:600}
.mvg .mvg-draft-head span::before{content:"· "}
.mvg .mvg-draft-text{font-size:14px;line-height:20px;overflow-wrap:anywhere}
.mvg .mvg-draft-text mark{background:#fbeccb;color:inherit;border-radius:3px;padding:0 2px}
.mvg .mvg-draft-note{margin:8px 0 0;font-size:12.5px;line-height:18px;color:#7a5a12}
.mvg .mvg-draft-wait{margin:0;font-size:13px;color:var(--g-muted)}
.mvg .mvg-draft-btns{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}
.mvg .mvg-draft-btns .mvg-pill.primary{background:var(--navy);border-color:var(--navy);color:#fff}
.mvg .mvg-draft-btns .mvg-pill.primary:hover{background:#26394a}
