:root {
  --text: #111;
  --muted: #737373;
  --line: #efefef;
  --border: #dbdbdb;
  --soft: #fafafa;
  --blue: #0095f6;
  --danger: #ed4956;
  --nav: 244px;
  color-scheme: light;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: #fff;
  min-height: 100vh;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; color: inherit; }
.main { min-height: 100vh; }
body.in .main { margin-left: var(--nav); }
.top, .wrap { width: min(935px, calc(100% - 32px)); margin: 0 auto; }
body.in .wrap { width: min(1120px, calc(100% - 48px)); }
body.in .wrap.sheetpage { width: min(1680px, calc(100% - 48px)); }
body.in .wrap.campaignpage { width: calc(100% - 36px); max-width: none; }
.top {
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand { display: flex; align-items: center; gap: 10px; font-weight: 700; letter-spacing: -0.04em; font-size: 1.15rem; }
.mark {
  width: 28px; height: 28px; border-radius: 50%;
  background: conic-gradient(from 200deg, #feda75, #fa7e1e, #d62976, #962fbf, #4f5bd5, #feda75);
  display: inline-grid; place-items: center; flex: none;
}
.mark span, .ring span.inner { width: 22px; height: 22px; border-radius: 50%; background: #fff; display: block; }
.pill, .google, .card button.pill {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border-radius: 999px; padding: 8px 16px; border: 0; background: var(--blue); color: #fff; font-weight: 650; cursor: pointer;
}
.pill.dark { background: #111; }
.pill.line { background: #fff; color: #111; border: 1px solid #111; }
.pill.line.danger { color: var(--danger); border-color: var(--danger); }
.profile { display: grid; grid-template-columns: 150px 1fr; gap: 28px; align-items: center; padding: 18px 0 8px; }
.ring { width: 96px; height: 96px; border-radius: 50%; padding: 3px; border: 0; background: conic-gradient(from 200deg, #feda75, #fa7e1e, #d62976, #962fbf, #4f5bd5, #feda75); }
button.ring { cursor: pointer; display: grid; }
.ring.sm { width: 72px; height: 72px; }
.ava { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; background: #fff; }
.ava.letter, .story span {
  display: grid; place-items: center; font-weight: 700; color: #111;
}
.ava.big { font-size: 1.6rem; }
.who h1, .space-head h1, .card h1 { margin: 0; letter-spacing: -0.045em; }
.who h1 { font-size: 1.7rem; }
.who p, .space-head p { color: var(--muted); line-height: 1.55; margin: 8px 0 0; }
.stats { display: flex; gap: 22px; list-style: none; padding: 14px 0 0; margin: 0; }
.stats b { display: block; font-size: 0.95rem; }
.stats span { color: var(--muted); font-size: 0.82rem; }
.stories { display: flex; gap: 18px; overflow: auto; padding: 22px 0 8px; }
.story { width: 74px; text-align: center; flex: none; }
.story span { width: 64px; height: 64px; border-radius: 50%; margin: 0 auto 6px; border: 3px solid #fff; outline: 1px solid #eee; }
.story small { color: var(--muted); }
.tabs { display: flex; justify-content: center; gap: 28px; border-top: 1px solid var(--line); margin-top: 12px; }
.tabs span { padding: 14px 0; color: var(--muted); font-size: 0.92rem; }
.tabs .on { color: #111; font-weight: 700; box-shadow: inset 0 -1px 0 #111; }
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; }
.tone-0 { background: linear-gradient(160deg,#ffe7c2,#ffb3c7); }
.tone-1 { background: linear-gradient(160deg,#d7f5e8,#9fd3ff); }
.tone-2 { background: linear-gradient(160deg,#f7d6e0,#c9b6ff); }
.tone-3 { background: linear-gradient(160deg,#fff4c2,#ffd0a8); }
.tone-4 { background: linear-gradient(160deg,#e7e5ff,#c6f1ff); }
.tone-5 { background: linear-gradient(160deg,#ffe1d6,#f6c1ff); }
.paper { background: #f3f3f3; }
.tile {
  aspect-ratio: 1; position: relative; overflow: hidden; color: #111;
  display: flex; flex-direction: column; justify-content: flex-end; padding: 14px;
}
.tile::before {
  content: ""; position: absolute; inset: auto 0 0 0; height: 46%;
  background: linear-gradient(transparent, rgba(255,255,255,.78));
}
.story span { box-shadow: inset 0 0 0 3px #fff; }
.tile span { font-weight: 750; letter-spacing: -0.04em; font-size: 1.15rem; position: relative; }
.tile small { position: relative; color: rgba(17,17,17,.72); margin-top: 4px; }
.tile.post { color: #111; align-items: flex-start; justify-content: flex-end; }
.tile svg { width: 28px; height: 28px; stroke: currentColor; fill: none; stroke-width: 1.6; margin-bottom: auto; }
.tile:hover { filter: saturate(1.05) brightness(.98); }
.spaces { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.space-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 16px 16px 8px; display: grid; align-content: start; gap: 4px; }
.space-card-head { display: flex; gap: 12px; align-items: center; padding-bottom: 8px; }
.swatch { width: 44px; height: 44px; border-radius: 14px; flex: none; }
.swatch.logo { overflow: hidden; background: #fff; }
.swatch.logo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.space-card b, .space-card small, .space-card .label { display: block; }
.space-card b { letter-spacing: -0.04em; font-size: 1.08rem; }
.space-card small, .space-card .label { color: var(--muted); font-size: 0.82rem; }
.space-card .label { margin: 8px 0 0; font-weight: 700; }
.space-links { list-style: none; margin: 0; padding: 0; }
.space-links a { display: flex; align-items: center; gap: 8px; padding: 10px 2px; border-top: 1px solid var(--line); color: #111; }
.space-links a span { min-width: 0; word-break: keep-all; }
.space-links svg, .tree a > svg, .toc-mobile a > svg { width: 18px; height: 18px; flex: none; fill: none; stroke-width: 1.8; }
.space-links a.folder > svg, .tree a.folder > svg, .toc-mobile a.folder > svg { stroke: #e39a2d; }
.space-links a.post > svg, .tree a.post > svg, .toc-mobile a.post > svg { stroke: #6a5cff; }
.note { padding: 42px 0 12px; }
.note h2 { margin: 0 0 8px; font-size: 1.2rem; letter-spacing: -0.04em; }
.note ol { margin: 0; padding-left: 18px; color: #333; line-height: 1.8; }
.foot { color: var(--muted); padding: 8px 0 28px; font-size: 0.85rem; }
.home { background: #f3f3f3; min-height: 100vh; word-break: keep-all; overflow-wrap: break-word; }
.mast { background: #fff; border-bottom: 1px solid var(--line); }
.stage { width: min(1080px, calc(100% - 48px)); margin: 0 auto; }
.bar { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mast-actions { display: flex; align-items: center; gap: 8px; }
.manual { display: grid; gap: 14px; padding: 28px 0 64px; }
.manual header h1 { margin: 0 0 6px; }
.manual section { border: 1px solid var(--line); border-radius: 16px; background: #fff; padding: 16px 18px 18px; }
.manual h2 { margin: 0 0 8px; font-size: 1.05rem; }
.manual p, .manual li { line-height: 1.55; }
.manual ul, .manual ol { margin: 0; padding-left: 1.2em; }
.manual li + li { margin-top: 6px; }
.deck { padding: 28px 0 12px; display: grid; gap: 22px; }
.sheet, .step-cards li, .result { background: #fff; border: 1px solid var(--line); border-radius: 20px; }
.hero { padding: 42px 44px 36px; }
.hero h1 { margin: 8px 0 14px; font-size: clamp(1.85rem, 3.2vw, 2.7rem); letter-spacing: -0.055em; line-height: 1.25; }
.deck h2 { margin: 0 0 12px; font-size: 1.15rem; letter-spacing: -0.04em; }
.eyebrow { margin: 0; color: var(--muted); font-size: 0.92rem; }
.lead { margin: 0 0 18px; color: #333; font-size: 1.05rem; line-height: 1.7; max-width: 40rem; }
.step-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.step-cards li { padding: 22px 20px 20px; }
.step-cards span { display: block; color: var(--muted); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; }
.step-cards b { display: block; margin: 8px 0 6px; font-size: 1.15rem; letter-spacing: -0.04em; }
.step-cards p { margin: 0; color: #333; line-height: 1.6; word-break: keep-all; }
.result { overflow: hidden; }
.result header { display: flex; gap: 12px; align-items: center; padding: 16px 18px; background: var(--soft); }
.result header .ava { width: 44px; height: 44px; flex: none; }
.result header b, .result header small, .mock-row strong, .mock-row small { display: block; }
.result header small, .mock-row small { color: var(--muted); margin-top: 2px; line-height: 1.45; }
.mock-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 14px 18px; border-top: 1px solid var(--line); }
.doc svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.7; }
.mock-row em { font-style: normal; font-size: 0.72rem; font-weight: 700; background: #111; color: #fff; border-radius: 999px; padding: 4px 8px; }
.login { min-height: calc(100vh - 64px); display: grid; place-items: center; padding: 24px; }
.card {
  width: min(400px, 100%); border: 1px solid var(--border); border-radius: 16px;
  padding: 36px 28px; text-align: center; background: #fff;
}
.card.left { text-align: left; }
.card h1 { font-size: 1.45rem; margin-top: 14px; }
.card form { text-align: left; display: grid; gap: 10px; margin-top: 8px; }
.card button.pill { width: 100%; }
.or { margin: 16px 0 8px; color: var(--muted); font-size: 0.85rem; }
.stack { display: grid; gap: 10px; max-width: 560px; }
.card p { color: var(--muted); line-height: 1.55; }
.google {
  width: 100%; background: #fff; color: #111; border: 1px solid var(--border); margin-top: 8px;
}
.gmark { width: 18px; height: 18px; }
.waitbox, .flash {
  background: var(--soft); border-radius: 12px; padding: 12px 14px; color: #333; line-height: 1.5;
}
.flash.ok { background: #eefbf3; }
.flash.bad { background: #fff1f2; }
.nav {
  position: fixed; inset: 0 auto 0 0; width: var(--nav);
  border-right: 1px solid var(--line); padding: 24px 14px 18px;
  display: flex; flex-direction: column; background: #fff;
}
.nav nav { display: grid; gap: 4px; margin-top: 28px; }
.nav a, .tabbar a, .tabbar button {
  display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; background: transparent; border: 0; cursor: pointer;
}
.nav a.on, .tabbar a.on { font-weight: 750; background: var(--soft); }
.nav svg, .tabbar svg, .tree svg, .files svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.7; }
.me { margin-top: auto; display: grid; grid-template-columns: 36px 1fr auto; gap: 8px; align-items: center; padding: 8px; }
.me .ava { width: 36px; height: 36px; }
.me strong, .me small { display: block; }
.me small, .muted { color: var(--muted); }
.me strong { font-size: 0.85rem; }
.icon { border: 0; background: transparent; padding: 6px; cursor: pointer; }
.space-head { display: flex; gap: 16px; align-items: center; padding: 28px 0 18px; }
.head-actions { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.space-head h1 { font-size: 1.55rem; }
.split { display: grid; grid-template-columns: 230px 1fr; gap: 22px; align-items: start; }
.tree { position: sticky; top: 18px; }
.tree p { margin: 0 0 8px; font-size: 0.78rem; color: var(--muted); }
.tree ul { list-style: none; margin: 0; padding: 0 0 0 12px; }
.tree > ul { padding-left: 0; }
.sortbar { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.sortbar a { border: 1px solid var(--border); border-radius: 999px; padding: 6px 12px; font-size: 0.82rem; font-weight: 700; color: #333; }
.sortbar a.on { background: #111; color: #fff; border-color: #111; }
.tree a { display: flex; gap: 8px; align-items: center; padding: 7px 8px; border-radius: 8px; color: #333; }
.tree a span { min-width: 0; word-break: keep-all; }
.ico.fill { fill: currentColor; stroke: none; }
.mark-star { display: inline-flex; flex: none; color: #e39a2d; }
.mark-star svg { width: 15px; height: 15px; }
.tree .mark-star { margin-right: -2px; }
h2 .mark-star { margin-right: 6px; vertical-align: -1px; }
.tile span .mark-star { margin-right: 4px; vertical-align: -2px; }
.tree em { margin-left: auto; font-style: normal; color: var(--muted); font-size: 0.72rem; font-weight: 700; }
.secret-box { max-width: 360px; display: grid; gap: 10px; margin-top: 8px; }
.tree a.on { background: var(--soft); font-weight: 700; color: #111; }
.crumbs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; color: var(--muted); margin-bottom: 12px; font-size: 0.92rem; }
.crumbs a:last-child { color: #111; font-weight: 700; }
.manual { border: 1px solid var(--line); border-radius: 16px; padding: 22px; }
.manual h2 { margin: 0 0 12px; letter-spacing: -0.04em; }
.body { white-space: pre-wrap; line-height: 1.7; }
.files { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.files li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 16px; align-items: center; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.file-main { min-width: 0; }
.file-actions { display: flex; gap: 12px; align-items: center; }
.files small, .files b { display: block; overflow-wrap: anywhere; }
.files a { display: inline-flex; gap: 6px; align-items: center; color: var(--blue); font-weight: 700; }
.files button, .plain button, .textlink { background: none; border: 0; color: var(--muted); cursor: pointer; }
.files .thumb, .files .preview, .files .rename { grid-column: 1 / -1; }
.files .thumb { display: flex; justify-content: center; background: var(--soft); border-radius: 12px; padding: 16px; }
.files .thumb img, .files .preview iframe { width: 100%; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.files .thumb img { width: auto; max-width: min(100%, 520px); max-height: min(68vh, 640px); object-fit: contain; }
.files .preview summary { cursor: pointer; width: fit-content; }
.files .preview iframe { height: min(70vh, 720px); }
.sheet-wrap { overflow: auto; max-height: min(52vh, 480px); margin-top: 8px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.sheet-wrap table { border-collapse: collapse; width: max-content; min-width: 100%; font-size: 0.86rem; }
.sheet-wrap th, .sheet-wrap td { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); padding: 8px 10px; text-align: left; vertical-align: top; white-space: normal; word-break: keep-all; overflow-wrap: anywhere; min-width: 88px; max-width: 280px; line-height: 1.45; }
.sheet-wrap th { position: sticky; top: 0; background: var(--soft); font-weight: 700; }
.sheet-wrap.tall { max-height: min(72vh, 760px); }
.sheet-wrap td.num, .sheet-wrap th.num { text-align: right; font-variant-numeric: tabular-nums; }
.sheet-wrap tr.is-late td { background: #fff4f2; }
.sheet-wrap tr.is-late b { color: #b42318; }
.settle-actions { display: flex; gap: 12px; align-items: center; margin: 14px 0 22px; }
.settle-actions form { margin: 0; }
.manual h3 { margin: 18px 0 8px; font-size: 1rem; }
.settle-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 8px 0 14px; }
.settle-tools .finder { margin: 0; }
.settle-tools input[type="file"] { width: auto; }
.bundle:not(th):not(col) { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 12px 14px; align-items: center; border: 1px solid var(--line); border-radius: 16px; padding: 14px; margin-top: 12px; }
.bundle-side, .bundle-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.bundle-side { grid-column: 1 / -1; }
.bundle .editor { grid-column: 1 / -1; }
.shot { width: 72px; height: 72px; border-radius: 12px; object-fit: contain; background: var(--soft); border: 1px solid var(--line); }
.shot.sm { width: 48px; height: 48px; }
.vendor-mark { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; background: #3c3935; color: #f6f1e8; font-weight: 750; }
.icon-pick { display: flex; flex-wrap: wrap; gap: 8px; }
.icon-choice { width: 76px; justify-items: center; gap: 4px; margin: 0; padding: 8px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.icon-choice input { width: auto; }
.icon-choice img, .icon-choice .vendor-mark { width: 36px; height: 36px; }
.vendor-current { display: flex; gap: 12px; align-items: center; }
.vendor-current .check { margin: 0; }
.shot.ph { display: grid; place-items: center; color: var(--muted); font-size: 0.75rem; }
.bundle p { margin: 2px 0; }
.bundle small, .editor small { display: block; color: var(--muted); }
.money { font-variant-numeric: tabular-nums; }
.tag { display: inline-flex; margin: 6px 0; border-radius: 999px; padding: 4px 10px; background: var(--soft); font-size: 0.82rem; }
.tag.warn { color: var(--danger); }
.editor input, .editor select { min-width: 88px; }
.vendor-row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(70px, .6fr) minmax(70px, .5fr) minmax(100px, .8fr) auto; gap: 8px; align-items: center; margin: 8px 0; }
.vendor-line { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 4px 0; }
.vendor-pick { display: flex; gap: 8px; align-items: center; margin: 0; }
.vendor-pick select { width: auto; min-width: 160px; }
.gridbook { max-height: calc(100vh - 240px); }
.sheet-wrap.gridbook table { table-layout: fixed; width: max-content; min-width: 0; font-size: 0.8rem; }
.gridbook col.shot { width: 44px; }
.gridbook col.box { width: 92px; }
.gridbook col.name { width: 200px; }
.gridbook col.mid { width: 128px; }
.gridbook col.vendor { width: 148px; }
.gridbook col.short { width: 72px; }
.gridbook col.money { width: 96px; }
.gridbook col.bundle,
.gridbook th.bundle { width: 188px; }
.boxbook col.bundle,
.boxbook th.bundle { width: 125px; }
.gridbook col.vendor-total,
.gridbook th.vendor-total { width: 260px; }
.boxbook col.vendor-total,
.boxbook th.vendor-total { width: 173px; }
.gridbook td.vendor-total {
  min-width: 173px;
  background: #24362f;
  color: #f6f1e8;
  text-align: right;
  vertical-align: middle;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.gridbook td.vendor-total b { color: #fbf7f1; font-size: 0.92rem; font-weight: 750; }
.gridbook td.vendor-total small { display: block; margin-top: 4px; color: rgba(246, 241, 232, 0.78); font-weight: 550; }
.bundle-cell, .vendor-bundle {
  background: #3c3935;
  color: #f6f1e8;
  vertical-align: middle;
  text-align: left;
}
.bundle-cell { box-shadow: inset 3px 0 0 #c9c1b4; }
.bundle-cell.wait, .vendor-bundle.wait {
  background: #f7f5f1;
  color: #2c2a27;
  box-shadow: inset 3px 0 0 #b7b1a6;
}
.bundle-cell.paid, .vendor-bundle.paid { background: #243f34; color: #f3f6f1; }
.bundle-name { display: block; font-size: 0.78rem; font-weight: 700; letter-spacing: -0.03em; color: #e4ddd2; }
.bundle-cell.wait .bundle-name, .vendor-bundle.wait .bundle-name { color: #2c2a27; }
.bundle-ask { display: block; margin-top: 4px; font-size: 1.15rem; font-weight: 750; letter-spacing: -0.04em; color: #fbf7f1; }
.bundle-cell.wait .bundle-ask, .vendor-bundle.wait .bundle-ask { color: #1c1b19; }
.bundle-cell small, .vendor-bundle small { display: block; margin-top: 4px; color: rgba(246, 241, 232, 0.78); font-weight: 550; }
.bundle-cell .pay-math, .vendor-bundle .pay-math { margin-top: 8px; font-size: 0.72rem; font-weight: 650; line-height: 1.35; letter-spacing: -0.03em; }
.bundle-cell.wait small, .vendor-bundle.wait small { color: var(--muted); }
.bundle-order { color: rgba(246, 241, 232, 0.78); }
.vendor-bundle.wait .bundle-order { color: var(--muted); }
.party-line { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.bundle-cell .party-line .pill, .vendor-bundle .party-line .pill { background: #f4efe6; color: #2c2a27; border-color: #f4efe6; }
.bundle-cell .party-line .pill.line, .vendor-bundle .party-line .pill.line { background: transparent; color: #f6f1e8; border-color: rgba(246, 241, 232, 0.45); }
.bundle-cell.wait .party-line .pill, .vendor-bundle.wait .party-line .pill { background: #3c3935; color: #f6f1e8; border-color: #3c3935; }
.bundle-cell.wait .party-line .pill.line, .vendor-bundle.wait .party-line .pill.line { background: transparent; color: #2c2a27; border-color: #b7b1a6; }
.vendor-bundles { display: flex; flex-wrap: wrap; gap: 10px; margin: 4px 0 14px; }
.vendor-bundle { min-width: 220px; border-radius: 16px; padding: 14px 16px; }
.gridbook th, .gridbook td { min-width: 0; max-width: none; padding: 4px 6px; }
.gridbook th { position: sticky; }
.col-grip { position: absolute; top: 0; right: 0; width: 8px; height: 100%; cursor: col-resize; }
.col-grip:hover { background: #111; }
.gridbook input, .gridbook select { width: 100%; min-width: 0; padding: 4px 6px; box-sizing: border-box; }
.gridbook .shot.sm { width: 36px; height: 36px; }
.rate-bar { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center; margin: 8px 0 12px; }
.rate-bar label { display: flex; gap: 8px; align-items: center; margin: 0; font-weight: 650; }
.rate-bar input { width: 120px; }
.rate-bar button { flex: none; }
.rate-bar span { color: var(--muted); }
.invoice-orders { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.invoice-order { display: inline-flex; gap: 8px; align-items: center; }
.orderbook { max-height: none; }
.orderbook table { width: 100%; min-width: 760px; }
.orderbook th, .orderbook td { min-width: 0; max-width: none; white-space: nowrap; }
.orderbook tbody tr:hover { background: var(--soft); }
tr.pick-row { cursor: pointer; }
tr.pick-row .pick { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
tr.pick-row.picked > td,
.orderbook tr.pick-row.picked > td,
.gridbook tr.pick-row.picked > td,
.gridbook tr.pick-row.picked > td.pinned,
.gridbook tr[class*="band-"].pick-row.picked > td:not(.bundle-cell):not(.vendor-total):not(.order-cell),
.gridbook tr[class*="band-"].pick-row.picked > td.pinned:not(.bundle-cell):not(.vendor-total):not(.order-cell),
.gridbook tr.pick-row.picked > td.bundle-cell,
.gridbook tr.pick-row.picked > td.pinned.bundle-cell {
  background: #7dff1a;
  color: #1c1b19;
  box-shadow: none;
}
tr.need-vendor > td:nth-child(2) { box-shadow: inset 3px 0 0 #9a3b24; }
.orderbook a { font-weight: 700; }
.gridbook tr.band-0 > td:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #f6f3ec; }
.gridbook tr.band-1 > td:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #eef2f5; }
.gridbook tr.band-2 > td:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #eef4f0; }
.gridbook tr.band-3 > td:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #f6f0ec; }
.gridbook tr.band-4 > td:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #f2f0f5; }
.gridbook tr.band-5 > td:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #f5f3e8; }
.gridbook tr.band-6 > td:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #eef3f3; }
.gridbook tr.band-7 > td:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #f5f0f3; }
.gridbook td.order-cell { background: #faf9f7; }
.stage-dialog:not([open]) { display: none; }
.stage-dialog {
  width: 100vw;
  height: 100vh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: #f3f1ed;
  color: #111;
  display: flex;
  flex-direction: column;
}
.stage-dialog::backdrop { background: #1f1e1c; }
.stage-bar {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 52px;
  padding: 0 14px 0 18px;
  background: #3c3935;
  color: #f6f1e8;
}
.stage-bar b { font-size: 0.95rem; letter-spacing: -0.03em; }
.stage-bar .pill.line { background: transparent; color: #f6f1e8; border-color: rgba(246, 241, 232, 0.4); }
.stage-body { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 8px 14px 12px; }
.stage-dialog #settle-app { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.stage-dialog .menu-tabs { flex: none; margin-top: 4px; }
.stage-dialog .panel {
  flex: 1;
  min-height: 0;
  margin-top: 8px;
  padding-top: 0;
  border-top: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.stage-dialog .sheet-wrap.gridbook,
.stage-dialog .sheet-wrap.orderbook {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
}
.stage-dialog .col-panes {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.stage-dialog .col-panes-bar { flex: none; }
.stage-dialog .col-panes .sheet-wrap.gridbook { overflow-y: auto; }
.stage-dialog .check-fold {
  flex: 0 0 auto;
  min-height: 0;
  max-height: min(40vh, 420px);
  overflow: auto;
}
.sheet-wrap.orderbook.check { max-height: min(52vh, 560px); overflow: auto; }
.stage-dialog .check-fold .sheet-wrap.orderbook.check { flex: none; max-height: none; overflow: visible; }
.stage-dialog .col-panes .sheet-wrap.gridbook.full-sheet { overflow-x: auto; }
.stage-dialog .col-panes .sheet-wrap.gridbook.fit-sheet { overflow-x: hidden; }
.gridbook tr.mine > td:first-child { box-shadow: inset 3px 0 0 #8a847a; }
.gridbook .order-cell, .gridbook .order-cell small { white-space: nowrap; }
.gridbook .order-cell small { display: block; margin-top: 4px; color: var(--muted); font-weight: 550; }
.orderbook.check th, .orderbook.check td { border: 1px solid #d9d3c8; vertical-align: middle; }
.orderbook.check td.box-no { text-align: center; font-weight: 750; background: #f3efe6; }
.orderbook.check th.sheet-title, .orderbook.check th.sheet-count { text-align: center; background: #3c3935; color: #f6f1e8; }
.orderbook.check th.sheet-title { font-size: 1.15rem; letter-spacing: -0.03em; }
.orderbook.check td.box-no.box-tone-0 { background: #d64545; color: #fff; }
.orderbook.check td.box-no.box-tone-1 { background: #e07a1f; color: #fff; }
.orderbook.check td.box-no.box-tone-2 { background: #2f7d4a; color: #fff; }
.orderbook.check td.box-no.box-tone-3 { background: #2f6fbf; color: #fff; }
.orderbook.check td.box-no.box-tone-4 { background: #6b4c9a; color: #fff; }
.orderbook.check td.box-no.box-tone-5 { background: #c45c26; color: #fff; }
.orderbook.check td.box-no.box-tone-6 { background: #1f7a78; color: #fff; }
.orderbook.check td.box-no.box-tone-7 { background: #c4a035; color: #2c2410; }
.orderbook.check tr.box-b > td:not(.box-no) { background: #f7f5f1; }
.orderbook.check tr.box-end > td { border-bottom: 2px solid #2c2926; }
.orderbook .shot-cell { width: 48px; }
.orderbook .shot.sm { width: 36px; height: 36px; }
.gaps { margin-top: 8px; }
@media (min-width: 860px) {
  .bundle:not(th):not(col) { grid-template-columns: 72px minmax(0, 1fr) auto; }
  .bundle-side { grid-column: auto; justify-content: flex-end; }
}
.files .rename { display: flex; gap: 8px; align-items: center; margin: 0; }
.files .rename input { flex: 1; min-width: 0; }
.files .rename button { flex: none; }
.textlink.danger, .files form:not(.rename) button { color: var(--danger); }
.files .rename button.pill { background: #111; color: #fff; }
.files form.file-remove { display: inline; margin: 0; }
.composer, .panel { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 18px; }
.menu-tabs { display: flex; gap: 8px; margin-top: 22px; align-items: center; flex-wrap: wrap; }
.menu-end { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.menu-gear { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #111; border-radius: 999px; background: #fff; cursor: pointer; color: #111; }
.menu-gear .ico { width: 18px; height: 18px; }
.settings-pop { width: min(560px, calc(100vw - 28px)); max-height: min(860px, calc(100vh - 32px)); overflow: auto; }
.settings-pop h3 { margin: 8px 0 0; font-size: 0.95rem; }
.settings-fold { border: 1px solid var(--line); border-radius: 14px; }
.settings-fold summary { display: flex; gap: 10px; align-items: center; padding: 12px 14px; cursor: pointer; list-style: none; font-weight: 700; }
.settings-fold summary::-webkit-details-marker { display: none; }
.settings-fold summary::before { content: ""; width: 8px; height: 8px; border-right: 2px solid #3c3935; border-bottom: 2px solid #3c3935; transform: rotate(-45deg); flex: none; }
.settings-fold[open] summary::before { transform: rotate(45deg); margin-top: -4px; }
.settings-fold .muted { margin: 0 14px 8px; }
.settings-fold .settings-grid { margin: 0 14px 12px; }
.settings-fold .settings-row { margin: 0 14px 12px; }
.settings-pop form { display: grid; gap: 10px; }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.settings-row { display: flex; gap: 12px; align-items: center; justify-content: space-between; }
.settings-switch { display: block; position: relative; width: 44px; height: 26px; margin: 0; }
.settings-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.settings-switch span { display: block; height: 26px; border-radius: 999px; background: #d7d2cb; }
.settings-switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .15s ease; }
.settings-switch input:checked + span { background: #3c3935; }
.settings-switch input:checked + span::after { transform: translateX(18px); }
.menu-tabs a { border: 1px solid #111; border-radius: 999px; padding: 8px 16px; color: #111; background: #fff; font-weight: 650; }
.menu-tabs a.on { background: #111; color: #fff; }
.menu-off { border: 1px solid #d7d2cb; border-radius: 999px; padding: 8px 16px; color: #a39e96; background: #f6f3ee; font-weight: 650; }
.menu-sep { color: #8a847a; font-weight: 700; }
.menu-tabs + .panel { border-top: 0; margin-top: 8px; padding-top: 8px; }
.here { margin: 18px 0 0; color: var(--muted); }
.here b { color: #111; font-weight: 700; }
.icon-pop { border: 0; border-radius: 20px; padding: 18px 18px 12px; width: min(440px, calc(100vw - 28px)); box-shadow: 0 18px 50px rgba(17,17,17,.18); }
.icon-pop::backdrop { background: rgba(17,17,17,.38); }
.icon-pop-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.icon-pop-head b { font-size: 1.05rem; letter-spacing: -0.03em; }
.icon-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.icon-grid button { border: 1px solid var(--line); background: #fff; border-radius: 14px; padding: 6px; cursor: pointer; }
.icon-grid button.on, .icon-grid button:hover { border-color: #111; }
.icon-grid img { width: 100%; height: auto; display: block; }
.credit { margin: 10px 0 0; color: var(--muted); font-size: 0.75rem; }
.composer form, .person, .inline { display: grid; gap: 10px; margin: 12px 0 18px; }
.inline { grid-template-columns: 1fr 1.4fr auto; align-items: center; }
label { display: grid; gap: 6px; font-size: 0.86rem; color: var(--muted); }
input, textarea, select {
  width: 100%; border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: #fff;
}
textarea { min-height: 120px; resize: vertical; }
fieldset { border: 1px solid var(--line); border-radius: 12px; }
.check { display: flex; align-items: center; gap: 8px; color: #111; }
.check input { width: auto; flex: none; }
.check.room { font-weight: 700; margin: 2px 0 8px; }
.check.room small { font-weight: 450; color: var(--muted); }
.who-row b, .who-row small { display: block; }
.who-row { display: flex; gap: 10px; align-items: center; }
.who-row .ava { width: 40px; height: 40px; }
.plain { list-style: none; padding: 0; margin: 0; }
.plain li { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.feature-flags { flex: 1 0 100%; display: flex; gap: 14px; align-items: center; margin: 0; }
.feature-flags .feature-label { width: 140px; flex: none; }
.feature-flags .pill { margin-left: auto; }
.feature-links { display: flex; gap: 12px; margin: 8px 0 0; }
.feature-file { flex: 1 0 100%; margin: 0; color: var(--muted); font-size: 0.86rem; }
.ext-pack { border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; margin-top: 14px; }
.ext-pack h3 { margin: 0 0 6px; }
.ext-pack .inline { margin: 10px 0; grid-template-columns: 1fr auto; }
.ext-code { overflow: auto; max-height: 360px; margin: 8px 0 0; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); white-space: pre-wrap; word-break: break-word; font-size: 0.82rem; line-height: 1.45; }
.row-edit { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 8px; margin: 0; align-items: center; }
.row-edit .pill { background: #111; color: #fff; border-radius: 999px; padding: 8px 14px; }
.wrap.wide { width: min(1100px, calc(100% - 32px)); }
.finder { display: flex; gap: 8px; align-items: center; }
.finder.slim { margin-bottom: 12px; }
.finder .pill { flex: none; }
.chips { display: flex; gap: 8px; flex-wrap: wrap; margin: 14px 0; }
.chip {
  border: 1px solid var(--border); border-radius: 999px; padding: 7px 12px;
  color: #333; background: #fff; font-size: 0.86rem;
}
.chip.on { background: #111; color: #fff; border-color: #111; }
.member-split { display: grid; grid-template-columns: 300px 1fr; gap: 16px; align-items: start; }
.member-list {
  border: 1px solid var(--line); border-radius: 16px; overflow: auto;
  max-height: calc(100vh - 230px); background: #fff;
}
.member-list a { display: flex; gap: 10px; align-items: center; padding: 12px; border-bottom: 1px solid var(--line); }
.member-list a.on { background: var(--soft); }
.member-list .ava { width: 40px; height: 40px; flex: none; }
.member-list a > span { flex: 1; min-width: 0; }
.member-list b, .member-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.member-list small { color: var(--muted); }
.badge {
  flex: none; font-style: normal; border-radius: 999px; padding: 4px 8px;
  font-size: 0.72rem; font-weight: 700; background: var(--soft); color: #333;
}
.badge.pending { background: #fff4e5; color: #9a6700; }
.badge.approved { background: #eefbf3; color: #0a7a32; }
.badge.rejected { background: #fff1f2; color: #c01e2e; }
.member-card { border: 1px solid var(--line); border-radius: 16px; padding: 18px; display: grid; gap: 12px; }
.member-card h2 { margin: 0; font-size: 1.15rem; letter-spacing: -0.03em; }
.member-card.empty { min-height: 220px; place-items: center; color: var(--muted); }
.pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.folder-head h3, .folder-group legend { margin: 0; font-size: 0.95rem; letter-spacing: -0.03em; }
.folder-head p { margin: 4px 0 0; }
.folder-group { margin: 0; }
.pad { padding: 16px; }
.tabbar, .toc-mobile { display: none; }
@media (max-width: 860px) {
  .profile { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .stats { justify-content: center; }
  .grid { grid-template-columns: repeat(3, 1fr); }
  .inline, .row-edit, .pair, .member-split { grid-template-columns: 1fr; }
  .member-list { max-height: 280px; }
}
@media (max-width: 760px) {
  .stage { width: min(1080px, calc(100% - 28px)); }
  .hero { padding: 26px 20px 22px; }
  .hero h1 { font-size: 1.7rem; }
  .step-cards { grid-template-columns: 1fr; }
  .bar { min-height: 64px; }
  body.in .wrap { width: min(1120px, calc(100% - 20px)); }
  .manual { padding: 16px 14px; }
  .space-head { padding: 16px 0 12px; }
  .space-head h1 { font-size: 1.25rem; }
  .files li { grid-template-columns: 1fr; gap: 8px; padding: 12px; }
  .file-actions { justify-content: flex-start; }
  .files .thumb { padding: 10px; }
  .files .thumb img { max-width: 100%; max-height: 68vh; }
  .sheet-wrap { max-height: 58vh; }
  .sheet-wrap th, .sheet-wrap td { min-width: 72px; max-width: 200px; font-size: 0.8rem; padding: 7px 8px; }
  .files .rename { flex-wrap: wrap; }
  .files .rename input { flex: 1 1 160px; }
  body.in .main { margin: 0 0 72px; }
  .nav { display: none; }
  .split { display: block; }
  .tree { display: none; }
  .spaces { grid-template-columns: 1fr; }
  .toc-mobile { display: block; margin-bottom: 12px; }
  .toc-mobile summary { cursor: pointer; color: #111; font-weight: 700; }
  .toc-mobile ul { list-style: none; margin: 6px 0 0; padding: 0; }
  .toc-mobile ul ul { margin: 0; padding-left: 22px; }
  .toc-mobile a { display: flex; align-items: center; gap: 8px; padding: 9px 2px; color: #111; }
  .toc-mobile a span { min-width: 0; word-break: keep-all; }
  .toc-mobile a.on { font-weight: 700; }
  .tabbar {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; background: #fff;
    border-top: 1px solid var(--line); justify-content: space-around; padding: 6px 8px 10px;
  }
  .tabbar span { font-size: 0.72rem; }
  .tabbar a, .tabbar button { flex-direction: column; gap: 2px; }
  .grid { grid-template-columns: repeat(2, 1fr); }
}
.space-head .ask { margin-left: auto; flex: none; }
.request-layout { display: grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap: 18px; align-items: start; }
.request-group h3 { margin: 0 0 8px; font-size: 0.95rem; letter-spacing: -0.03em; }
.request-group + .request-group { margin-top: 18px; }
.request-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: #fff; }
.request-list a { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--line); color: #111; }
.request-list li:last-child a { border-bottom: 0; }
.request-list b, .request-list small, .reply .label { display: block; }
.request-list small, .reply .label { color: var(--muted); }
.badge.received { background: #fff4e5; color: #9a6700; }
.badge.doing { background: #eef0ff; color: #3d3aa8; }
.badge.done { background: #eefbf3; color: #0a7a32; }
.badge.rejected { background: #fff1f2; color: #c01e2e; }
.badge.cancelled { background: #f3f3f3; color: #737373; }
.request-list a.off b { color: var(--muted); font-weight: 600; }
.fold { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 14px; }
.fold summary.pill { list-style: none; cursor: pointer; }
.fold summary.pill::-webkit-details-marker { display: none; }
.fold form { margin-top: 12px; }
.cal-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.cal-nav a { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--border); border-radius: 10px; font-size: 1.2rem; }
.cal-week, .cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.cal-week { color: var(--muted); font-size: 0.75rem; margin-bottom: 4px; }
.cal-grid a, .cal-grid span { min-height: 36px; display: grid; place-items: center; border-radius: 10px; }
.cal-grid a.has { background: #eef0ff; color: #3d3aa8; font-weight: 700; }
.cal-grid a.on { background: #111; color: #fff; }
.cal-grid a.today { box-shadow: inset 0 0 0 1px #111; }
.cal-grid a.on.today { box-shadow: none; }
.cal .muted { margin: 10px 0 0; font-size: 0.8rem; }
.cal-search { display: grid; gap: 10px; margin-top: 16px; }
.manual .hide-request { margin-top: 14px; }
dialog.icon-pop { margin: auto; }
.carry-mark { display: block; margin-top: 4px; color: #6d675f; font-size: 12px; }
.qty-short { color: #9a3b24; font-weight: 700; }
.carry-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; }
.carry-fix { display: flex; gap: 6px; align-items: center; margin: 0; }
.carry-fix input { width: 140px; }
.gap-fold { border: 1px solid var(--line); border-radius: 14px; background: #fff; margin: 8px 0; }
.gap-fold summary { display: flex; gap: 14px; align-items: center; padding: 12px 14px; cursor: pointer; list-style: none; }
.gap-fold summary::-webkit-details-marker { display: none; }
.gap-fold summary::before { content: ""; width: 8px; height: 8px; border-right: 2px solid #3c3935; border-bottom: 2px solid #3c3935; transform: rotate(-45deg); flex: none; }
.gap-fold[open] summary::before { transform: rotate(45deg); margin-top: -4px; }
.gap-fold summary b.num { margin-left: auto; }
.gap-vendors { color: var(--muted); font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gap-open { padding: 0 14px 10px; }
.gap-fold .sheet-wrap { margin: 0 12px 12px; }
.upload-log { margin-top: 14px; }
.invoice-shot { display: block; max-width: min(100%, 420px); max-height: 220px; margin-top: 8px; border: 1px solid var(--line); border-radius: 12px; background: #fff; object-fit: contain; }
.stage-dialog .sheet-head { flex: none; }
.stage-dialog .sheet-head[open] .gap-open { max-height: 42vh; overflow: auto; }
.sheet-excel { display: flex; justify-content: flex-end; margin: 8px 0 0; }
.gap-fold .sheet-excel { margin: 0 12px; }
.col-panes-bar { display: flex; align-items: center; gap: 8px; margin: 8px 0; }
.col-panes-bar [data-excel] { margin-left: auto; }
.col-panes-bar [data-sheet-delete] { margin-left: auto; }
.col-panes-bar [data-sheet-delete] ~ [data-excel] { margin-left: 0; }
.col-panes-bar .pill.on { background: #3c3935; color: #f6f1e8; border-color: #3c3935; }
.sheet-wrap.full-sheet { overflow-x: auto; }
.sheet-wrap.fit-sheet { overflow-x: hidden; }
.gridbook th { position: sticky; }
.gridbook td.pinned { position: sticky; z-index: 2; }
.gridbook th.pinned { z-index: 4; background: #3c3935; color: #f6f1e8; }
.gridbook tr.band-0 > td.pinned:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #f6f3ec; }
.gridbook tr.band-1 > td.pinned:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #eef2f5; }
.gridbook tr.band-2 > td.pinned:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #eef4f0; }
.gridbook tr.band-3 > td.pinned:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #f6f0ec; }
.gridbook tr.band-4 > td.pinned:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #f2f0f5; }
.gridbook tr.band-5 > td.pinned:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #f5f3e8; }
.gridbook tr.band-6 > td.pinned:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #eef3f3; }
.gridbook tr.band-7 > td.pinned:not(.bundle-cell):not(.vendor-total):not(.order-cell) { background: #f5f0f3; }
.gridbook td.pinned.bundle-cell { background: #3c3935; color: #f6f1e8; }
.gridbook td.pinned.bundle-cell.wait { background: #f7f5f1; color: #2c2a27; }
.gridbook td.pinned.bundle-cell.paid { background: #243f34; color: #f3f6f1; }
.gridbook td.pinned.vendor-total { background: #24362f; color: #f6f1e8; }
.gridbook td.pinned.order-cell { background: #faf9f7; }
.gridbook thead th { cursor: pointer; }
.gridbook td.col-off, .gridbook th.col-off { width: 0; max-width: 0; min-width: 0; padding: 0; border-width: 0; overflow: hidden; font-size: 0; line-height: 0; }
.gridbook td.col-off input, .gridbook td.col-off select { width: 0; min-width: 0; padding: 0; border: 0; }
.confirm-pop { width: min(360px, calc(100vw - 28px)); }
#settle-stage { position: relative; }
#settle-stage .confirm-pop { display: none !important; }
#settle-stage .confirm-pop.stage-open { display: block !important; position: absolute; z-index: 6; inset: 0; margin: auto; height: max-content; background: #fff; }
#settle-stage .stage-shade { position: absolute; inset: 0; z-index: 5; border: 0; background: rgba(17, 17, 17, .38); }
.confirm-pop p { margin: 0 0 16px; }
.confirm-pop form { display: block; margin: 0; }
.confirm-pop label { display: grid; gap: 6px; margin: 0 0 14px; font-weight: 650; }
.confirm-pop input { width: 100%; box-sizing: border-box; }
.confirm-wrap { display: inline-flex; }
.clear-row { display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; align-items: center; flex: none; margin-top: 12px; }
.confirm-actions { display: flex; justify-content: flex-end; gap: 8px; }
.confirm-actions button { width: auto; }
.manual .badge { margin-bottom: 10px; }
.reply { margin-top: 16px; background: var(--soft); border-radius: 12px; padding: 14px 16px; }
.manual form { display: grid; gap: 10px; margin-top: 16px; }
label small { color: var(--muted); font-size: 0.78rem; }
.margin-form { max-width: 720px; }
.margin-grid, .margin-out { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.margin-out div, .margin-out label { background: var(--soft); border-radius: 12px; padding: 10px 12px; }
.margin-out b { color: #111; font-size: 1rem; font-variant-numeric: tabular-nums; }
.margin-out input[readonly] { background: #fff; }
.campaign-pop { width: min(760px, calc(100vw - 28px)); max-height: min(880px, calc(100vh - 32px)); overflow: auto; }
.campaign-pop .margin-form { max-width: none; }
.sheet-wrap td.row-actions { display: flex; gap: 10px; align-items: center; white-space: nowrap; max-width: none; }
.sheet-wrap th.paint-cell, .sheet-wrap td.paint-cell { min-width: 36px; max-width: 44px; text-align: center; }
.col-name { display: inline-flex; align-items: center; gap: 6px; }
.paint, .swatch { width: 14px; height: 14px; border-radius: 50%; border: 1px solid #c8c2b8; padding: 0; background: #fff; cursor: pointer; }
.campaign-add[hidden] { display: none !important; }
.campaign-add { margin: 8px 0 12px; }
.sheet-bar { display: flex; justify-content: flex-end; gap: 8px; margin: 0 0 8px; }
.campaign-screen .sheet-wrap table { table-layout: fixed; width: max-content; min-width: 0; border-collapse: separate; border-spacing: 0; }
.campaign-screen .sheet-wrap th[data-col^="r1"],
.campaign-screen .sheet-wrap th[data-col^="r2"],
.campaign-screen .sheet-wrap td[data-col^="r1"],
.campaign-screen .sheet-wrap td[data-col^="r2"] { font-size: 0.78rem; line-height: 1.25; padding-left: 6px; padding-right: 6px; }
.campaign-screen .col-pin { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-left: 4px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: #b9b3a8; cursor: pointer; vertical-align: middle; }
.campaign-screen .col-pin svg { width: 13px; height: 13px; display: block; }
.campaign-screen .col-pin.on { color: #e85d04; background: #fff1e8; }
.campaign-screen .col-pin.locked { cursor: default; }
.campaign-screen .sheet-wrap th.is-folded,
.campaign-screen .sheet-wrap td.is-folded { cursor: pointer; }
.campaign-screen .sheet-wrap th.is-folded .col-name,
.campaign-screen .sheet-wrap th.is-folded .col-pin,
.campaign-screen .sheet-wrap th.is-folded .paint,
.campaign-screen .sheet-wrap td.is-folded { color: transparent; }
.campaign-screen .sheet-wrap th.is-folded { box-shadow: inset 0 0 0 1px #e7e1d6; }
.campaign-screen .sheet-wrap th,
.campaign-screen .sheet-wrap td { position: relative; max-width: none; min-width: 0; overflow: hidden; }
.campaign-screen .sheet-wrap th { position: sticky; top: 0; z-index: 3; overflow: visible; }
.campaign-screen .sheet-wrap th.pin,
.campaign-screen .sheet-wrap td.pin { position: sticky; left: 0; z-index: 2; background-color: #fff; overflow: visible; }
.campaign-screen .sheet-wrap th.pin.pin-right,
.campaign-screen .sheet-wrap td.pin.pin-right { left: auto; right: 0; z-index: 4; box-shadow: -8px 0 8px rgba(60, 57, 53, .06); }
.campaign-screen .sheet-wrap td.row-actions { overflow: visible; }
.campaign-screen .sheet-wrap th.pin { z-index: 5; top: 0; background-color: var(--soft); }
.campaign-screen .sheet-wrap th.pin.pin-right { z-index: 6; }
.campaign-screen .sheet-wrap tr.is-late td.pin { background-color: #fff4f2; }
.campaign-screen .sheet-wrap tr.row-rose td.pin { background-color: #f8d4ce; }
.campaign-screen .sheet-wrap tr.row-amber td.pin { background-color: #ffe7b0; }
.campaign-screen .sheet-wrap tr.row-green td.pin { background-color: #cfeedd; }
.campaign-screen .sheet-wrap tr.row-sky td.pin { background-color: #d3e9f8; }
.campaign-screen .sheet-wrap tr.row-violet td.pin { background-color: #ead8f6; }
.campaign-screen .sheet-wrap tr.is-dirty td.pin { background-color: #ffe7a3; }
.campaign-screen .sheet-wrap th.pin.col-rose { background-color: #fdecea; }
.campaign-screen .sheet-wrap th.pin.col-amber { background-color: #fff6df; }
.campaign-screen .sheet-wrap th.pin.col-green { background-color: #e8f7ee; }
.campaign-screen .sheet-wrap th.pin.col-sky { background-color: #e8f3fc; }
.campaign-screen .sheet-wrap th.pin.col-violet { background-color: #f6eefb; }
.campaign-screen .col-grip { position: absolute; top: 0; right: -4px; z-index: 6; width: 8px; height: 100%; cursor: col-resize; }
.campaign-screen .col-grip:hover { background: rgba(232, 93, 4, .45); }
.campaign-screen { position: relative; }
.campaign-screen .confirm-pop { display: none !important; position: fixed; z-index: 50; inset: 0; margin: auto; height: max-content; background: #fff; }
.campaign-screen .confirm-pop.sheet-open { display: block !important; }
.campaign-screen .sheet-shade { display: none; position: fixed; inset: 0; z-index: 45; border: 0; background: rgba(17, 17, 17, .38); }
.campaign-screen .sheet-shade.on { display: block; }
.campaign-screen:fullscreen .confirm-pop,
.campaign-screen:fullscreen .sheet-shade { position: absolute; }
.campaign-screen:fullscreen .campaign-add { flex: none; max-height: 48%; overflow: auto; }
.campaign-screen:fullscreen #campaign-form { flex: none; max-height: 42%; overflow: auto; }
.sheet-wrap th.has-menu, .sheet-wrap td.has-menu { max-width: none; overflow: visible; }
.color-menu { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.color-menu .color-clear { width: auto; min-height: 32px; border: 1px solid #c8c2b8; border-radius: 999px; background: #fff; padding: 4px 10px; cursor: pointer; }
.color-menu .swatch { width: 32px; height: 32px; min-width: 32px; min-height: 32px; }
.sheet-wrap td .cell-input { width: 100%; min-width: 0; box-sizing: border-box; border: 0; border-radius: 0; padding: 0; background: transparent; }
.swatch-rose, .paint.swatch-rose { background: #f3b4ae; }
.swatch-amber, .paint.swatch-amber { background: #f3d48a; }
.swatch-green, .paint.swatch-green { background: #9ed7b0; }
.swatch-sky, .paint.swatch-sky { background: #9ec9ee; }
.swatch-violet, .paint.swatch-violet { background: #d2b3ea; }
.sheet-wrap th.col-rose, .sheet-wrap td.col-rose { background: #fdecea; }
.sheet-wrap th.col-amber, .sheet-wrap td.col-amber { background: #fff6df; }
.sheet-wrap th.col-green, .sheet-wrap td.col-green { background: #e8f7ee; }
.sheet-wrap th.col-sky, .sheet-wrap td.col-sky { background: #e8f3fc; }
.sheet-wrap th.col-violet, .sheet-wrap td.col-violet { background: #f6eefb; }
.sheet-wrap tr.row-rose td { background: #f8d4ce; }
.sheet-wrap tr.row-amber td { background: #ffe7b0; }
.sheet-wrap tr.row-green td { background: #cfeedd; }
.sheet-wrap tr.row-sky td { background: #d3e9f8; }
.sheet-wrap tr.row-violet td { background: #ead8f6; }
.sheet-wrap tr.is-off td { opacity: 0.45; }
.row-actions form { display: inline; margin: 0; }
.textlink.on { color: #137333; font-weight: 700; }
.sheet-wrap td[data-edit] { cursor: cell; }
.sheet-wrap td.is-range { box-shadow: inset 0 0 0 1px #1a73e8; }
.sheet-wrap td.is-cell { outline: 2px solid #1a73e8; outline-offset: -2px; }
.sheet-wrap td[contenteditable="true"] { background: #fff; outline: 2px solid #137333; outline-offset: -2px; caret-color: #111; }
.sheet-wrap tr.is-dirty td { background-image: linear-gradient(rgba(255, 214, 80, 0.62), rgba(255, 214, 80, 0.62)); }
.settle-tools .pill:disabled { opacity: 0.45; }
.sheet-save-note { color: #137333; font-size: 0.86rem; }
.sheet-exit { display: none; }
.campaign-screen:fullscreen {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 12px 16px 16px;
  background: #fff;
  overflow: hidden;
}
.screen-title { display: none; }
.campaign-screen:fullscreen .screen-title { display: block; flex: none; margin: 0 0 10px; font-size: 1.4rem; letter-spacing: -0.045em; }
.campaign-screen:fullscreen .settle-tools { flex: none; margin-top: 0; }
.campaign-screen:fullscreen .sheet-import { display: none; }
.campaign-screen:fullscreen .sheet-wrap,
.campaign-screen:fullscreen .sheet-wrap.tall {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  max-height: none;
  height: auto;
  overflow: auto;
}
.campaign-screen:fullscreen .sheet-exit {
  display: inline-flex;
  border: 1px solid #111;
  background: #fff;
  border-radius: 999px;
  padding: 6px 12px;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.sheet-wrap tr.company-band td { background: #3c3935; color: #f6f1e8; font-weight: 700; overflow: visible; }
.sheet-wrap tr.company-band .band-label { position: sticky; left: 10px; z-index: 4; display: inline-block; background: #3c3935; }
.sheet-wrap tr.company-band span { margin-left: 8px; font-weight: 500; color: #d9d3c8; }
@media (max-width: 760px) {
  .request-layout { grid-template-columns: 1fr; }
  .icon-grid { grid-template-columns: repeat(4, 1fr); }
  .margin-grid, .margin-out { grid-template-columns: 1fr; }
}
