/* 三井作造｜業主系統 —— 雜誌風（依 DESIGN.md：黑白為主、一個強調色、線條取代方框） */
:root{
  --paper:#FBFAF8; --ink:#1C1B19; --ink-2:#33312D; --muted:#5C5850; --faint:#6B665E;
  --rule:#D9D5CE; --photo-bg:#E6E3DD; --row-hi:#F0EEE9; --on-ink-muted:#CFCBC3;
  --accent:#2F4F6B;
  --font-serif:'Noto Serif TC',serif;
  --font-sans:'PingFang TC','Heiti TC','Microsoft JhengHei',system-ui,sans-serif;
  --max-client:1200px;
  --gutter:clamp(16px,5vw,64px);
  --cell:28px;
}
/* 完作：同一套版面，換成完作財務的深藍色系（BRAND=wanzuo 時 html 會帶 data-brand） */
html[data-brand=wanzuo]{
  --paper:#F7F9FC; --ink:#14213D; --ink-2:#2A3A58; --muted:#4F5C74; --faint:#5F6B82;
  --rule:#CFD7E3; --photo-bg:#E3E8F0; --row-hi:#EDF1F7; --on-ink-muted:#C9D3E3;
  --accent:#1F3F73;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 var(--font-sans);letter-spacing:.02em}
body{min-height:100vh;-webkit-text-size-adjust:100%;overflow-x:hidden}
a{color:var(--ink);text-underline-offset:5px}
a:hover{color:var(--muted)}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
input,select,textarea{border:0;border-bottom:1px solid var(--rule);background:transparent;border-radius:0;padding:10px 2px;width:100%;outline:none;min-height:44px;font-size:16px;-webkit-appearance:none;appearance:none}
input:focus,select:focus,textarea:focus{border-bottom-color:var(--ink)}
input:disabled,input[readonly]{color:var(--muted)}input[readonly]{background:var(--row-hi)}
input[type=checkbox]{-webkit-appearance:auto;appearance:auto;width:18px;height:18px;min-height:0;accent-color:var(--ink);flex:none}
textarea{min-height:110px;resize:vertical;border:1px solid var(--rule);padding:10px 12px;line-height:1.8}
textarea:focus{border-color:var(--ink)}
label.f{display:block;font-size:12px;letter-spacing:.16em;color:var(--muted);font-weight:500;margin:0}

/* 按鈕：方角、至少 44px；主要＝實心黑、次要＝黑框、第三層＝底線文字 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 22px;border:1px solid var(--ink);background:transparent;color:var(--ink);border-radius:0;cursor:pointer;white-space:nowrap;font-size:15px;font-weight:500;letter-spacing:.1em;text-decoration:none}
.btn:hover{background:var(--row-hi);color:var(--ink)}
.btn.pri{background:var(--ink);color:var(--paper)}
.btn.pri:hover{background:var(--ink-2);color:var(--paper)}
.btn.warn{border-color:var(--rule);color:var(--ink-2)}
.btn.sm{padding:0 16px;font-size:14px}
.btn:disabled{opacity:.45;cursor:default}
.link{background:none;border:0;padding:0;min-height:44px;display:inline-flex;align-items:center;font-size:14px;letter-spacing:.1em;text-decoration:underline;text-underline-offset:6px;color:var(--ink);cursor:pointer}
.muted{color:var(--muted)} .small{font-size:14px} .tiny{font-size:12.5px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.sp{flex:1}
.grid2{display:flex;flex-wrap:wrap;gap:20px 40px}
.grid2>*{flex:1 1 280px;min-width:0}
.span2{flex-basis:100%!important}
.kicker{font-size:13px;letter-spacing:.24em;font-weight:700;color:var(--accent)}
.label{font-size:12px;letter-spacing:.16em;font-weight:500;color:var(--muted)}

/* 刊頭 Masthead */
.topbar{max-width:var(--max-client);margin:0 auto;padding:0 var(--gutter);padding-top:env(safe-area-inset-top)}
.mast{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;padding:18px 0 12px;border-bottom:2px solid var(--ink)}
.brandmark{font-family:var(--font-serif);font-size:22px;font-weight:900;letter-spacing:.12em;text-decoration:none;color:var(--ink);min-height:44px;display:inline-flex;align-items:center}
.mast-r{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;font-size:13px;letter-spacing:.2em;color:var(--muted);min-width:0}
.mast-r .ctx{overflow-wrap:anywhere}
.who{background:none;border:0;padding:0 2px;min-height:44px;cursor:pointer;font-size:13px;letter-spacing:.16em;color:var(--ink);text-decoration:underline;text-underline-offset:6px;white-space:nowrap}
.page{max-width:var(--max-client);margin:0 auto;padding:0 var(--gutter) 40px}

/* 區塊：以線條取代卡片 */
.card{border-top:1px solid var(--rule);padding:32px 0 36px}
.card.major{border-top:2px solid var(--ink)}
.card h3{margin:0 0 20px;font-family:var(--font-serif);font-size:clamp(24px,3.2vw,32px);font-weight:700;letter-spacing:.02em;line-height:1.35}
.card h4{margin:28px 0 10px;font-family:var(--font-serif);font-size:20px;font-weight:700}
.card .head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-bottom:20px}
.card .head h3{margin:0}
h2.title{font-family:var(--font-serif);font-size:clamp(32px,5vw,48px);font-weight:900;margin:0;line-height:1.2}
.back{display:inline-flex;align-items:center;min-height:44px;margin-top:12px;font-size:14px;letter-spacing:.12em;color:var(--muted);text-decoration:none}
.back:hover{color:var(--ink)}

