:root{--paper:#f2ebdb;--paper-2:#eae0ca;--card:#fbf7ec;--doc:#fffef8;--line:#d7cab0;--line-soft:#e3d9c2;--ink:#2b241c;--ink-dim:#6e624f;--ink-faint:#9c8e75;--brass:#b98526;--brass-deep:#8f6416;--copper:#8a5a33;--moss:#4e7a45;--rust:#b04e33;--font-display:"Avenir Next Condensed","AvenirNextCondensed-Bold","Arial Narrow","Helvetica Neue",sans-serif;--font-ui:"Avenir Next","Avenir","Helvetica Neue",-apple-system,"Segoe UI",sans-serif;--font-mono:ui-monospace,"SF Mono","Menlo","Consolas",monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:16px;line-height:1.55}h1,h2,h3{font-family:var(--font-display);font-weight:700;text-transform:uppercase;line-height:1;letter-spacing:.015em;margin:0}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.01em}.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-deep)}.btn{display:inline-block;font-family:var(--font-ui);font-size:15px;font-weight:600;padding:13px 26px;border:1px solid transparent;cursor:pointer;text-decoration:none}.btn-primary{background:var(--brass);color:var(--doc)}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.btn-small{padding:9px 18px;font-size:13.5px}.shell{display:grid;grid-template-columns:224px 1fr;min-height:100vh;background:var(--card)}.side{border-right:1px solid var(--line);background:var(--paper-2);display:flex;flex-direction:column;padding:18px 0 16px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.side .mark{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:19px;letter-spacing:.05em;padding:4px 20px 18px;border-bottom:1px solid var(--line);margin-bottom:12px;color:var(--ink);text-decoration:none;display:block}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 20px;font-size:14px;color:var(--ink-dim);text-decoration:none}.nav-item.on{color:var(--ink);background:var(--card);box-shadow:inset 3px 0 0 var(--brass);font-weight:600}.side .spacer{flex:1 1}.workspace-box{margin:0 14px;padding:10px 12px;border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;gap:2px}.ws-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.ws-name{font-size:13px;font-weight:600}.ws-brand{font-size:12.5px;color:var(--ink-dim)}.main-col{padding:28px clamp(20px,4vw,44px) 44px;flex-direction:column;min-width:0}.main-col,.page-head{display:flex;gap:20px}.page-head{justify-content:space-between;align-items:flex-end}.crumbs{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}.page-head h1{font-size:30px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px}.stat{border:1px solid var(--line);background:var(--doc);padding:14px 16px;display:flex;flex-direction:column;gap:3px}.stat .k{font-family:var(--font-mono);font-size:26px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}.stat .v{font-size:12.5px;color:var(--ink-dim)}.stat.alert .k{color:var(--rust)}.table-scroll{overflow-x:auto}table.ledger{width:100%;border-collapse:collapse;background:var(--doc);border:1px solid var(--line)}table.ledger th{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);text-align:left;font-weight:500;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--paper-2);white-space:nowrap}table.ledger td{padding:11px 14px;font-size:13.5px;border-bottom:1px solid var(--line-soft);color:var(--ink);vertical-align:middle}table.ledger tr:last-child td{border-bottom:none}table.ledger td.mono{white-space:nowrap}td .dim{font-size:12px;display:block}.pill,td .dim{color:var(--ink-dim)}.pill{display:inline-block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border:1px solid var(--line);background:var(--card);white-space:nowrap}.pill.maturing{color:var(--moss);border-color:rgba(78,122,69,.45)}.pill.earmarked{color:var(--brass-deep);border-color:rgba(143,100,22,.45)}.pill.at_bottler{color:var(--ink)}.pill.bottled{color:var(--copper);border-color:rgba(138,90,51,.45)}.pill.sold{color:var(--ink-faint)}.pill.ola{color:var(--copper);border-color:rgba(138,90,51,.4)}.pill.thirdparty{color:var(--rust);border-color:rgba(176,78,51,.5)}.pill.empty{border-style:dashed}.pill.empty,.pill.retired{color:var(--ink-faint)}.pill.stage-planning{color:var(--ink-dim)}.pill.stage-labels_ordered{color:var(--copper);border-color:rgba(138,90,51,.4)}.pill.stage-casks_allocated{color:var(--brass-deep);border-color:rgba(143,100,22,.45)}.pill.stage-bottling_scheduled{color:var(--moss);border-color:rgba(78,122,69,.45)}.pill.stage-bottling_complete{color:var(--doc);background:var(--brass);border-color:var(--brass)}.stage-strip{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.stage-step{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border:1px solid var(--line-soft);color:var(--ink-faint);background:var(--card)}.stage-step.on{color:var(--brass-deep);border-color:rgba(143,100,22,.45)}.stage-step.now{color:var(--doc);background:var(--brass);border-color:var(--brass);font-weight:600}.panel{border:1px solid var(--line);background:var(--doc);padding:22px 24px;max-width:720px}.empty{border:1px dashed var(--line);background:var(--card);padding:40px;text-align:center;color:var(--ink-dim)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:16px;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field.wide{grid-column:1/-1}.field label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint)}.field input[type=date],.field input[type=email],.field input[type=number],.field input[type=text],.field select,.field textarea{border:1px solid var(--line);background:var(--doc);padding:10px 12px;font-size:14px;font-family:var(--font-ui);color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--brass);outline-offset:0}.check-row{gap:8px;font-size:14px;color:var(--ink-dim)}.check-row,.form-actions{display:flex;align-items:center}.form-actions{gap:12px;margin-top:18px}.tabs{display:flex;gap:0;border-bottom:1px solid var(--line)}.tab{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);text-decoration:none;padding:8px 16px;border:1px solid transparent;border-bottom:none}.tab.on{color:var(--ink);background:var(--doc);border-color:var(--line);font-weight:600}.field input[type=file]{font-size:13px;color:var(--ink-dim)}.col-picker{position:absolute;top:100%;right:0;z-index:20;background:var(--doc);border:1px solid var(--line);box-shadow:0 10px 28px rgba(43,36,28,.16);padding:10px 14px;display:flex;flex-direction:column;gap:6px;min-width:180px}.col-picker-row{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink);cursor:pointer}.cask-checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:2px;gap:2px;max-height:340px;overflow-y:auto;border:1px solid var(--line-soft)}.cask-check-row{display:flex;align-items:baseline;gap:8px;padding:8px 12px;font-size:14px;cursor:pointer;border-bottom:1px solid var(--line-soft)}.cask-check-row:hover{background:var(--paper-2)}.action-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:16px 24px;gap:16px 24px}.ov-item{display:flex;flex-direction:column;gap:3px}.ov-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint)}.ov-value{font-size:14px;color:var(--ink)}.pager{display:flex;align-items:center;gap:14px;justify-content:flex-end;margin-top:10px}.sheet-doc{background:var(--doc);border:1px solid var(--line);max-width:800px;padding:44px 48px;box-shadow:0 14px 40px rgba(43,36,28,.12)}.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:18px}.sheet-brand{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:26px;line-height:1}.sheet-tagline{font-size:12.5px;color:var(--ink-dim);margin-top:4px}.sheet-meta{font-size:11.5px;color:var(--ink-dim);text-align:right;display:flex;flex-direction:column;gap:2px}.sheet-title{font-size:30px;margin-bottom:6px}.sheet-note{color:var(--ink-dim);font-size:13.5px;max-width:64ch}.sheet-section{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-deep);margin:22px 0 8px}.sheet-table{width:100%;border-collapse:collapse}.sheet-table th{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);text-align:left;font-weight:500;padding:7px 8px;border-bottom:1px solid var(--ink)}.sheet-table td{font-size:13px;padding:9px 8px;border-bottom:1px solid var(--line-soft);vertical-align:top}.sheet-foot{margin-top:30px;padding-top:12px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}@media print{.no-print,.side{display:none!important}.shell{display:block;background:white}.main-col{padding:0}.sheet-doc{border:none;box-shadow:none;max-width:none;padding:0}}.modal{border:1px solid var(--line);background:var(--doc);color:var(--ink);padding:0;max-width:760px;width:calc(100vw - 40px);box-shadow:0 24px 70px rgba(43,36,28,.35)}.modal::-webkit-backdrop{background:rgba(43,36,28,.45)}.modal::backdrop{background:rgba(43,36,28,.45)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:var(--doc)}.modal-head h3{font-size:22px}.modal-close{all:unset;cursor:pointer;color:var(--ink-faint);font-size:15px;padding:4px 8px}.modal-close:hover{color:var(--ink)}.modal-body{padding:22px;max-height:72vh;overflow-y:auto}.error-note{border:1px solid rgba(176,78,51,.5);background:rgba(176,78,51,.08);color:var(--rust);padding:10px 14px;font-size:13.5px}.chat{border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;height:min(66vh,720px);min-height:420px}.chat-scroll{flex:1 1;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:12px}.chat-empty{margin:auto;max-width:560px;text-align:center;color:var(--ink-dim);font-size:14.5px}.chat-suggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}.chat-suggestion{border:1px solid var(--line);background:var(--doc);color:var(--ink-dim);font-size:12.5px;padding:7px 11px;cursor:pointer;font-family:var(--font-ui);text-align:left}.chat-suggestion:hover{border-color:var(--brass);color:var(--ink)}.chat-msg{max-width:78%;padding:10px 14px;font-size:14.5px;white-space:pre-wrap;overflow-wrap:anywhere}.chat-msg.user{align-self:flex-end;background:var(--paper-2);border:1px solid var(--line-soft)}.chat-msg.assistant{align-self:flex-start;background:var(--doc);border:1px solid var(--line)}.chat-msg.err{border-color:rgba(176,78,51,.5);color:var(--rust)}.chat-file-tag{display:block;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-faint);margin-bottom:4px}.chat-working{color:var(--ink-faint);font-style:italic}.chat-actions{display:flex;flex-direction:column;gap:4px;margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}.chat-action{font-family:var(--font-mono);font-size:12px;color:var(--moss)}.chat-compose{border-top:1px solid var(--line);background:var(--doc);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.chat-attached{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-dim);font-family:var(--font-mono)}.chat-detach{border:1px solid var(--line);background:var(--card);cursor:pointer;line-height:1;padding:1px 7px 3px;color:var(--ink-dim)}.chat-attached-hint{color:var(--ink-faint);font-family:var(--font-ui);font-size:11.5px}.chat-row{display:flex;gap:8px;align-items:flex-end}.chat-attach-btn,.chat-input{padding:9px 12px}.chat-input{flex:1 1;resize:none;border:1px solid var(--line);background:var(--card);color:var(--ink);font-family:var(--font-ui);font-size:14.5px;line-height:1.45}.chat-input:focus{outline:none;border-color:var(--brass)}