/* 業務画面（CA / RA / 事務）。トークンは brand.css */
html,body{height:100%}

/* 骨組み: 左に白いサイドバー、右に上部バーと本文 */
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100%}
aside{background:var(--surface);border-right:1px solid var(--line);padding:16px 12px 12px max(12px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:12px;position:sticky;top:0;height:100vh;overflow-y:auto}
aside .brand{padding:4px 8px 0}
.co-name{font-size:12.5px;font-weight:500;color:var(--muted);padding:0 8px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--sunk);border:1px solid var(--line);border-radius:var(--r-ctl);padding:2px}
.areas button{border:0;background:transparent;border-radius:6px;padding:5px 2px;font-size:12.5px;font-weight:500;color:var(--muted)}
.areas button:hover{color:var(--fg)}
.areas button[aria-pressed="true"]{background:var(--surface);color:var(--fg);font-weight:700;box-shadow:0 0 0 1px var(--line)}
.areas button[hidden]{display:none}
nav{display:flex;flex-direction:column;gap:1px}
nav button{display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;text-align:left;padding:6px 10px;min-height:32px;border-radius:6px;color:var(--fg);font-size:13.5px}
nav button:hover{background:var(--hover)}
nav button[aria-current="page"]{background:var(--accent-soft);color:var(--accent);font-weight:700}
.badge{font-size:11px;font-weight:500;background:var(--sunk);border-radius:var(--r-tag);padding:0 6px;color:var(--muted);font-variant-numeric:tabular-nums;line-height:18px}
nav button[aria-current="page"] .badge{background:var(--accent-soft);color:var(--accent)}
.whoami{margin-top:auto;display:flex;flex-direction:column;gap:4px;font-size:12.5px;padding:12px 8px 4px;border-top:1px solid var(--line)}
.whoami #who{font-weight:500;color:var(--fg)}
.who-links{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:12px}
.who-links a,.who-links .link{color:var(--muted);background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:none}
.who-links a:hover,.who-links .link:hover{color:var(--fg);text-decoration:underline}
.demo-note{display:none}

main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;height:48px;padding:0 max(28px,env(safe-area-inset-right,0px)) 0 28px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.crumb{color:var(--muted);font-size:12.5px}
.top-r{display:flex;gap:14px;align-items:center;font-size:12.5px;color:var(--muted)}
.sync{font-size:12px;color:var(--faint);display:inline-flex;align-items:center;gap:6px}
.sync::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-line)}
.sync[data-state=saving]::before{background:var(--warn)}
.sync[data-state=err]{color:var(--bad);font-weight:700}
.sync[data-state=err]::before{background:var(--bad)}
.wrap{width:100%;max-width:1200px;padding:24px 28px 72px;display:flex;flex-direction:column;gap:16px}

/* ページ見出し: タイトル＋1行の説明、右に操作 */
.wrap>div:first-child>h1,.card-h h1{font-size:20px}
.wrap>div:first-child .sub{max-width:72ch}
.eyebrow{display:none}
h2{font-size:15px}

/* 数字の帯: 1枚の面を区切って並べる */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);overflow:hidden}
.kpi{background:transparent;border:0;border-right:1px solid var(--line);padding:14px 18px;text-align:left;cursor:pointer;display:block;font-size:12.5px;color:var(--muted);transition:background-color .12s}
.kpi:last-child{border-right:0}
.kpi:hover{background:var(--subtle)}
.kpi small{color:var(--muted);font-size:12.5px;display:block;margin-bottom:2px}
.kpi b{font-size:26px;font-weight:700;color:var(--fg);line-height:1.25;letter-spacing:-.01em;margin-right:2px}
.kpi.alert b{color:var(--bad)}
.kpi .kpi-sub{display:block;margin-top:2px}
.row-list{display:flex;flex-direction:column}
.row-list>div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.row-list>div:first-child{border-top:0}