/* 登入／邀請 */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px}
.login .box{width:100%;max-width:400px}
.logo{border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:32px}
.logo hr{display:none}
.logo .zh{font-family:var(--font-serif);font-size:40px;font-weight:900;letter-spacing:.12em;line-height:1.2}
.logo .en{font-size:11px;letter-spacing:.3em;color:var(--muted);margin-top:6px}
.logo .sys{font-size:13px;letter-spacing:.24em;color:var(--accent);font-weight:700;margin-top:14px}
.login .fld{margin-bottom:20px}
.login .btn{width:100%;min-height:52px;margin-top:8px}
.login .intro{font-family:var(--font-serif);font-size:19px;line-height:1.8;margin-bottom:28px}
.login .foot{padding:28px 0 0;text-align:left}
.err{color:var(--ink);font-weight:700;font-size:14px;min-height:22px}

/* 我的案場（多案時） */
.plist{border-top:2px solid var(--ink)}
.pcard{display:block;width:100%;text-decoration:none;text-align:left;background:none;border:0;border-bottom:1px solid var(--rule);padding:24px 0;cursor:pointer;color:var(--ink)}
.pcard:hover .nm{text-decoration:underline;text-underline-offset:6px}
.pcard .nm{font-family:var(--font-serif);font-size:26px;font-weight:700;line-height:1.35}
.pcard .meta{font-size:14px;color:var(--muted);display:flex;gap:4px 16px;flex-wrap:wrap;margin-top:6px}
.pcard .today{margin-top:8px;font-size:14px;color:var(--ink-2)}
.pcard .need{margin-top:10px;font-size:13px;letter-spacing:.16em;font-weight:700;color:var(--accent)}

/* 狀態標籤：文字＋細框，不靠顏色 */
.badge{display:inline-block;font-size:12px;letter-spacing:.16em;font-weight:500;padding:1px 8px;border:1px solid var(--rule);color:var(--muted);white-space:nowrap;line-height:1.7;background:none}
.badge.amber{border-color:var(--accent);color:var(--accent);font-weight:700}
.badge.green{border-color:var(--ink);color:var(--ink)}
.badge.red{border-color:var(--ink);color:var(--ink);font-weight:700}
.tabs .cnt{display:inline-block;min-width:20px;padding:0 5px;background:var(--accent);color:var(--paper);font-size:11px;line-height:20px;text-align:center;font-weight:700;letter-spacing:0;margin-left:4px}

