/* ひかえ — 複写伝票のカーボンの青を軸にした落ち着いた画面 */
:root{
  --paper:#F4F6F9; --surface:#FFFFFF; --ink:#1B2232; --sub:#5B6478; --line:#DCE1EA; --line2:#EBEEF3;
  --carbon:#2D4A9A; --carbon-d:#22397A; --carbon-t:#E8EDF8; --seal:#BF3A30; --ok:#2F7A55; --warn:#9A6A12; --warn-t:#FBF3E2;
  --r:10px; --r-s:7px;
  --sans:"BIZ UDPGothic","Hiragino Sans","Noto Sans JP",system-ui,sans-serif;
  --mincho:"Zen Old Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);overflow-x:hidden}
a{color:var(--carbon)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--carbon);outline-offset:2px}
[hidden]{display:none!important}
svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* shell */
.shell{min-height:100vh}
.side{position:fixed;z-index:20;left:0;right:0;bottom:0;display:flex;background:var(--surface);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}
.side .brand,.side .plan{display:none}
.nav{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0 4px;font-size:11.5px;color:var(--sub);text-decoration:none;border-radius:8px}
.nav svg{width:24px;height:24px}
.nav.on{color:var(--carbon);font-weight:700}
.nav.on svg{stroke-width:2}
.view{max-width:760px;margin:0 auto;padding:12px 16px 110px;outline:none}