.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.toolbar input[type=search]{flex:1 1 240px;min-width:0;padding-left:32px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2389948f' stroke-width='1.6'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='m11 11 3.5 3.5'/%3E%3C/svg%3E") no-repeat 10px center}
.chips{display:flex;gap:4px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 11px;font-size:12.5px;color:var(--muted);transition:background-color .12s,border-color .12s}
.chip:hover{border-color:var(--line-strong);color:var(--fg)}
.chip[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent);font-weight:700}
.chip span{margin-left:5px;font-variant-numeric:tabular-nums;opacity:.85}

/* 表 */
table{min-width:720px}
td{vertical-align:top}
.who{display:flex;gap:10px;align-items:center}
.av{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:12.5px;flex:none}
.who button{background:none;border:0;padding:0;text-align:left;font-weight:700;color:var(--fg)}
.who button:hover{color:var(--accent);text-decoration:underline}
/* 表の中の選択欄は、普段は枠を消して文字に見せる */
td select,td .inp,.src-sel,table.yomi select.tint{border-color:transparent;background-color:transparent;min-height:30px;padding:4px 8px}
td select:hover,td .inp:hover{border-color:var(--line-strong);background-color:var(--surface)}
td select:focus,td .inp:focus{border-color:var(--accent);background-color:var(--surface)}
.stage-cell{display:flex;flex-direction:column;gap:2px;min-width:170px}
.next{font-size:12px;color:var(--muted)} .next b{color:var(--fg);font-weight:500}
.src-row{display:flex;align-items:center;gap:4px;margin-top:1px}
.src-sel{padding:0 4px!important;min-height:24px!important;font-size:12px;color:var(--muted)}

/* 選考ボード */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(232px,1fr);gap:10px;overflow-x:auto;padding-bottom:8px;max-width:100%}
.col{background:var(--subtle);border:1px solid var(--line);border-radius:var(--r-card);padding:8px;min-height:240px;display:flex;flex-direction:column;gap:6px}
.col h3{font-size:12.5px;font-weight:700;margin:2px 4px 4px;display:flex;justify-content:space-between;align-items:center;color:var(--fg)}
.col h3 span,.col h3 small{font-weight:500;color:var(--faint);font-variant-numeric:tabular-nums}
.col.drop{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)}
.kcard{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:grab;font-size:12.5px;color:var(--muted);line-height:1.55;transition:border-color .12s,box-shadow .12s}
.kcard:hover{border-color:var(--line-strong);box-shadow:0 2px 6px rgba(29,41,37,.06)}
.kcard b{display:block}
.kname{display:block;font-weight:700;font-size:13.5px;color:var(--fg);text-decoration:none;text-align:left;padding:0;background:none;border:0;margin-bottom:2px}
.kname:hover{color:var(--accent)}

.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.bar{height:8px;background:var(--sunk);border-radius:4px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent);border-radius:4px}
.fbar{height:8px;background:var(--sunk);border-radius:4px;overflow:hidden}
.fbar i{display:block;height:100%;background:var(--accent);border-radius:4px}
.task{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.task.done .t-title{text-decoration:line-through;color:var(--muted)}

/* 右から出る詳細 */
.drawer-bg{position:fixed;inset:0;background:rgba(20,28,25,.28);display:flex;justify-content:flex-end;z-index:20}
.drawer{background:var(--surface);width:min(560px,100%);height:100%;overflow-y:auto;padding:20px max(24px,env(safe-area-inset-right,0px)) 40px 24px;display:flex;flex-direction:column;gap:16px;border-left:1px solid var(--line);box-shadow:var(--shadow-pop)}
.drawer.reg{width:min(760px,100%)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto}
.tabs button{border:0;background:none;padding:8px 12px;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--muted);font-size:13.5px;white-space:nowrap}
.tabs button:hover{color:var(--fg)}
.tabs button[aria-selected="true"]{color:var(--fg);border-color:var(--accent);font-weight:700}
dl{display:grid;grid-template-columns:112px 1fr;gap:10px 14px;margin:0;font-size:13.5px}
dt{color:var(--muted)} dd{margin:0}
.form{display:grid;gap:12px}
.form label{display:grid;gap:4px;font-size:12.5px;color:var(--muted)}
.form textarea{min-height:84px}
.post{border-top:1px solid var(--line);padding:14px 0}
.post:first-child{border-top:0}