/* 案場刊頭區 */
.issue{padding:clamp(28px,6vw,72px) 0 28px}
.issue h1{margin:16px 0 0;font-family:var(--font-serif);font-weight:900;font-size:clamp(40px,7vw,92px);line-height:1.12;letter-spacing:.02em;overflow-wrap:anywhere}
.issue .ad{margin-top:14px;font-size:15px;color:var(--muted)}
.facts{display:flex;flex-wrap:wrap;border-top:2px solid var(--ink)}
.facts>div{flex:1 1 140px;padding:18px 20px 18px 0;border-bottom:1px solid var(--rule)}
.facts .v{font-family:var(--font-serif);font-size:24px;font-weight:700;margin-top:4px;line-height:1.4}
.facts .s{font-size:14px;color:var(--muted)}
.rail{display:flex;height:4px;margin-top:12px;background:var(--rule)}
.rail i{display:block;height:100%;background:var(--ink)}
.byline{font-size:14px;color:var(--muted);padding:14px 0 0;letter-spacing:.06em}

/* 待決區塊 Decision Block */
.decision{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;background:var(--ink);color:var(--paper);padding:clamp(24px,5vw,48px);margin:32px 0 8px;text-decoration:none}
.decision:hover{color:var(--paper)}
.decision .dk{font-size:13px;letter-spacing:.24em;color:var(--on-ink-muted);margin-bottom:10px}
.decision .dt{font-family:var(--font-serif);font-size:clamp(22px,3vw,32px);font-weight:700;line-height:1.5}
.decision .dd{flex:1 1 300px}
.decision .go{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;background:var(--paper);color:var(--ink);font-size:15px;font-weight:700;letter-spacing:.1em}

/* 分頁 */
.tabs{display:flex;flex-wrap:wrap;gap:0 24px;border-bottom:2px solid var(--ink);margin:36px 0 0}
.tabs a{display:inline-flex;align-items:center;min-height:48px;text-decoration:none;color:var(--muted);font-size:15px;letter-spacing:.14em;border-bottom:3px solid transparent;margin-bottom:-2px}
.tabs a.on{color:var(--ink);border-bottom-color:var(--ink);font-weight:700}
.tabs a:hover{color:var(--ink)}
#tab>.card:first-child{border-top:0}

/* 清單、表格 */
.kv{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px 16px;font-size:15px;margin:0}
.kv dt{color:var(--muted);font-size:13px;letter-spacing:.12em;padding-top:2px} .kv dd{margin:0;overflow-wrap:anywhere}
table.t{width:100%;border-collapse:collapse;font-size:15px}
table.t th,table.t td{padding:12px 10px 12px 0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}
table.t thead th{font-weight:500;color:var(--muted);font-size:12px;letter-spacing:.16em;border-bottom:2px solid var(--ink);white-space:nowrap}
table.t td.n,table.t th.n{text-align:right;font-family:var(--font-serif);font-variant-numeric:tabular-nums;white-space:nowrap}
table.t th.n{font-family:var(--font-sans)}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tscroll table.t{min-width:640px}
.sec-row td{background:var(--row-hi);font-weight:700;padding-left:10px}
.sign-row{cursor:pointer}
.sign-row:hover td{background:var(--row-hi)}
.sign-row b{font-family:var(--font-serif);font-size:18px}
.sum{display:flex;flex-wrap:wrap;border-top:2px solid var(--ink);margin-bottom:24px}
.sum>div{flex:1 1 160px;padding:14px 16px 14px 0;border-bottom:1px solid var(--rule)}
.sum b{display:block;font-family:var(--font-serif);font-size:26px;font-weight:700;margin-top:2px}
.note{border-left:2px solid var(--ink);padding:4px 0 4px 16px;margin:0 0 24px;white-space:pre-wrap;font-family:var(--font-serif);font-size:17px;line-height:1.8}

/* 圖面 */
.flist{display:flex;flex-wrap:wrap;gap:28px 24px}
.fitem{flex:1 1 200px;max-width:100%;display:flex;flex-direction:column;min-width:0}
.fitem .pv{display:flex;aspect-ratio:4/3;background:var(--photo-bg) center/cover no-repeat;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:22px;font-weight:700;letter-spacing:.16em;color:var(--muted);cursor:pointer;text-decoration:none;border:0;width:100%;padding:0}
.fitem .fn{padding:10px 0 4px;font-size:14px;line-height:1.7;overflow-wrap:anywhere;flex:1;border-bottom:1px solid var(--rule)}
.fitem .fa{display:flex;gap:12px;flex-wrap:wrap}
.fitem .fa .btn{border:0;padding:0;min-height:44px;font-size:14px;text-decoration:underline;text-underline-offset:6px;background:none}
.chk{display:inline-flex;gap:10px;align-items:center;font-size:15px;cursor:pointer;color:var(--ink-2);min-height:44px}

