/* トリタイ（入札情報プラットフォーム）
   全幅の画面。広い画面は左に条件・右に案件、詳細は要点の帯と2〜3列。
   色の役割：墨＝骨組み、青＝操作とリンク、緑＝受付中、朱＝期限と残りの日数、紫＝選定の結果。種別は小さな四角の色だけで示す。
   左の太い線・影・グラデーションは使わない。 */
:root{
 --ground:#EEF0F2;--panel:#fff;--sub:#F5F6F7;--field:#F2F3F5;
 --ink:#1A1E24;--ink-2:#3C424B;--ink-3:#646B75;--ink-4:#99A0A9;
 --line:#E1E4E8;--line-2:#CBD0D6;
 --frame:#22272E;--frame-2:#353B44;
 --link:#1652C4;--link-2:#0E3F9E;
 --open:#0B7A3E;--open-bg:#E6F3EB;
 --due:#C73A1D;--due-bg:#FBECE8;
 --res:#1652C4;--res-bg:#EAF0FB;
 --prop:#6C4AA8;--prop-bg:#F0ECF8;
 --off:#5F6670;--off-bg:#ECEEF0;
 --c-koji:#B4521C;--c-sekkei:#6C4AA8;--c-itaku:#1F6CB0;--c-buppin:#0C7A68;--c-chin:#8C6A12;--c-baikyaku:#6B7280;--c-other:#9AA0A8;
 --gothic:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",sans-serif;
 --num:"Inter","Noto Sans JP",sans-serif;
 --side:40px;--fw:300px;
 --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23646B75' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--gothic);font-size:14px;line-height:1.7;letter-spacing:.02em;min-width:320px;line-break:strict}
.nb{white-space:nowrap}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit;letter-spacing:inherit}
[hidden]{display:none !important}
h1,h2,h3,p,dl,dd,ol,ul{margin:0}
.num{font-family:var(--num);font-feature-settings:"tnum";letter-spacing:.02em}
.nw{white-space:nowrap}
.only-sp{display:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ヘッダー */
.hd{background:#fff;border-bottom:1px solid var(--line-2)}
.hd__bar{display:flex;align-items:center;gap:32px;height:64px;padding:0 var(--side)}
.hd__name{display:flex;align-items:baseline;gap:10px;flex:none;line-height:1}
.hd__name b{font-size:19px;font-weight:700;letter-spacing:.06em}
.hd__name>span{font-size:12.5px;color:var(--ink-3);white-space:nowrap}
.hs{display:flex;flex:1;max-width:760px;height:40px;min-width:0}
.hs select{flex:none;appearance:none;-webkit-appearance:none;width:150px;border:1px solid var(--line-2);border-right:0;border-radius:4px 0 0 4px;background:var(--sub) var(--chev) no-repeat right 12px center/12px;padding:0 30px 0 12px;font-size:13px;cursor:pointer}
.hs input{flex:1;min-width:0;border:1px solid var(--line-2);border-radius:0;padding:0 14px;font-size:14px;background:#fff}
.hs input:focus,.hs select:focus{outline:2px solid var(--link);outline-offset:-2px}
.hs button{flex:none;width:88px;border:0;border-radius:0 4px 4px 0;background:var(--link);color:#fff;font-size:14px;font-weight:700;cursor:pointer}
.hs button:hover{background:var(--link-2)}
.hd__links{display:flex;gap:22px;margin-left:auto;font-size:13px;flex:none}
.hd__links a{color:var(--ink-2);white-space:nowrap}
.hd__links a:hover{color:var(--link);text-decoration:underline}
.gn{background:var(--frame)}
.gn__in{display:flex;align-items:center;height:42px;padding:0 calc(var(--side) - 14px);overflow-x:auto;scrollbar-width:none}
.gn__in::-webkit-scrollbar{display:none}
.gn a{position:relative;display:flex;align-items:center;height:42px;padding:0 14px;color:#fff;font-size:13.5px;font-weight:700;white-space:nowrap}
.gn a:hover{background:var(--frame-2)}
.gn a.is-on::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;background:#fff}
.gn__asof{margin-left:auto;padding:0 14px;color:rgba(255,255,255,.66);font-size:12px;white-space:nowrap}

/* 共通の部品 */
.crumb{font-size:12px;color:var(--ink-3);line-height:1.6}
.crumb a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.crumb>span+span::before{content:"›";margin:0 7px;color:var(--ink-4)}
.st{display:inline-flex;align-items:center;justify-content:center;flex:none;width:76px;height:22px;border-radius:2px;font-size:12px;font-weight:700;line-height:1;white-space:nowrap;letter-spacing:.04em}
.st--open{background:var(--open-bg);color:var(--open)}
.st--res{background:var(--res-bg);color:var(--res)}
.st--prop{background:var(--prop-bg);color:var(--prop)}
.st--off{background:var(--off-bg);color:var(--off)}
.cat{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-weight:700;color:var(--ink-2)}
.cat::before{content:"";width:8px;height:8px;border-radius:1px;background:var(--c-other);flex:none}
.cat--koji::before{background:var(--c-koji)}.cat--sekkei::before{background:var(--c-sekkei)}.cat--itaku::before{background:var(--c-itaku)}
.cat--buppin::before{background:var(--c-buppin)}.cat--chin::before{background:var(--c-chin)}.cat--baikyaku::before{background:var(--c-baikyaku)}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid var(--line-2);border-radius:2px;font-size:12px;color:var(--ink-2);white-space:nowrap;background:#fff}
a.tag:hover{border-color:var(--link);color:var(--link)}
.sec{background:var(--panel);border-radius:6px;padding:22px 24px 24px;min-width:0}
.sec+.sec{margin-top:16px}
.sec__h{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 12px;font-size:16px;font-weight:700;line-height:1.5;margin:0 0 14px}
.sec__h small{font-size:12.5px;font-weight:500;color:var(--ink-3)}
.sec__h a{margin-left:auto;font-size:13px;font-weight:700;color:var(--link)}
.sec__h a:hover{text-decoration:underline}
.sub-h{font-size:14px;font-weight:700;margin:22px 0 10px;line-height:1.5}
.note{font-size:12.5px;color:var(--ink-3);line-height:1.7}
.more{display:inline-block;margin-top:14px;font-size:13.5px;font-weight:700;color:var(--link)}
.more:hover{text-decoration:underline}
.btn{display:flex;align-items:center;justify-content:center;height:44px;padding:0 18px;border-radius:4px;background:var(--link);color:#fff;font-size:14px;font-weight:700;white-space:nowrap}
.btn:hover{background:var(--link-2)}
.btn--line{background:#fff;color:var(--ink);border:1px solid var(--line-2)}
.btn--line:hover{background:var(--sub)}

/* 表（全マスに細い罫線、見出しのマスは薄い灰色） */
.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:13.5px;line-height:1.6}
th,td{border:1px solid var(--line-2);padding:8px 12px;vertical-align:middle;text-align:left}
thead th{background:var(--sub);font-size:12.5px;font-weight:700;color:var(--ink-2);white-space:nowrap}
tbody th{background:var(--sub);font-weight:700;font-size:13px;color:var(--ink-2)}
td.r,th.r{text-align:right;white-space:nowrap}
td.c,th.c{text-align:center;white-space:nowrap}
td a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
td .mt{display:block;margin-top:2px;font-size:12px;color:var(--ink-3)}
tr.is-win td{background:#F4F7FD;font-weight:700}
/* 項目の表（左に見出しの列） */
.spec{table-layout:fixed}
.spec th{width:13em;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
.spec td{overflow-wrap:anywhere}
.spec td.lg{line-height:1.75}

/* 一覧の1件（表の行のように列をそろえる） */
.rows{background:var(--panel)}
.row{display:grid;grid-template-columns:var(--rc);column-gap:16px;align-items:start;padding:16px 20px;border-top:1px solid var(--line);color:inherit}
.row:first-child{border-top:0}
.row:hover{background:#FAFBFC}
.row:hover .row__t{text-decoration:underline}
.row__st{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding-top:2px}
.left{font-size:12px;color:var(--ink-3);white-space:nowrap;line-height:1.3}
.left b{font-family:var(--num);font-size:20px;font-weight:700;color:var(--due);margin:0 2px;letter-spacing:.02em}
.left--today b{font-family:var(--gothic);font-size:15px}
.row__main{min-width:0}
.row__meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 14px;font-size:12.5px;color:var(--ink-3);line-height:1.6}
.row__t{font-size:16px;font-weight:700;color:var(--link);line-height:1.55;margin:4px 0 2px;overflow-wrap:anywhere}
.row__o{font-size:12.5px;color:var(--ink-3);line-height:1.6}
.row__w{display:flex;gap:10px;margin-top:6px;font-size:13px;line-height:1.55}
.row__w>span{flex:none;color:var(--ink-3)}
.row__w b{min-width:0;overflow-wrap:anywhere}
.cell{min-width:0;line-height:1.35}
.cell .lb{display:block;font-size:11.5px;color:var(--ink-3);white-space:nowrap;margin-bottom:3px}
.cell b{font-family:var(--num);font-size:15px;font-weight:700;white-space:nowrap;letter-spacing:.02em}
.dv{white-space:nowrap}
.cell small{font-size:12px;color:var(--ink-3);white-space:nowrap}
.cell--a b{font-size:16px}
.cell--due b{color:var(--due)}
.cell--r b+small{margin-left:8px}
.cell--w b{font-family:var(--gothic);font-size:13.5px;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.cell .dash{color:var(--ink-4)}
.row__cells{display:contents}
/* 列の幅：状態｜件名｜(落札者)｜日付｜金額｜落札率・参加。公告のタブは 期限｜公告日｜開札日 */
.lbox{--rc:84px minmax(0,1fr) 132px 156px 92px}
.lbox .cell--w,.lbox .cell--nd,.lbox .cell--bd{display:none}
.lbox.m-notice{--rc:84px minmax(0,1fr) 132px 132px 132px}
.lbox.m-notice .cell--a,.lbox.m-notice .cell--r{display:none}
.lbox.m-notice .cell--nd,.lbox.m-notice .cell--bd{display:flex}
.lh{display:grid;grid-template-columns:var(--rc);column-gap:16px;align-items:center;padding:0 20px;height:38px;background:var(--sub);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;font-weight:700;color:var(--ink-2)}
.lh .lh__w{display:none}
.lh button{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0;border:0;background:none;font-size:12px;font-weight:700;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.lh button i{font-style:normal;color:var(--ink-4);font-size:10px}
.lh button.is-on{color:var(--link)}
.lh button.is-on i{color:var(--link)}
.lh button:hover{color:var(--link)}
.lh>span{white-space:nowrap}

/* 一覧のページ */
.lpg{display:grid;grid-template-columns:var(--fw) minmax(0,1fr);min-height:calc(100vh - 107px)}
.fl{background:#fff;border-right:1px solid var(--line-2);min-width:0}
.fl__in{position:sticky;top:0;max-height:100vh;overflow:auto;padding:18px 22px 40px;scrollbar-width:thin}
.fl__h{display:flex;align-items:center;justify-content:space-between;padding:0 0 12px;border-bottom:1px solid var(--line-2)}
.fl__h b{font-size:15px}
.fl__h button,.fl__x{border:0;background:none;padding:0;font-size:12.5px;font-weight:700;color:var(--link);cursor:pointer}
.fl__h button:hover{text-decoration:underline}
.fl__x{display:none}
.fs{padding:16px 0;border-bottom:1px solid var(--line)}
.fs:last-child{border-bottom:0}
.fs__h{font-size:13.5px;font-weight:700;margin:0 0 8px;line-height:1.5}
.fs__h small{font-weight:500;font-size:12px;color:var(--ink-3);margin-left:6px}
.fo{display:flex;align-items:center;gap:9px;min-height:30px;font-size:13px;line-height:1.45;cursor:pointer;padding:2px 0}
.fo input{flex:none;width:16px;height:16px;margin:0;accent-color:var(--link);cursor:pointer}
.fo .fo__t{min-width:0;word-break:keep-all;overflow-wrap:anywhere}
.fo .fo__n{margin-left:auto;padding-left:8px;font-family:var(--num);font-size:12px;color:var(--ink-3);letter-spacing:.02em}
.fo.is-zero{color:var(--ink-4)}
.fo.is-zero .fo__n{color:var(--ink-4)}
.fo:hover .fo__t{color:var(--link)}
.fo .cat{font-weight:500;color:inherit}
.fmore{border:0;background:none;padding:6px 0 0;font-size:12.5px;font-weight:700;color:var(--link);cursor:pointer}
.fmore:hover{text-decoration:underline}
.kwl{display:block;font-size:12px;color:var(--ink-3);margin:10px 0 4px}
.kwl:first-of-type{margin-top:0}
.kw{width:100%;height:38px;border:1px solid var(--line-2);border-radius:4px;padding:0 10px;font-size:14px;background:#fff}
.kw:focus,.ffind:focus{outline:2px solid var(--link);outline-offset:-2px;border-color:transparent}
.ffind{width:100%;height:32px;border:1px solid var(--line);border-radius:4px;padding:0 10px;font-size:13px;margin:0 0 6px;background:var(--sub)}
.freg{margin:8px 0 2px;font-size:12px;font-weight:700;color:var(--ink-3)}
.freg:first-child{margin-top:0}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}
.lres{padding:20px var(--side) 48px 28px;min-width:0}
.lhead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin:6px 0 14px}
.lhead h1{font-size:22px;font-weight:700;line-height:1.45}
.lhead__n{font-size:13px;color:var(--ink-3);white-space:nowrap}
.lhead__n b{font-family:var(--num);font-size:26px;font-weight:700;color:var(--ink);margin-right:3px;letter-spacing:.02em}
.lbox{background:var(--panel);border-radius:6px;overflow:hidden}
.tabs{display:flex;padding:0 8px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{position:relative;flex:none;border:0;background:none;padding:14px 14px 12px;font-size:14px;font-weight:700;color:var(--ink-3);cursor:pointer;white-space:nowrap}
.tabs button>span{font-family:var(--num);font-weight:500;font-size:12.5px;margin-left:6px;letter-spacing:.02em}
.tabs button:hover{color:var(--ink)}
.tabs button.is-on{color:var(--ink)}
.tabs button.is-on::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:3px;background:var(--frame)}
.tabs button[disabled]{color:var(--ink-4);cursor:default}
.lbar{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;padding:10px 20px;min-height:52px}
.conds{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex:1;min-width:0}
.conds__lb{font-size:12.5px;color:var(--ink-3);margin-right:4px;white-space:nowrap}
.conds__none{font-size:12.5px;color:var(--ink-4)}
.conds button{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 10px;border:1px solid var(--line-2);border-radius:3px;background:#fff;font-size:12.5px;cursor:pointer;white-space:nowrap}
.conds button::after{content:"×";color:var(--ink-3);font-size:14px;line-height:1}
.conds button:hover{border-color:var(--ink-3)}
.conds .conds__all{border:0;padding:0 4px;color:var(--link);font-weight:700}
.conds .conds__all::after{content:none}
.conds .conds__all:hover{text-decoration:underline}
.lbar__r{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:12.5px;color:var(--ink-3);white-space:nowrap}
.sel{appearance:none;-webkit-appearance:none;height:34px;border:1px solid var(--line-2);border-radius:4px;padding:0 32px 0 10px;font-size:13px;background:#fff var(--chev) no-repeat right 10px center/12px;cursor:pointer}
.lsort{display:none}
@media (min-width:1280px){.lbar.no-conds{display:none}}
.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:20px 0 0}
.pager button{min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line-2);border-radius:4px;background:#fff;font-family:var(--num);font-size:14px;cursor:pointer}
.pager button:hover{border-color:var(--ink-3)}
.pager button.is-on{background:var(--frame);border-color:var(--frame);color:#fff}
.pager button[disabled]{opacity:.4;cursor:default}
.pager__gap{display:inline-flex;align-items:center;padding:0 2px;color:var(--ink-3)}
.empty{padding:48px 24px;text-align:center;color:var(--ink-3)}
.pick{padding:20px}
.pick p{font-size:14px;margin:0 0 14px}
.ftoggle{display:none}
.fl-bg{display:none}

/* 地域から選ぶ（トップと一覧） */
.regs{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.reg{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:4px 12px;padding:8px 0;border-top:1px solid var(--line)}
.reg:first-child{border-top:0;padding-top:0}
.reg dt{font-size:12.5px;font-weight:700;color:var(--ink-3);line-height:26px;white-space:nowrap}
.reg dd{display:flex;flex-wrap:wrap;gap:0 16px}
.reg a{display:inline-flex;align-items:baseline;gap:4px;line-height:26px;font-size:14px;color:var(--link);white-space:nowrap}
.reg a>span{font-family:var(--num);font-size:12px;color:var(--ink-3);letter-spacing:.02em}
.reg a:hover{text-decoration:underline}

/* トップ */
.tsearch{background:#fff;border-bottom:1px solid var(--line-2);padding:28px var(--side) 26px}
.tsearch h1{font-size:26px;font-weight:700;line-height:1.4}
.tcount{display:flex;flex-wrap:wrap;gap:4px 28px;margin:10px 0 18px;font-size:13px;color:var(--ink-3)}
.tcount b{font-family:var(--num);font-size:20px;font-weight:700;color:var(--ink);margin:0 2px 0 8px;letter-spacing:.02em}
.tcount b.is-open{color:var(--open)}
.tsf{display:flex;height:52px;max-width:980px}
.tsf select{flex:none;appearance:none;-webkit-appearance:none;width:176px;border:1px solid var(--line-2);border-right:0;border-radius:4px 0 0 4px;background:var(--sub) var(--chev) no-repeat right 14px center/12px;padding:0 34px 0 16px;font-size:14px;font-weight:700;cursor:pointer}
.tsf input{flex:1;min-width:0;border:1px solid var(--line-2);padding:0 16px;font-size:15px}
.tsf input:focus,.tsf select:focus{outline:2px solid var(--link);outline-offset:-2px}
.tsf button{flex:none;width:132px;border:0;border-radius:0 4px 4px 0;background:var(--link);color:#fff;font-size:15px;font-weight:700;cursor:pointer}
.tsf button:hover{background:var(--link-2)}
.tkw{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:14px;font-size:13px}
.tkw>span{color:var(--ink-3);white-space:nowrap}
.tkw a{color:var(--link);white-space:nowrap}
.tkw a:hover{text-decoration:underline}
.tbody{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,1fr);gap:16px;padding:20px var(--side) 48px;align-items:start}
.tbody>.tcol{min-width:0}
.tcol>.sec+.sec{margin-top:16px}
.twide{grid-column:1/-1}
.bzl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}
.bzl a{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:13.5px;line-height:1.5}
.bzl a:nth-child(-n+2){border-top:0}
.bzl a b{font-weight:500;color:var(--link);min-width:0;word-break:keep-all;overflow-wrap:anywhere}
.bzl a>span{font-family:var(--num);font-size:12px;color:var(--ink-3);white-space:nowrap;letter-spacing:.02em}
.bzl a>span em{font-style:normal;color:var(--open);font-weight:700}
.bzl a:hover b{text-decoration:underline}
/* 小さな一覧（トップ・発注機関の中） */
.rows--c{--rc:84px minmax(0,1fr) auto}
.rows--c .row{padding:12px 0;column-gap:16px}
.rows--c .row:hover{background:none}
.rows--c .row__t{font-size:14.5px;margin:2px 0 1px}
.rows--c .row__cells{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right;min-width:112px}
.rows--c .cell--w,.rows--c .cell--nd,.rows--c .cell--bd,.rows--c .cell--a,.rows--c .cell--r,.rows--c .cell.is-empty{display:none}
.rows--c .cell .lb{margin-bottom:1px}
.rows--c .cell b{font-size:14px}
.rows--c.rows--res{--rc:minmax(0,1fr) auto}
.rows--c.rows--res .row__st{display:none}
.rows--c.rows--res .cell--d{display:none}
.rows--c.rows--res .cell--a,.rows--c.rows--res .cell--r{display:block}
.rows--c.rows--res .cell.is-empty{display:none}
.rows--c .cell--r small{display:block;margin:2px 0 0}

/* 詳細 */
.dhead{background:#fff;border-bottom:1px solid var(--line-2);padding:16px var(--side) 0}
.dhead__g{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px 40px;margin-top:14px}
.dtags{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12.5px}
.dhead h1{font-size:25px;font-weight:700;line-height:1.5;margin:10px 0 4px;overflow-wrap:anywhere}
.dorg{font-size:13.5px;color:var(--ink-3)}
.dorg a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.dact{display:flex;flex-direction:column;gap:8px;align-self:start}
.dact .asof{font-size:12px;color:var(--ink-3);line-height:1.65;margin-top:4px}
.dact .asof a{color:var(--link);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.pairl{margin-top:10px;font-size:13.5px}
.pairl a{color:var(--link);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.pairl>span{color:var(--ink-3);margin-left:8px}
.keys{margin:18px calc(var(--side) * -1) 0;padding:0 var(--side);border-top:1px solid var(--line);overflow:hidden}
.keys__in{display:flex;flex-wrap:wrap;margin:0 0 0 -21px}
.key{flex:1 0 auto;min-width:max-content;padding:14px 20px 16px;border-left:1px solid var(--line);border-top:1px solid var(--line);margin:-1px 0 0 0}
.key dt{font-size:12px;font-weight:700;color:var(--ink-3);white-space:nowrap;line-height:1.5}
.key dd{margin-top:4px;font-family:var(--num);font-size:22px;font-weight:700;line-height:1.3;white-space:nowrap;letter-spacing:.02em}
.key dd small{font-family:var(--gothic);font-size:12.5px;font-weight:500;color:var(--ink-3);margin-left:3px}
.key dd .sub{display:block;margin:4px 0 0;font-family:var(--gothic);font-size:12px;font-weight:500;color:var(--ink-3);white-space:normal;line-height:1.5}
.key dd .sub a{color:var(--link);text-decoration:underline}
.key--who{flex:2 1 280px;min-width:240px;max-width:520px}
.key--who dd{font-family:var(--gothic);font-size:17px;white-space:normal;overflow-wrap:anywhere;line-height:1.45}
.key--who dd a{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.key--due dd{color:var(--due)}
.key--due .lefttag{display:inline-flex;align-items:center;height:22px;margin-left:10px;padding:0 8px;border-radius:2px;background:var(--due);color:#fff;font-family:var(--gothic);font-size:12px;font-weight:700;vertical-align:4px}
.key--big dd{font-size:26px}
.key--txt dd{font-family:var(--gothic);font-size:15px;white-space:normal;line-height:1.5}
.key .na{font-family:var(--gothic);font-size:14px;font-weight:500;color:var(--ink-4)}
.dbody{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 400px;grid-template-areas:"a b c";gap:16px;padding:20px var(--side) 48px;align-items:start}
.dcol{min-width:0}
.dcol--a{grid-area:a}.dcol--b{grid-area:b}.dcol--c{grid-area:c}
.quals{list-style:none;padding:0;counter-reset:q;border-top:1px solid var(--line)}
.quals li{counter-increment:q;display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7}
.quals li::before{content:counter(q);font-family:var(--num);font-weight:700;color:var(--ink-3)}
.docs{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line)}
.doc{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px;line-height:1.5}
.doc i{font-style:normal;display:inline-flex;align-items:center;justify-content:center;height:22px;border:1px solid var(--line-2);border-radius:2px;font-family:var(--num);font-size:10.5px;font-weight:700;color:var(--ink-2);letter-spacing:.04em}
.doc i.pdf{border-color:#E3B5AA;color:var(--due)}
.doc>span{font-weight:700;color:var(--link);overflow-wrap:anywhere}
.doc small{display:block;font-weight:500;font-size:12px;color:var(--ink-3)}
.doc:hover>span{text-decoration:underline}
.facets a{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.facets a:first-child{border-top:0;padding-top:0}
.facets a>span:first-child{color:var(--link)}
.facets a:hover>span:first-child{text-decoration:underline}
.facets a>span:last-child{font-family:var(--num);color:var(--ink-3);white-space:nowrap}
.avg{display:flex;align-items:baseline;gap:8px;margin:-4px 0 10px;font-size:12.5px;color:var(--ink-3)}
.avg b{font-family:var(--num);font-size:18px;color:var(--ink);letter-spacing:.02em}
/* 入札額の比較（表の中に位置の点） */
.bt td{padding-top:7px;padding-bottom:7px}
.bt .bt__ax{min-width:200px;padding:0 12px}
.bt td:nth-child(2){min-width:12em}
.bt th:last-child,.bt td:last-child{white-space:nowrap}
.ax{position:relative;height:30px;margin:0 8px}
.ax span{position:absolute;bottom:4px;transform:translateX(-50%);font-family:var(--num);font-size:11px;font-weight:500;color:var(--ink-3);white-space:nowrap}
.ax span::after{content:"";position:absolute;left:50%;bottom:-5px;height:4px;border-left:1px solid var(--line-2)}
.strip{position:relative;height:18px;margin:0 8px}
.strip::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--line)}
.strip .ref{position:absolute;top:-6px;bottom:-6px;border-left:2px solid var(--ink)}
.strip .min{position:absolute;top:-6px;bottom:-6px;border-left:2px dashed var(--due)}
.strip .dot{position:absolute;top:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:#A3AAB5}
tr.is-win .strip .dot{background:var(--res);width:13px;height:13px;margin:-6.5px 0 0 -6.5px}
.strip .bar{position:absolute;left:0;top:4px;bottom:4px;background:#B7BDC6;border-radius:1px}
tr.is-win .strip .bar{background:var(--res)}
.legend{display:flex;flex-wrap:wrap;gap:4px 20px;margin:10px 0 0;font-size:12px;color:var(--ink-3)}
.legend i{display:inline-block;vertical-align:middle;margin-right:6px}
.legend .lg-win{width:11px;height:11px;border-radius:50%;background:var(--res)}
.legend .lg-oth{width:9px;height:9px;border-radius:50%;background:#A3AAB5}
.legend .lg-ref{width:0;height:14px;border-left:2px solid var(--ink)}
.legend .lg-min{width:0;height:14px;border-left:2px dashed var(--due)}
td.res-x{color:var(--ink-3);font-size:12.5px}

/* 業者・発注機関の一覧 */
.pghead{background:#fff;border-bottom:1px solid var(--line-2);padding:16px var(--side) 18px}
.pghead h1{font-size:24px;font-weight:700;line-height:1.45;margin:10px 0 2px}
.pghead .dorg{margin-top:2px}
.pgbody{padding:20px var(--side) 48px}
.pgbody--2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.pgbody--2>.sec+.sec{margin-top:0}
.pgbody--2 .twide{grid-column:1/-1}
.kgrp{columns:5 220px;column-gap:28px}
.kgrp a{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px;break-inside:avoid}
.kgrp a b{font-weight:500;color:var(--link);min-width:0;overflow-wrap:anywhere}
.kgrp a>span{font-family:var(--num);font-size:12px;color:var(--ink-3);white-space:nowrap}
.kgrp a:hover b{text-decoration:underline}
.cfind{display:flex;align-items:center;gap:14px;margin:0 0 14px}
.cfind input{width:360px;max-width:100%;height:38px;border:1px solid var(--line-2);border-radius:4px;padding:0 12px;font-size:14px}
.cfind input:focus{outline:2px solid var(--link);outline-offset:-2px}
.pgb{display:block;height:8px;min-width:90px;background:var(--sub);border:1px solid var(--line)}
.pgb i{display:block;height:100%;background:var(--frame)}
.prg td.sm{min-width:260px;font-size:12.5px;color:var(--ink-2)}
.stat-line{display:flex;flex-wrap:wrap;gap:6px 32px;margin:0 0 10px}
.stat-line div{font-size:12.5px;color:var(--ink-3)}
.stat-line b{display:block;font-family:var(--num);font-size:24px;color:var(--ink);letter-spacing:.02em;line-height:1.3}

/* フッター */
.ft{background:#fff;border-top:1px solid var(--line-2)}
.ft__in{padding:22px var(--side) 28px;font-size:12.5px;color:var(--ink-3)}
.ft__in nav{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0 0 10px}
.ft__in nav a{font-weight:700;color:var(--ink-2)}
.ft__in nav a:hover{text-decoration:underline}
.ft__in p{line-height:1.8}
.ft__in p a{text-decoration:underline;text-underline-offset:2px}
.ft__in nav.ft__sub{gap:6px 20px;margin:-2px 0 12px}
.ft__in nav.ft__sub a{font-weight:500;color:var(--ink-3)}
.ft__in p.ft__c{display:flex;flex-wrap:wrap;gap:2px 20px;margin-top:10px}

/* 規約・方針・運営会社などの文書（行の長さは入れ物で決める） */
.legalw{max-width:880px}
.legal{font-size:14px;line-height:1.9}
.legal>*+*{margin-top:12px}
.legal h2{display:flex;gap:12px;font-size:16px;font-weight:700;line-height:1.5;margin-top:34px}
.legal h2:first-child{margin-top:0}
.legal h2 span{flex:none}
.legal h3{font-size:14.5px;font-weight:700;line-height:1.5;margin-top:22px}
.legal h2+h3{margin-top:14px}
.legal ol,.legal ul{padding-left:1.6em}
.legal ol.go{list-style:none;padding-left:0}
.legal ol.go li{display:grid;grid-template-columns:2.6em minmax(0,1fr)}
.legal li+li{margin-top:6px}
.legal a{color:var(--link);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.legal .end{text-align:right}
.legal .tbl+*{margin-top:14px}
.legal td,.legal th{font-size:13.5px;line-height:1.7}
.legal .spec th{width:9em}

/* 広い画面（1600px〜）：一覧に落札者の列 */
/* 表の形の一覧（1280px〜）：値を上、見出しの補足（金額の税の扱いなど）を下に。列の見出しと同じ語は出さない */
@media (min-width:1280px){
 .lbox .cell{display:flex;flex-direction:column;align-items:flex-start}
 .lbox .cell .lb{order:2;margin:3px 0 0}
 .lbox .cell--w,.lbox .cell--nd,.lbox .cell--bd{display:none}
 .lbox.m-notice .cell--nd,.lbox.m-notice .cell--bd{display:flex}
 .lbox.m-notice .cell--a,.lbox.m-notice .cell--r{display:none}
 .lbox.m-notice .cell .lb,.lbox.m-result .cell--d .lb,.lbox .cell--r .lb,.lbox .cell--w .lb,.lbox .cell.is-empty .lb{display:none}
 .lbox .cell--r small{margin:2px 0 0}
}
@media (min-width:1280px) and (max-width:1439px){:root{--fw:276px}}
@media (min-width:1600px){
 :root{--fw:312px}
 .lbox{--rc:92px minmax(0,1fr) 230px 140px 168px 100px}
 .lbox .cell--w{display:flex}
 .lbox .row__w{display:none}
 .lbox .lh .lh__w{display:block}
 .lbox.m-notice{--rc:92px minmax(0,1fr) 150px 150px 150px}
 .lbox.m-notice .cell--w{display:none}
}
/* PC 中（1280〜1599px） */
@media (max-width:1599px){
 :root{--side:32px}
 .dbody{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-areas:"a b" "c b";grid-template-rows:auto 1fr}
 .tbody{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .tbody .tcol--s{grid-row:span 2}
 .kgrp{columns:4 200px}
}
/* PC 小（1024〜1279px）：一覧の1件は縦に組む */
@media (max-width:1279px){
 :root{--side:24px;--fw:264px}
 .hd__bar{gap:20px}
 .hd__links{gap:16px}
 .lres{padding-left:20px}
 .rows{--rc:minmax(0,1fr)}
 .row{grid-template-columns:minmax(0,1fr);row-gap:0;padding:16px 20px}
 .row__st{flex-direction:row;align-items:center;gap:10px;padding:0;margin:0 0 6px}
 .left b{font-size:17px}
 .row__cells{display:flex;flex-wrap:wrap;gap:6px 0;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
 .row__cells .cell{display:flex;align-items:baseline;gap:6px;padding:0 18px 0 0;margin-right:18px;border-right:1px solid var(--line)}
 .row__cells .cell:last-child{border-right:0;margin-right:0}
 .row__cells .cell .lb{display:inline;margin:0}
 .row__cells .cell--w{display:none}
 .rows .row__w{display:flex}
 .lh{display:none}
 .lsort{display:flex}
 .rows--c .row{padding:12px 0}
 .rows--c .row__cells{border-top:0;padding-top:0;margin-top:6px}
 .dhead__g{grid-template-columns:minmax(0,1fr) 260px}
 .tbody{grid-template-columns:minmax(0,1fr)}
 .tbody .tcol--s{grid-row:auto}
 .pgbody--2{grid-template-columns:minmax(0,1fr)}
}
/* タブレット（768〜1023px）：条件は引き出しで開く */
@media (max-width:1023px){
 :root{--side:20px}
 .hd__links{display:none}
 .gn__asof{display:none}
 .lpg{grid-template-columns:minmax(0,1fr)}
 .fl{position:fixed;z-index:30;top:0;left:0;bottom:0;width:min(360px,88vw);transform:translateX(-102%);transition:transform .2s;border-right:0}
 .fl.is-open{transform:none;box-shadow:0 0 0 100vmax rgba(20,24,30,.38)}
 .fl__in{position:static;max-height:none;height:100%;padding:16px 18px 80px}
 .fl__x{display:inline-block}
 .lres{padding:16px var(--side) 40px}
 .ftoggle{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:1px solid var(--line-2);border-radius:4px;background:#fff;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
 .ftoggle>span{font-family:var(--num);color:var(--link)}
 .dhead__g{grid-template-columns:minmax(0,1fr)}
 .dact{flex-direction:row;flex-wrap:wrap}
 .dact .btn{flex:1 1 220px}
 .dact .asof{flex-basis:100%}
 .dbody{grid-template-columns:minmax(0,1fr);grid-template-areas:"a" "b" "c";grid-template-rows:none}
 .keys .key{flex:1 1 33%}
 .kgrp{columns:3 180px}
}
/* スマホ（〜767px） */
@media (max-width:767px){
 :root{--side:12px}
 body{font-size:14px}
 .only-sp{display:block}
 .only-pc{display:none !important}
 .hd__bar{flex-wrap:wrap;height:auto;gap:8px 12px;padding-top:10px;padding-bottom:10px}
 .hd__name b{font-size:17px}
 .hs{flex:1 1 100%;max-width:none;height:42px}
 .hs select{width:114px;font-size:12.5px;padding:0 24px 0 8px;background-position:right 8px center}
 .hs input{font-size:16px;padding:0 10px}
 .hs button{width:64px}
 .gn__in{height:40px}
 .gn a{height:40px;padding:0 11px;font-size:13px}
 .gn a.is-on::after{left:11px;right:11px}
 .sec{padding:18px 14px 20px;border-radius:4px}
 .sec+.sec{margin-top:10px}
 .sec__h{font-size:15.5px}
 .lres{padding:12px var(--side) 32px}
 .lhead{margin:4px 2px 10px;align-items:flex-start;flex-direction:column;gap:4px}
 .lhead h1{font-size:18px}
 .lhead__n b{font-size:22px}
 .lbox{border-radius:4px}
 .tabs{padding:0 2px}
 .tabs button{padding:12px 10px 10px;font-size:13px}
 .tabs button>span{margin-left:4px}
 .lbar{padding:10px 12px;gap:8px}
 .lbar__r{margin-left:0;width:100%;justify-content:space-between}
 .row{padding:14px 12px}
 .row__t{font-size:15.5px}
 .row__cells{gap:8px 0}
 .row__cells .cell{padding-right:12px;margin-right:12px}
 .row__cells .cell .lb{font-size:11px}
 .row__cells .cell b{font-size:14px}
 .rows--c .row{padding:12px 0}
 .reg{grid-template-columns:minmax(0,1fr);gap:0}
 .reg dd{gap:0 14px}
 .tsearch{padding:18px var(--side) 18px}
 .tsearch h1{font-size:20px}
 .tcount{gap:2px 18px;margin:8px 0 14px}
 .tcount b{font-size:17px;margin-left:6px}
 .tsf{flex-wrap:wrap;height:auto;gap:0}
 .tsf select{width:100%;height:44px;border-right:1px solid var(--line-2);border-radius:4px 4px 0 0;border-bottom:0}
 .tsf input{height:48px;font-size:16px;border-radius:0 0 0 4px}
 .tsf button{width:76px;height:48px;border-radius:0 0 4px 0}
 .tbody{padding:12px var(--side) 32px;gap:10px}
 .bzl{grid-template-columns:minmax(0,1fr)}
 .bzl a:nth-child(2){border-top:1px solid var(--line)}
 .dhead{padding:12px var(--side) 0}
 .dhead h1{font-size:19px;margin-top:8px}
 .dhead__g{margin-top:10px;gap:10px}
 .dact .btn{flex-basis:100%;height:46px}
 .dhead{display:flex;flex-direction:column}
 .dhead__g{display:contents}
 .dhead__g>div:first-child{order:1;margin-top:10px}
 .keys{order:2;margin-top:14px;margin-bottom:0}
 .dact{order:3;margin:14px 0 16px}
 .keys__in{display:block;margin:0}
 .key{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0;max-width:none;padding:10px 0;border-left:0;margin:0}
 .key:first-child{border-top:0}
 .key dt{flex:none}
 .key dd{margin:0;text-align:right}
 .key--who{display:block}
 .key--who dd{text-align:left;margin-top:2px}
 .bt .c-ax,.bt .c-rank{display:none}
 .bt{min-width:0}
 .key dd{font-size:17px}
 .key--big dd{font-size:19px}
 .key--who dd{font-size:16px}
 .key--due .lefttag{margin-left:8px}
 .dbody{padding:12px var(--side) 32px;gap:10px}
 .spec th{width:7.5em;font-size:12.5px;padding:8px}
 .spec td{padding:8px}
 table{font-size:13px}
 th,td{padding:7px 8px}
 .bt{min-width:600px}
 .wide{min-width:640px}
 .pghead{padding:12px var(--side) 14px}
 .pghead h1{font-size:19px}
 .pgbody{padding:12px var(--side) 32px}
 .kgrp{columns:1}
 .cfind{flex-direction:column;align-items:stretch;gap:6px}
 .cfind input{width:100%;font-size:16px}
 .ft__in{padding:18px var(--side) 24px}
}
@media (max-width:400px){
 .row__cells .cell{border-right:0;margin-right:0;padding-right:16px}
}

/* 追加：引き出しの外側・発注機関の見出し・地方の開閉・空の欄 */
.fl-bg.is-open{display:block;position:fixed;inset:0;z-index:29}
.kg-h{font-size:12.5px;font-weight:700;color:var(--ink-3);margin:14px 0 2px;break-after:avoid;line-height:1.5}
.kg-h:first-child{margin-top:0}
.freg-d{border-top:1px solid var(--line)}
.freg-d:first-child{border-top:0}
.freg-d summary{display:flex;align-items:center;gap:8px;min-height:34px;font-size:13.5px;font-weight:700;cursor:pointer;list-style:none}
.freg-d summary::-webkit-details-marker{display:none}
.freg-d summary::before{content:"";width:6px;height:6px;border-right:1.6px solid var(--ink-3);border-bottom:1.6px solid var(--ink-3);transform:rotate(-45deg);margin:0 4px 0 2px;transition:transform .15s}
.freg-d[open] summary::before{transform:rotate(45deg)}
.freg-d summary .fo__n{margin-left:auto;font-weight:500;font-family:var(--num);font-size:12px;color:var(--ink-3)}
.freg-d .fgrid{padding:0 0 8px 14px}
.lh[hidden]{display:none}
@media (max-width:1279px){.row__cells .cell.is-empty{display:none}}