@media (min-width:900px){
  .side{top:0;right:auto;width:220px;flex-direction:column;border-top:0;border-right:1px solid var(--line);padding:22px 14px;gap:2px}
  .side .brand{display:flex;align-items:center;gap:10px;font:700 22px var(--mincho);color:var(--ink);text-decoration:none;padding:0 8px 22px}
  .nav{flex:none;flex-direction:row;gap:12px;padding:10px 12px;font-size:15px}
  .nav:hover{background:var(--line2)}
  .nav.on{background:var(--carbon-t)}
  .side .plan{display:block;margin-top:auto;font-size:13px;color:var(--sub);padding:0 12px}
  .view{margin-left:220px;max-width:none;padding:28px 48px 80px}
  .view>*{max-width:820px}
}
.seal{display:inline-grid;place-items:center;width:34px;height:34px;border:2px solid var(--seal);color:var(--seal);border-radius:7px;font:700 19px/1 var(--mincho);transform:rotate(-4deg)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#B8BFCC;margin-right:6px;vertical-align:1px}
.dot.ok{background:var(--ok)}

/* headers */
.vh{display:flex;align-items:center;gap:10px;min-height:48px;margin:4px 0 14px;position:relative}
.vh h1{font:700 22px/1.3 var(--mincho);margin:0;flex:1;min-width:0;overflow-wrap:anywhere}
.vh.home h1{font-size:28px}
.back{display:grid;place-items:center;width:40px;height:40px;margin-left:-8px;border-radius:50%;color:var(--ink);flex:none}
.back svg{width:24px;height:24px}
.back:hover{background:var(--line2)}
.saved{position:absolute;right:0;top:-14px;font-size:12px;color:var(--ok);opacity:0;transition:opacity .3s}
.saved.on{opacity:1}
.crumb{margin:-10px 0 12px;color:var(--sub);font-size:14px}
.lead{color:var(--sub);margin:0 0 14px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border-radius:var(--r-s);border:1px solid var(--carbon);background:var(--carbon);color:#fff;font-weight:700;font-size:15px;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--carbon-d)}
.btn.ghost{background:var(--surface);color:var(--carbon);border-color:#BFC9E0}
.btn.ghost:hover{background:var(--carbon-t)}
.btn.sm{min-height:38px;padding:0 13px;font-size:14px}
.row-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.link-danger{background:none;border:0;color:var(--seal);font-size:14px;padding:10px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.danger{margin:34px 0 0;border-top:1px solid var(--line);padding-top:6px}

/* search */
.searchbox{position:relative;margin-bottom:14px}
.searchbox svg{position:absolute;left:16px;top:50%;width:22px;height:22px;transform:translateY(-50%);color:var(--sub)}
.searchbox input{width:100%;height:56px;border:1.5px solid var(--line);background:var(--surface);border-radius:28px;padding:0 20px 0 50px;font-size:17px}
.searchbox input:focus{border-color:var(--carbon);outline:none;box-shadow:0 0 0 4px var(--carbon-t)}
.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:22px}
.qa{display:flex;flex-direction:column;align-items:flex-start;padding:12px 12px 11px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);cursor:pointer;text-align:left}
.qa b{font-size:16px}
.qa span{font-size:12.5px;color:var(--sub)}
.qa:hover{border-color:var(--carbon)}
.counts{color:var(--sub);font-size:13px;margin-top:14px}
.counts small{color:#98A0B0}
.bk-banner{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:var(--warn-t);border:1px solid #EBD9AE;border-radius:var(--r);padding:12px 14px;margin:0 0 14px}
.bk-banner p{margin:0;flex:1 1 240px;display:flex;flex-direction:column;font-size:13.5px;line-height:1.55}
.bk-banner b{font-size:14.5px;color:#5E420A}

/* lists */
.block{margin:0 0 24px}
.sh{font:700 15px var(--sans);margin:0 0 8px;color:var(--ink);display:flex;align-items:baseline;gap:8px}
.sh small{font-weight:400;color:var(--sub);font-size:13px}
.sh-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.sh-row .sh{margin:0}
.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:11px 14px;text-decoration:none;color:var(--ink);border-top:1px solid var(--line2);min-height:62px}
.row:first-child{border-top:0}
.row:hover{background:#F8F9FC}
.row .main{flex:1;min-width:0;display:flex;flex-direction:column}
.row b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row small{color:var(--sub);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .meta{font-size:13px;color:var(--sub);flex:none}
.kind{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:8px;font:700 15px var(--mincho);border:1.5px solid}
.k-c{color:var(--carbon);border-color:#C5CFE6}
.k-j{color:#3A6B7E;border-color:#C3D6DD}
.k-b{color:#6A5A3A;border-color:#DDD3BE}
.k-in{color:var(--ok);border-color:#BFD9CB}
.k-out{color:var(--seal);border-color:#E7C2BE}
.rimg{width:38px;height:38px;border-radius:8px;object-fit:cover;flex:none;background:var(--line2)}
.st-open{color:var(--warn)!important}
.st-done{color:var(--ok)!important}
.empty{background:var(--surface);border:1.5px dashed var(--line);border-radius:var(--r);padding:26px 20px;text-align:center;color:var(--sub)}
.empty .t{font:700 17px var(--mincho);color:var(--ink);margin:0 0 6px}
.empty p{margin:0 auto 12px;max-width:34em;font-size:14.5px}
.limit{font-size:13px;color:var(--sub);margin-top:10px}
.toolbar{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}
.toolbar input{flex:1 1 200px;min-width:0;height:44px;border:1px solid var(--line);border-radius:var(--r-s);padding:0 14px;background:var(--surface)}
.toolbar .btn{flex:none}

/* tiles (boxes) */
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:640px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;padding-bottom:10px;min-width:0}
.tile:hover{border-color:var(--carbon)}
.tp{aspect-ratio:4/3;background:var(--line2);display:grid;place-items:center;color:#A3AABA}
.tp img{width:100%;height:100%;object-fit:cover;display:block}
.tp svg{width:42px;height:42px}
.tc{font-size:12px;color:var(--carbon);font-weight:700;margin:8px 10px 0;letter-spacing:.04em}
.tile b{margin:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile small{margin:0 10px;color:var(--sub);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.4em}

/* forms */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:0 0 16px}
.card p{margin:0 0 6px}
.form{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:560px){.form{grid-template-columns:1fr 1fr}.form .wide,.form .fh{grid-column:1/-1}}
.form.two{grid-template-columns:1fr 1fr}
.fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.fld>span{font-size:13px;color:var(--sub);font-weight:700}
.fld em{font-style:normal;font-size:11px;color:var(--seal);border:1px solid #E7C2BE;border-radius:4px;padding:0 4px;margin-left:6px;font-weight:400}
.fld small{font-size:12px;color:var(--sub)}
.fld input,.fld select,.fld textarea,.keyrow input{width:100%;min-height:46px;border:1px solid var(--line);border-radius:var(--r-s);background:#FBFCFD;padding:10px 12px;font-size:16px}
.fld textarea{resize:vertical;line-height:1.6}
.fld input:focus,.fld select:focus,.fld textarea:focus,.grid-rows input:focus,.keyrow input:focus{outline:none;border-color:var(--carbon);background:#fff;box-shadow:0 0 0 3px var(--carbon-t)}
.fh{margin:0}
.hint{font-size:13px;color:var(--sub);margin:4px 0 8px}
.need{margin:0;font-size:14px;padding:10px 12px;border-radius:var(--r-s);border-left:3px solid}
.n-need{background:var(--carbon-t);border-color:var(--carbon);color:#1E3370}
.n-opt{background:#EEF6F1;border-color:var(--ok);color:#1F5239}

/* board option */
.board-opt{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:4px}
.board-opt input[name=boardNote]{flex:1 1 200px;min-width:0;height:42px;border:1px solid var(--line);border-radius:var(--r-s);padding:0 12px;background:var(--surface)}
.sw{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14.5px;font-weight:700;min-height:42px}
.sw input{width:20px;height:20px;accent-color:var(--carbon)}

/* rows */
.grid-rows{display:flex;flex-direction:column;gap:6px}
.grid-rows .gr{display:grid;gap:6px;align-items:center}
.g2 .gr{grid-template-columns:minmax(0,2fr) minmax(0,3fr) 36px}
.g3 .gr{grid-template-columns:minmax(0,5fr) minmax(0,2fr) minmax(0,3fr) 36px}
.grid-rows input{width:100%;min-width:0;height:44px;border:1px solid var(--line);border-radius:var(--r-s);padding:0 10px;background:var(--surface)}
.rm{width:36px;height:36px;border:0;background:none;color:#98A0B0;font-size:22px;cursor:pointer;border-radius:50%}
.rm:hover{background:var(--line2);color:var(--seal)}
.est .gr{grid-template-columns:56px 52px minmax(0,1fr) minmax(0,1fr) 36px;grid-template-areas:"n n n n x" "q u p a a"}
.est .gr>:nth-child(1){grid-area:n}.est .gr>:nth-child(2){grid-area:q}.est .gr>:nth-child(3){grid-area:u}.est .gr>:nth-child(4){grid-area:p}.est .gr>:nth-child(5){grid-area:a}.est .gr>:nth-child(6){grid-area:x}
.est .gr{padding:8px;background:var(--surface);border:1px solid var(--line2);border-radius:var(--r-s)}
.est .gh{display:none}
.amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
@media (min-width:640px){
  .est .gr{grid-template-columns:minmax(0,1fr) 70px 60px 110px 110px 36px;grid-template-areas:"n q u p a x";padding:0;background:none;border:0}
  .est .gh{display:grid;font-size:12px;color:var(--sub)}
  .est .gh .r{text-align:right}
}
.totals{margin-top:12px;display:flex;justify-content:flex-end}
.totals dl{display:grid;grid-template-columns:auto auto;gap:4px 24px;margin:0;font-variant-numeric:tabular-nums;min-width:240px}
.totals dt{color:var(--sub)}
.totals dd{margin:0;text-align:right}
.totals .tt{font-weight:700;font-size:20px;color:var(--ink);border-top:1.5px solid var(--ink);padding-top:6px;margin-top:4px}

/* photos */
.photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
@media (min-width:640px){.photos{grid-template-columns:repeat(5,minmax(0,1fr))}}
.ph{aspect-ratio:1;border:0;padding:0;border-radius:8px;overflow:hidden;background:var(--line2);cursor:pointer}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph.add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1.5px dashed #B9C3D8;background:var(--surface);color:var(--carbon);font-size:12.5px;font-weight:700}
.ph.add svg{width:28px;height:28px}
.bigph img{width:100%;max-height:65vh;object-fit:contain;border-radius:8px;background:#000;display:block}

/* ledger */
.seg{display:flex;background:var(--line2);border-radius:var(--r-s);padding:3px;margin:0 0 12px}
.seg button{flex:1;border:0;background:none;padding:8px 0;border-radius:6px;font-size:14px;color:var(--sub);cursor:pointer}
.seg button[aria-selected=true]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 1px 2px rgba(27,34,50,.12)}
details.note{margin-top:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;font-size:14px}
details.note summary{cursor:pointer;font-weight:700}
details.note .src{color:var(--sub);font-size:12.5px}

/* settings */
.keycard.ok{border-color:#BFD9CB;background:#F4FAF6}
.kstate{color:var(--ok);font-weight:700}
.mono{font-family:ui-monospace,Menlo,monospace;letter-spacing:.05em}
.keyrow{display:flex;gap:8px;margin-top:8px}
.keyrow input{flex:1;min-width:0;text-transform:uppercase;font-family:ui-monospace,Menlo,monospace}
.kmsg{color:var(--seal);font-size:14px;min-height:1em;margin-top:6px!important}
.small{font-size:13px;color:var(--sub)}
.foot{font-size:13px;color:var(--sub);margin-top:30px;line-height:2}
.checks{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.ck{display:flex;gap:10px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-s);padding:11px 12px;cursor:pointer}
.ck input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--carbon);flex:none}
.choice{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.choice small{color:var(--sub)}

/* sheet */
.sheet-wrap{position:fixed;inset:0;z-index:50;background:rgba(20,26,40,.42);display:flex;align-items:flex-end;justify-content:center}
.sheet{position:relative;background:var(--surface);width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:16px 16px 0 0;padding:22px 18px calc(20px + env(safe-area-inset-bottom));transform:translateY(24px);opacity:0;transition:transform .22s ease,opacity .22s ease}
.sheet-wrap.on .sheet{transform:none;opacity:1}
@media (min-width:700px){.sheet-wrap{align-items:center}.sheet{border-radius:14px}}
.sheet h2{font:700 20px var(--mincho);margin:0 30px 8px 0}
.sheet .bigph{margin-top:30px}
.sheet p{margin:0 0 8px;font-size:15px}
.x{position:absolute;right:10px;top:10px;width:40px;height:40px;border:0;background:none;font-size:26px;color:var(--sub);cursor:pointer;border-radius:50%}
.toast{position:fixed;left:50%;top:calc(12px + env(safe-area-inset-top));transform:translate(-50%,-20px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:24px;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:60;max-width:calc(100% - 32px)}
.toast.on{opacity:1;transform:translate(-50%,0)}
@media (min-width:900px){.toast{top:20px;margin-left:110px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- print ---------- */
.print-area{display:none}
@media print{
  @page{size:A4;margin:12mm}
  body{background:#fff}
  body.printing .shell,body.printing .sheet-wrap,body.printing .toast{display:none!important}
  body.printing{overflow:visible}
  body.printing .print-area{display:block;width:184mm;max-width:100%;margin:0 auto}
  body.printing .print-area.landscape{width:275mm}
}
.doc{font:10.5pt/1.6 var(--sans);color:#111;page-break-after:always;break-after:page}
.doc:last-child{page-break-after:auto;break-after:auto}
.dh{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid #1B2232;padding-bottom:6px;margin-bottom:14px}
.dh h1{font:700 22pt var(--mincho);letter-spacing:.3em;margin:0}
.dno{text-align:right;margin:0;font-size:9.5pt;color:#333}
.dtop{display:flex;justify-content:space-between;gap:20px;margin-bottom:14px}
.to p{margin:0 0 2px}
.cname{font-size:15pt;border-bottom:1px solid #111;padding-bottom:2px;margin-bottom:8px!important;min-width:60mm}
.big{margin-top:10px!important;font-size:12pt}
.big b{font-size:18pt;margin-left:8px;border-bottom:3px double #111}
.big small{font-size:9pt;margin-left:4px}
.p-shop{display:flex;flex-direction:column;text-align:right;font-size:9.5pt}
.p-shop b{font-size:12pt}
.dt{width:100%;border-collapse:collapse;font-size:10pt}
.dt th,.dt td{border:1px solid #9AA2B1;padding:5px 7px;text-align:left;vertical-align:top}
.dt thead th{background:#EEF1F6;font-weight:700}
.dt .r{text-align:right;font-variant-numeric:tabular-nums}
.dsum{margin:8px 0 0 auto;border-collapse:collapse;font-size:10.5pt;min-width:80mm}
.dsum th,.dsum td{padding:3px 8px;border-bottom:1px solid #C9CED8;text-align:right}
.dsum th{font-weight:400;color:#333}
.dsum .tt th,.dsum .tt td{font-weight:700;font-size:13pt;border-bottom:2px solid #111}
.dnote{margin-top:14px;border:1px solid #9AA2B1;padding:8px 10px;white-space:normal}
.dfoot{font-size:9pt;color:#444;margin-top:10px}
.dph{display:grid;grid-template-columns:repeat(3,1fr);gap:4mm;margin-bottom:12px}
.dph img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid #ccc}
.dcols{display:grid;grid-template-columns:1fr 1fr;gap:6mm}
.dcols h2{font-size:11pt;margin:0 0 4px}
.album{display:flex;flex-direction:column;height:272mm;overflow:hidden}
.arows{flex:1;display:grid;grid-template-rows:repeat(3,1fr);gap:4mm;min-height:0}
.album .arow{display:grid;grid-template-columns:minmax(0,64%) minmax(0,1fr);gap:4mm;min-height:0;break-inside:avoid}
.aimg{border:1px solid #9AA2B1;display:flex;align-items:center;justify-content:center;background:#fafafa;min-height:0;overflow:hidden}
.aimg img{width:100%;height:100%;object-fit:contain}
.ainfo{display:grid;grid-template-columns:15mm minmax(0,1fr);grid-template-rows:repeat(5,auto) 1fr;margin:0;border:1px solid #9AA2B1;font-size:9pt;min-width:0}
.ainfo dt,.ainfo dd{margin:0;padding:3px 5px;border-bottom:1px solid #C9CED8;overflow-wrap:anywhere;min-height:7mm}
.ainfo dt{background:#EEF1F6}
.ainfo dt:last-of-type,.ainfo dd:last-of-type{border-bottom:0}
.afoot{text-align:right;font-size:9pt;color:#444;padding-top:2mm}
.landscape .doc{font-size:8.5pt}
.lg th,.lg td{font-size:8pt;padding:3px 4px}
@media print{ .print-area.landscape{zoom:1} }
@page land{size:A4 landscape;margin:10mm}
.landscape .ledger{page:land}
/* labels */
.labels{display:grid;gap:0}
.labels.ll{grid-template-columns:repeat(2,1fr)}
.labels.ls{grid-template-columns:repeat(3,1fr)}
.lab{display:flex;gap:4mm;align-items:center;border:1px dashed #9AA2B1;padding:4mm;break-inside:avoid}
.ll .lab{height:66mm}
.ls .lab{height:34mm;gap:3mm;padding:2.5mm}
.qr{flex:none}
.ll .qr{width:42mm;height:42mm}
.ls .qr{width:26mm;height:26mm}
.qr svg{width:100%;height:100%;display:block}
.lt{display:flex;flex-direction:column;min-width:0}
.lt b{font:700 20pt/1.1 var(--sans);letter-spacing:.04em}
.ls .lt b{font-size:13pt}
.lt span{font-size:12pt;font-weight:700;margin-top:2mm;overflow-wrap:anywhere}
.ls .lt span{font-size:8.5pt;margin-top:1mm}
.lt small{font-size:9pt;color:#444;margin-top:1mm}