/* 施工照片：Figure 樣式 */
.rep{padding:0 0 40px;margin:0 0 40px;border-bottom:1px solid var(--rule)}
.rep:last-child{border-bottom:0;margin-bottom:0}
.rep .rh{display:flex;gap:8px 14px;align-items:baseline;flex-wrap:wrap;margin-bottom:14px}
.rep .rh b{font-family:var(--font-serif);font-size:22px;font-weight:700}
.rep .rc{white-space:pre-wrap;margin:0 0 20px;font-family:var(--font-serif);font-size:clamp(18px,2.4vw,22px);font-weight:500;line-height:1.75;color:var(--ink-2);max-width:46em}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:16px}
.photos .ph{position:relative;margin:0;min-width:0}
.photos img,.photos video{width:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;background:var(--photo-bg);display:block;border-radius:0}
.photos.lead .ph:first-child{grid-column:1/-1}
.photos.lead .ph:first-child img{aspect-ratio:16/9}
.figcap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;padding:12px 0 0;font-size:13px;color:var(--muted);letter-spacing:.06em}
.pending-ph{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pending-ph img,.pending-ph video{width:72px;height:72px;object-fit:cover}

/* 排程時間軸（黑白：週末淺底、今天強調色） */
.tl-wrap{overflow:auto;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);background:var(--paper);max-height:74vh;-webkit-overflow-scrolling:touch;margin-top:28px}
.tl{display:grid;position:relative;min-width:max-content;font-size:12px}
.tl .hd{position:sticky;top:0;z-index:4;background:var(--paper)}
.tl .hd2{position:sticky;top:22px;z-index:4;background:var(--paper)}
.tl .lc{position:sticky;left:0;z-index:3;background:var(--paper);border-right:1px solid var(--rule);padding:4px 8px;overflow:hidden}
.tl .corner{z-index:5;font-size:12px;letter-spacing:.16em}
.tl .mth{border-left:1px solid var(--rule);padding:2px 0;font-weight:700;white-space:nowrap;height:22px;border-bottom:1px solid var(--rule);font-family:var(--font-serif)}
.tl .mlab{position:sticky;padding:0 6px}
.tl .day{width:var(--cell);text-align:center;border-left:1px solid var(--row-hi);border-bottom:1px solid var(--ink);line-height:1.15;padding:2px 0;color:var(--muted)}
.tl .day.we{background:var(--row-hi)} .tl .day.td{background:var(--accent);color:var(--paper);font-weight:700}
.tl .day.hol{background:var(--row-hi);color:var(--ink);font-weight:700}
.tl .cell{border-left:1px solid var(--row-hi);border-bottom:1px solid var(--row-hi);height:26px}
.tl .cell.we,.tl .cell.hol{background:var(--row-hi)} .tl .cell.td{background:#E3E8EC}
.tl .cell.lane1{border-bottom-color:var(--rule)}
.tl .pname{font-weight:700;font-size:12.5px;white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-serif)}
.tl .psub{color:var(--muted);font-size:11px;white-space:nowrap}
.tl .item{z-index:2;margin:3px 1px;padding:0 6px;font-size:12px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--ink);background:var(--paper);border:1px solid var(--ink)}
.tl .item.now{background:var(--accent);border-color:var(--accent);color:var(--paper);font-weight:700}
.tl .item.past{border-color:var(--rule);color:var(--muted)}
.tl .item:hover{outline:2px solid var(--ink)}
.legend{display:flex;gap:6px 20px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:14px 0 0;align-items:center}
.legend i{display:inline-block;width:22px;height:12px;vertical-align:-1px;margin-right:6px;border:1px solid var(--ink);background:var(--paper)}
.legend i.now{background:var(--accent);border-color:var(--accent)}
.legend i.past{border-color:var(--rule)}