.vbars{display:flex;align-items:flex-end;gap:10px;height:170px;padding-top:10px;border-bottom:1px solid var(--line)}
.vbars div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%}
.vbars i{width:60%;max-width:44px;background:var(--accent);border-radius:4px 4px 0 0;display:block}
.vbars span{font-size:11px;color:var(--muted)}
.vbars.two .pair{flex:none;flex-direction:row;height:auto;align-items:flex-end;gap:3px;width:60%;justify-content:center}
.vbars.two .pair i{width:50%}
.vbars i.paid,.key.k2{background:var(--accent-line)}
.key{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--accent);margin:0 4px 0 8px;vertical-align:-1px}

/* 担当者の色分け（ヨミ管理）: 淡い4色。濃い塗りは使わない */
:root{--t0:#e9f3ed;--t0f:#2d6a50;--t1:#f8f0e0;--t1f:#7a5418;--t2:#ecf1f8;--t2f:#2f4f80;--t3:#f3edf4;--t3f:#6b3d70;--ra:#f8f0e0;--raf:#7a5418;--rc:#ecf1f8;--rcf:#2f4f80}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--t0:#1f3328;--t0f:#8fd3ad;--t1:#3a2e1a;--t1f:#e6bd7c;--t2:#1f2a3d;--t2f:#9db8e8;--t3:#352238;--t3f:#d8a8dc;--ra:#3d2f12;--raf:#f0c869;--rc:#1f2a3d;--rcf:#9db8e8}}
:root[data-theme="dark"]{--t0:#1f3328;--t0f:#8fd3ad;--t1:#3a2e1a;--t1f:#e6bd7c;--t2:#1f2a3d;--t2f:#9db8e8;--t3:#352238;--t3f:#d8a8dc;--ra:#3d2f12;--raf:#f0c869;--rc:#1f2a3d;--rcf:#9db8e8}
.ca-t0{background:var(--t0)!important;color:var(--t0f)!important}.ca-t1{background:var(--t1)!important;color:var(--t1f)!important}.ca-t2{background:var(--t2)!important;color:var(--t2f)!important}.ca-t3{background:var(--t3)!important;color:var(--t3f)!important}
.ca-chip{display:inline-block;border:0;border-radius:var(--r-tag);padding:3px 10px;font-weight:700;margin-right:10px;white-space:nowrap;font-size:13px}
table.yomi{min-width:980px}
table.yomi td{vertical-align:middle}
table.yomi tr.grp td{background:var(--subtle);padding:10px 12px}
table.yomi tr.accepted td{background:var(--accent-soft)}
table.yomi select.tint{font-weight:500}
.cos{display:flex;flex-direction:column;gap:2px;color:var(--fg);font-size:13px;max-width:220px}
.cos small{font-size:11px}
.rank{width:76px;font-weight:700;border-color:transparent}
.rank-A{background:var(--accent-soft)!important;color:var(--accent)}.rank-B{background:var(--ra)!important;color:var(--raf)}.rank-C{background:var(--rc)!important;color:var(--rcf)}
.amt{text-align:right;width:130px}
table.ptbl{min-width:780px}
table.ptbl tr.late td{background:var(--bad-soft)}
table.ptbl td:nth-child(2){max-width:240px;font-size:13px}
.pname{border:0;background:none;padding:0;font-weight:700;color:var(--fg);text-align:left}
.pname:hover{color:var(--accent);text-decoration:underline}
.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:220px}
.rates{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.rates label{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px}
.rate-in{display:flex;align-items:center;gap:6px}.rate-in input{width:80px;text-align:right}
.rate-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;min-width:0}
.rate-top{display:flex;justify-content:space-between;align-items:center;gap:6px;font-weight:700}
.rate-card .x{border:0;background:transparent;color:var(--muted);border-radius:6px;padding:0 6px;font-size:13px}
.rate-card .x.confirm{background:var(--bad);color:#fff;font-size:12px}
.rate-card.add{border-style:dashed;background:transparent}
.timeline{list-style:none;margin:12px 0 0;padding:0 0 0 16px;border-left:1px solid var(--line-strong);display:flex;flex-direction:column;gap:14px}
.timeline li{position:relative}
.timeline li::before{content:"";position:absolute;left:-21px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--surface);border:2px solid var(--accent)}
.timeline p{margin:2px 0 0}
.tl-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn.del{color:var(--muted)}.btn.del.confirm{background:var(--bad);border-color:var(--bad);color:#fff}

/* 登録フォーム（社内の詳しい登録） */
fieldset{border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px 16px;margin:0;min-width:0}
legend{font-weight:700;padding:0 6px;font-size:13.5px;color:var(--fg)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.fgrid .wide{grid-column:1/-1}
.fgrid label{display:grid;gap:4px;font-size:12.5px;color:var(--muted);min-width:0}
.fgrid label .inp,.fgrid label select,.fgrid textarea{width:100%;color:var(--fg)}
.fgrid em,.reg-foot em{font-style:normal;color:var(--bad);font-size:11px;margin-left:4px}
.lbl{display:block;font-size:12.5px;color:var(--muted);margin-bottom:4px}
.checks{display:flex;flex-wrap:wrap;gap:8px 16px}
.prio-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
label.prio{display:flex!important;align-items:center;gap:8px}
label.prio select{flex:1;min-width:0}
.rank-no{font-weight:700;color:var(--accent);width:2.4em;flex:none;font-variant-numeric:tabular-nums}
.prio-chip{display:inline-block;background:var(--accent-soft);color:var(--accent);border-radius:var(--r-tag);padding:0 8px;font-size:12px;margin:0 4px 4px 0}
label.check{display:flex!important;align-items:center;gap:6px;color:var(--fg)!important;font-size:13px}
.ref-box{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:10px;padding:12px 14px;display:grid;gap:8px}
.consent{background:var(--subtle);border:1px solid var(--line);border-radius:var(--r-ctl);padding:10px 12px}
.reg-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;position:sticky;bottom:-40px;background:var(--surface);padding:12px 0 40px;border-top:1px solid var(--line)}
table.itbl{min-width:720px}table.itbl tr.grp td{background:var(--subtle)}
table.btbl{min-width:1080px}table.btbl td{vertical-align:middle}

/* 求職者に渡す入力画面（スマホの枠で見せる） */
#overlay{position:fixed;inset:0;z-index:25}
.ov-bg{position:absolute;inset:0;background:rgba(20,28,25,.45);display:flex;align-items:center;justify-content:center;padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}
.phone{background:var(--surface);width:min(430px,100%);height:min(860px,100%);border-radius:20px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.25)}
.phone.done-msg{height:auto;padding:28px;gap:12px;text-align:center;align-items:center}
.ph-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);color:var(--muted)}
.ph-scroll{flex:1;overflow-y:auto}
.ph-head{padding:16px 18px 12px;display:grid;gap:6px;border-bottom:1px solid var(--line)}
.ph-head .eyebrow{display:block;font-size:12px;color:var(--muted);font-weight:500;letter-spacing:0}
.ph-head p{margin:0}
.steps{display:flex;gap:4px;overflow-x:auto;padding-top:4px}
.step{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:12px;white-space:nowrap}
.step.done{color:var(--ok);border-color:var(--accent-line)}.step.on{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}
.prog{height:3px;background:var(--sunk);border-radius:3px;overflow:hidden}.prog i{display:block;height:100%;background:var(--accent)}
.ph-body{padding:16px 18px 24px;display:grid;gap:12px}
.ph-body h3{margin:0}
.ff{display:grid;gap:4px;font-size:12.5px;color:var(--muted);min-width:0}
.ff .inp,.ff textarea,.ff select{width:100%;color:var(--fg)}
.ff em{font-style:normal;color:var(--bad);font-size:11px}
.ff small{color:var(--faint)}
.frow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.seg{display:flex;gap:12px;flex-wrap:wrap;color:var(--fg);font-size:13.5px;padding-top:4px}
.seg label{display:flex;align-items:center;gap:6px;color:var(--fg)}
.fhelp{margin:0;font-size:12.5px;color:var(--muted)}
.rowin{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:6px;align-items:center}
.rowin .x,.x{border:1px solid var(--line);background:var(--surface);border-radius:6px;width:28px;height:28px;color:var(--muted)}
.jobcard{border:1px solid var(--line);border-radius:var(--r-card);padding:12px;display:grid;gap:10px}
.jc-h{display:flex;justify-content:space-between}
.ph-foot{display:flex;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--line);background:var(--surface)}
.ph-foot .btn{min-width:110px}
.warnbox{background:var(--bad-soft);color:var(--bad);border-radius:10px;padding:10px 14px;font-size:13px}.warnbox ul{margin:6px 0 0;padding-left:18px}
.okbox{background:var(--ok-soft);color:var(--ok);border-radius:10px;padding:10px 14px;font-size:13px}
dl.confirm{grid-template-columns:70px 1fr;font-size:13px}
.doc-status{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.linkbox{display:grid;gap:8px;border:1px solid var(--line);background:var(--subtle);border-radius:10px;padding:12px 14px}
.linkbox .inp{flex:1 1 200px;min-width:0}
.doc-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.doc-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-card);padding:16px;display:grid;gap:4px;text-align:left;transition:border-color .12s}
.doc-card:hover{border-color:var(--accent)}
.docwin{background:var(--subtle);width:min(900px,100%);height:100%;border-radius:14px;display:flex;flex-direction:column;overflow:hidden}
.doc-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:10px 16px 0;background:var(--surface);border-bottom:1px solid var(--line)}
.doc-bar .tabs{border:0}.doc-bar .toolbar{padding-bottom:8px}
.doc-note{margin:8px 16px 0}
.doc-scroll{flex:1;overflow:auto;padding:16px 16px 30px}
/* 印刷用の書類（履歴書・職務経歴書）は紙のまま */
.paper{background:#fff;color:#1d1d1d;width:100%;max-width:760px;min-width:600px;margin:0 auto;padding:36px 40px;box-shadow:0 1px 4px rgba(0,0,0,.1);border:1px solid #e5e5e5;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:12.5px;line-height:1.7}
.paper .p-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:10px}
.paper h1{font-size:24px;margin:0;letter-spacing:.2em;font-family:inherit}
.paper .p-top span{text-align:right;font-size:12px}
.paper table{width:100%;min-width:0;border-collapse:collapse;margin-bottom:10px}
.paper tbody tr:hover td{background:#fff}
.paper td,.paper th{border:1px solid #333;padding:5px 8px;vertical-align:top;background:#fff;color:#1d1d1d;font-weight:400;font-size:12.5px}
.paper th{background:#f3f3f3}
.paper .lab{background:#f7f7f7;width:90px;font-size:11.5px;white-space:nowrap}
.paper .big{font-size:20px;letter-spacing:.1em}
.paper .photo{width:110px;text-align:center;vertical-align:middle;color:#888;border-style:dashed}
.paper .c{text-align:center;width:52px}.paper .ctr{text-align:center}.paper .r{text-align:right}
.paper .hist td:first-child{width:52px}.paper .hist td:nth-child(2){width:36px}
.paper .pre{white-space:pre-wrap}
.paper .fam td{white-space:nowrap}
.paper h4{margin:16px 0 6px;font-size:13.5px;font-family:inherit}
.paper p{margin:0 0 6px}
.paper [contenteditable]{outline:1px dashed #b33;outline-offset:3px;border-radius:2px}
.sk-co{margin-bottom:12px}.sk-h{display:flex;justify-content:space-between;border-bottom:1px solid #333;padding-bottom:2px;margin-bottom:4px}
.sk-meta{font-size:11.5px;margin-bottom:6px}
.paper .sk td:first-child{width:96px}
.achv{margin-top:6px}

/* やること: 種類は小さな文字ラベル、期限切れは日付だけ赤 */
.todo .chips{margin-bottom:6px}
.td-g{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin:18px 0 2px;font-weight:700}
.td-g span{background:var(--sunk);border-radius:var(--r-tag);padding:0 6px;font-weight:500;font-variant-numeric:tabular-nums}
.td-g.bad{color:var(--bad)}
.td-g.bad span{background:var(--bad-soft)}
.td-row{display:grid;grid-template-columns:96px minmax(0,1fr) 84px auto;gap:14px;align-items:center;padding:10px 6px;border-top:1px solid var(--line);border-radius:0;transition:background-color .12s}
.td-row:hover{background:var(--subtle)}
.td-row.late{background:transparent}
.td-row.late:hover{background:var(--subtle)}
.td-kind{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap;background:none!important}
.td-kind::before{content:"";width:7px;height:7px;border-radius:2px;background:var(--line-strong);flex:none}
.k-task::before{background:#6b8fc4}.k-partner::before{background:#c79a4a}.k-meet::before,.k-cal::before{background:var(--accent)}
.k-info::before,.k-form::before{background:#a585b0}.k-revive::before{background:#c79a4a}.k-yomi::before{background:var(--accent)}
.k-bill::before{background:var(--bad)}.k-pay::before{background:#c79a4a}
.td-title{font-weight:500}
.td-title .link{font-weight:700}
.td-date{font-size:12.5px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.td-row.late .td-date{color:var(--bad);font-weight:700}
.td-act{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap;align-items:center}
.td-act .btn{min-height:28px;padding:3px 10px;font-size:12.5px}
.td-act label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px}

/* カレンダー連携 */
.cal-rule{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:10px;font-size:14px}
.cal-rule span{border-radius:var(--r-tag);padding:4px 10px;font-weight:700;border:1px solid var(--line)}
.cr-b{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)!important}.cr-n{background:var(--surface);color:var(--fg)}.cr-s{color:var(--muted);padding:4px 2px!important;border:0!important}.cr-c{background:var(--subtle);color:var(--muted)}
table.ktbl{min-width:560px}table.ktbl td{vertical-align:middle}
table.ktbl tr.off td{opacity:.55}
.kw-add{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.kw-add .inp{flex:1 1 200px;min-width:0}
.parse{margin-top:10px;border-radius:10px;padding:12px 14px;border:1px solid var(--line)}
.parse.ok{background:var(--ok-soft);border-color:var(--accent-line)}.parse.ok b{color:var(--ok)}
.parse.ng{background:var(--subtle)}.parse.ng b{color:var(--bad)}
.parse dl{margin-top:8px;grid-template-columns:90px 1fr}.parse p{margin:4px 0 0}
.sd{display:flex;flex-wrap:wrap;gap:3px 8px;font-size:11.5px;color:var(--muted)}
.sd small{width:100%;color:var(--ok)}

/* 応募 */
.sec-h{font-size:13.5px;margin:4px 0 8px;display:flex;gap:8px;align-items:center}
.app-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px 0;border-top:1px solid var(--line)}
.app-main b{margin-right:6px}
.app-ctl{display:flex;flex-direction:column;gap:6px;align-items:flex-end;text-align:right}
.app-ctl label{display:flex;gap:6px;align-items:center}
.form.apply{border-top:1px solid var(--line);padding-top:14px}
.ap-box{display:grid;gap:8px;border:1px solid var(--line);background:var(--subtle);border-radius:10px;padding:12px 14px}
.ap-box.ok{background:var(--ok-soft);border-color:var(--accent-line)}
.pick{display:grid;gap:6px}
.pick-row{display:flex!important;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;color:var(--fg)!important}
.pick-row:hover{border-color:var(--accent-line);background:var(--subtle)}
.pick-row input{margin-top:4px}
.pick-row span{display:grid;gap:2px}

/* 日報 */
.rp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.rp-nums{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.rp-nums span{border:1px solid var(--line);border-radius:var(--r-tag);padding:2px 10px;font-size:12.5px;display:flex;gap:8px;align-items:baseline}
.rp-txt{margin-top:6px}.rp-txt p{margin:0;white-space:pre-wrap}
.pv-box{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;border:1px solid var(--line);background:var(--subtle);border-radius:10px;padding:10px}
.pv{border-radius:6px;padding:2px 9px;font-size:12.5px;background:var(--surface);border:1px solid var(--line)}
.pv.t{border-style:dashed}

.conflict{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(520px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--bad);border-radius:var(--r-card);padding:16px 18px;box-shadow:var(--shadow-pop);z-index:100}
.conflict p{margin:6px 0 12px;font-size:13px}

@media (max-width:640px){
  .phone{border-radius:14px}.docwin{border-radius:10px}
  .td-row{grid-template-columns:auto minmax(0,1fr);gap:4px 10px}.td-date{text-align:left;grid-column:2}.td-act{grid-column:1/-1;justify-content:flex-start}
  .app-row{grid-template-columns:1fr}.app-ctl{align-items:flex-start;text-align:left}
  .kpi{border-right:0;border-bottom:1px solid var(--line)}
}
@media (max-width:820px){
  .app{grid-template-columns:1fr}
  aside{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:12px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));gap:10px}
  aside .brand{padding:0}
  .co-name{padding:0}
  nav{flex-direction:row;overflow-x:auto;gap:2px;margin:0 -4px;padding:0 4px 2px}
  nav button{white-space:nowrap;min-height:32px}
  
  .whoami{margin-top:0;padding:8px 0 0;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center}
  .top{position:static;padding:0 16px;height:40px}
  .wrap{padding:16px 16px 56px}
}

/* 表の列: 名前・日付・金額は折り返さない */
td:first-child{white-space:nowrap}
td:first-child .clamp,td:first-child .cos{white-space:normal}
td input[type=date],td input[type=month]{width:148px}
td .num,td.num,td[style*="text-align:right"]{white-space:nowrap}
.wrap>div:first-child .sub,.card-h .sub{max-width:96ch}
table.btbl td:nth-child(2),table.ptbl td:nth-child(2){min-width:180px}
td input[type=date],td input[type=month]{width:140px;padding-right:4px}
.col{min-height:calc(100vh - 210px)}
table.ptbl tr.late td{background:transparent}
.grid2 table,.card .grid2 table{min-width:0}
input[type=file]{font-size:13px;color:var(--muted)}
input[type=file]::file-selector-button{font:inherit;font-weight:500;color:var(--fg);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:6px 14px;margin-right:12px;cursor:pointer}
input[type=file]::file-selector-button:hover{background:var(--hover)}

/* 選考ボードのカード（Folk型: 名前・企業・担当、下に次の予定） */
.col{background:transparent;border:0;padding:0;gap:8px}
.col h3{margin:0 0 4px;padding:6px 8px;background:var(--subtle);border:1px solid var(--line);border-radius:var(--r-ctl)}
.col h3 .badge{background:var(--surface)}
.kcard{padding:0;display:flex;flex-direction:column}
.kcard .kname{padding:10px 12px 0}
.kco{padding:0 12px;color:var(--muted)}
.kown{display:flex;align-items:center;gap:6px;padding:6px 12px 10px;color:var(--muted)}
.av.sm{width:18px;height:18px;font-size:10px}
.knext{display:block;border-top:1px solid var(--line);padding:7px 12px 8px;font-size:11.5px;color:var(--muted)}
.knext i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--faint);margin-right:6px;vertical-align:1px}
.knext b{display:block;font-weight:500;color:var(--fg);font-size:12px;margin-top:1px}
.knext.late{color:var(--bad)}.knext.late i{background:var(--bad)}
.knext.today{color:var(--warn)}.knext.today i{background:#d49a2a}
.knext.later i{background:var(--accent)}
table.yomi td:nth-child(3){min-width:190px}
table.yomi td:first-child,table.yomi td:nth-child(2){white-space:nowrap}