/* 今天／接下來 */
.up-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule)}
.up-list li{padding:14px 0;border-bottom:1px solid var(--rule)}
.up-list .dt{display:block;font-size:13px;color:var(--muted);letter-spacing:.04em}
.up-list .now{color:var(--accent);font-weight:700}
.up-list .tx{display:block;font-family:var(--font-serif);font-size:20px;font-weight:700;margin-top:2px}
.up-list .nt{display:block;font-size:14px;color:var(--muted)}

/* 報修 */
.rp{border-top:1px solid var(--rule);padding:28px 0}
.rp .rh{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline}
.rp .rh b{font-family:var(--font-serif);font-size:22px;font-weight:700}
.rp .rc{white-space:pre-wrap;margin:12px 0 4px;font-size:16px;line-height:2;color:var(--ink-2)}
.rp .res{margin-top:20px;border-top:2px solid var(--ink);padding-top:14px}

/* 簽名 */
.sigbox{position:relative;border:1px solid var(--ink);background:#fff;height:220px}
.sigbox canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}
.sig-hint{position:absolute;left:0;right:0;top:45%;text-align:center;color:var(--faint);pointer-events:none;letter-spacing:.3em;font-family:var(--font-serif)}
.sig-img{display:block;max-width:360px;width:100%;border-bottom:1px solid var(--ink);margin:6px 0 20px;background:#fff}
.onsite{border-left:2px solid var(--ink);padding:4px 0 4px 14px;margin-bottom:14px;font-size:14px}

/* 對話框／提示／燈箱 */
.mask{position:fixed;inset:0;background:rgba(28,27,25,.55);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}
.modal{background:var(--paper);width:100%;max-width:560px;max-height:90vh;overflow:auto;padding:32px;border-top:4px solid var(--ink)}
.modal.wide{max-width:820px}
.modal h3{margin:0 0 20px;font-family:var(--font-serif);font-size:26px;font-weight:700;line-height:1.4}
.modal h4{margin:28px 0 12px;font-family:var(--font-serif);font-size:20px;font-weight:700;border-top:1px solid var(--rule);padding-top:20px}
.modal .acts{display:flex;gap:12px;justify-content:flex-end;margin-top:28px;flex-wrap:wrap}
#toast{position:fixed;left:16px;right:16px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
#toast div{background:var(--ink);color:var(--paper);padding:12px 20px;font-size:15px;max-width:520px;text-align:center}
#toast div.e{border-left:4px solid var(--on-ink-muted)}
.lb{position:fixed;inset:0;background:rgba(28,27,25,.96);z-index:90;display:flex;align-items:center;justify-content:center}
.lb img{max-width:96vw;max-height:84vh;object-fit:contain}
.lb .x,.lb .pv,.lb .nx{position:absolute;color:var(--paper);background:transparent;border:1px solid var(--on-ink-muted);border-radius:0;width:48px;height:48px;font-size:20px;cursor:pointer}
.lb .x{top:calc(16px + env(safe-area-inset-top));right:16px} .lb .pv{left:12px;top:50%} .lb .nx{right:12px;top:50%}
.lb .cap{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom));color:var(--on-ink-muted);font-size:13px;letter-spacing:.1em}
.prog{height:4px;background:var(--rule);overflow:hidden;margin-top:16px}
.prog i{display:block;height:100%;background:var(--ink);width:0;transition:width .2s}
.empty{padding:40px 0;color:var(--muted);font-family:var(--font-serif);font-size:18px}
.foot{max-width:var(--max-client);margin:0 auto;padding:28px var(--gutter) calc(40px + env(safe-area-inset-bottom));font-size:13px;color:var(--muted);letter-spacing:.12em}
.foot>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;border-top:1px solid var(--rule);padding-top:20px}

@media (max-width:760px){
  :root{--cell:26px}
  .kv{grid-template-columns:88px minmax(0,1fr)}
  .tabs{gap:0 18px}
  .tabs a{font-size:14.5px;letter-spacing:.08em}
  .mask{align-items:flex-end;padding:0}
  .modal{max-height:92vh;padding:24px 20px calc(24px + env(safe-area-inset-bottom))}
  .modal .acts .btn{flex:1 1 auto}
  .tl .pname{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.35}
  .tl .psub{display:none}
  .decision .go{width:100%}
}
/* 案件週誌 */
.tabs.top{margin-top:8px}
.issue.jn{padding-bottom:32px}
.issue.jn h1{max-width:14em}
.jump{margin-top:18px;color:var(--accent);font-weight:700;text-decoration-color:var(--accent)}
.jf{margin:0;min-width:0}
.jf img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--photo-bg);cursor:zoom-in}
.jf.main img{aspect-ratio:16/9}
.jf.big img{aspect-ratio:3/2}
.jf figcaption{padding:12px 0 0;font-size:15px;line-height:1.9;color:var(--ink-2);max-width:40em}
.jf.main{margin-bottom:8px}
.jf.main figcaption{font-size:14px;color:var(--muted);letter-spacing:.04em}
.jsmall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;margin-top:28px}
.lede{margin:0;font-family:var(--font-serif);font-weight:500;font-size:clamp(21px,2.6vw,26px);line-height:1.6;color:var(--ink);max-width:30em}
.jbody{margin:20px 0 0;line-height:2;color:var(--ink-2);max-width:40em}
.sig{margin-top:24px;font-size:14px;letter-spacing:.12em;color:var(--muted)}
.stages{display:flex;flex-wrap:wrap;gap:24px 0}
.stg{flex:1 1 110px;padding-right:14px;min-width:0}
.stg i{display:block;height:4px;background:var(--rule);margin-bottom:12px}
.stg.done i{background:var(--ink)} .stg.now i{background:var(--accent)}
.stg .no{display:block;font-size:12px;letter-spacing:.16em;color:var(--muted)}
.stg.now .no{color:var(--accent);font-weight:700}
.stg b{display:block;margin-top:4px;font-family:var(--font-serif);font-size:18px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.stg.next b{color:var(--faint);font-weight:500}
.stg-end{margin-top:28px;padding-top:14px;border-top:1px solid var(--rule);font-size:14px;letter-spacing:.12em;color:var(--muted)}
.stg-end b{font-family:var(--font-serif);font-size:20px;color:var(--ink);letter-spacing:.04em;margin-left:6px}
.decision.dform{align-items:flex-end;margin:0 0 16px}
.decision .dx{margin-top:10px;line-height:1.9;color:var(--on-ink-muted);white-space:pre-wrap}
.decision label.on-ink{color:var(--on-ink-muted);margin-top:22px}
.decision textarea{margin-top:8px;min-height:80px;border-color:var(--muted);color:var(--paper)}
.decision textarea:focus{border-color:var(--paper)}
button.go{border:0;cursor:pointer}
button.go:disabled{opacity:.5;cursor:default}
#jdec>a.decision{margin:0 0 16px}
.dec-done{border-top:1px solid var(--rule);padding:18px 0}
.dec-done .dk{font-size:12px;letter-spacing:.16em;color:var(--muted)}
.dec-done .dt{font-family:var(--font-serif);font-size:20px;font-weight:700;margin-top:4px;line-height:1.5}
.dec-done .dr{margin-top:6px;color:var(--ink-2);white-space:pre-wrap}
.jlist{border-top:1px solid var(--rule)}
.jrow{display:flex;flex-wrap:wrap;gap:4px 24px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--rule);text-decoration:none;min-height:44px}
.jrow .wk{flex:0 0 auto;font-size:13px;letter-spacing:.16em;color:var(--muted);min-width:15em}
.jrow b{flex:1 1 240px;font-family:var(--font-serif);font-size:19px;font-weight:700;line-height:1.5}
.jrow.cur .wk{color:var(--accent);font-weight:700}
.jrow:hover b{color:var(--muted)}
.colophon{border-top:2px solid var(--ink);margin-top:16px;padding:28px 0 8px;line-height:2}
.colophon .cm{font-family:var(--font-serif);font-weight:900;font-size:22px;letter-spacing:.12em}
@media (max-width:560px){ .jsmall{gap:18px 12px} .jf figcaption{font-size:14px} .jrow .wk{min-width:0} .decision.dform .go{width:100%} }
@media (max-width:420px){ .tabs{gap:0 14px} .tabs a{letter-spacing:.04em} }
@media print{ .topbar,.tabs,.btn,.no-print,.foot,.decision,.jump{display:none!important} body{background:#fff} .card{border:0;padding:0 0 12px} .page{padding:0} }
