:root{
  --bg:#f4f1ea; --panel:#fffdf8; --ink:#25211a; --muted:#8a8272; --line:#e6e0d3;
  --brand:#b4741f; --brand-ink:#8a5713; --accent:#2f6f4f; --danger:#c0492f;
  --chip:#efe9dc; --shadow:0 1px 2px rgba(60,50,30,.06),0 6px 20px rgba(60,50,30,.06);
  --radius:14px;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#1a1712;--panel:#241f18;--ink:#efe8da;--muted:#9d9481;
    --line:#372f24;--brand:#e0a24e;--brand-ink:#e9b466;--accent:#5fb98a;--danger:#e0715a;
    --chip:#322a1f;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.28);}
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;line-height:1.5}
.hidden{display:none!important}
button{font-family:inherit;cursor:pointer}
a{color:var(--brand-ink)}

/* buttons */
.btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:8px 14px;border-radius:10px;font-size:14px;font-weight:600;transition:.12s;white-space:nowrap}
.btn:hover{border-color:var(--brand)}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-primary:hover{filter:brightness(1.05)}
.btn-ghost{background:transparent;border-color:transparent}
.btn-ghost:hover{background:var(--chip);border-color:transparent}
.btn-sm{padding:5px 10px;font-size:13px}
.btn-lg{padding:13px 24px;font-size:16px}
.btn-block{width:100%}
.btn-danger{color:var(--danger)}
.btn-danger:hover{border-color:var(--danger)}

/* gate */
.gate{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(120% 120% at 50% 0%,#fbf7ee,var(--bg));padding:24px}
.gate-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:40px 34px;max-width:420px;text-align:center}
.gate .logo{font-size:30px;margin-bottom:10px}
.gate-sub{color:var(--muted);margin:14px 0 26px;font-size:15px}
.gate-mini{color:var(--muted);font-size:12px;margin-top:14px}

/* topbar */
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--line)}
.brand{font-weight:800;font-size:18px;display:flex;align-items:center;gap:7px}
.brand span{letter-spacing:-.3px}
.search-wrap{flex:1;display:flex;gap:6px;max-width:520px;margin:0 auto}
.search-wrap input{flex:1;padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:14px}
.search-wrap input:focus{outline:none;border-color:var(--brand)}
.me{display:flex;align-items:center;gap:8px}
.me-name{font-size:13px;color:var(--muted);font-weight:600}

/* layout */
.layout{display:grid;grid-template-columns:280px 1fr;gap:0;min-height:calc(100vh - 57px)}
.sidebar{border-right:1px solid var(--line);padding:16px;overflow-y:auto;background:var(--panel)}
.sidebar .btn-block{margin-bottom:14px}
.main{padding:24px;overflow-y:auto}

/* task list grouped by category */
.cat-group{margin-bottom:16px}
.cat-head{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:4px 6px;display:flex;justify-content:space-between}
.cat-head .cnt{opacity:.7}
.task-item{padding:10px 12px;border-radius:10px;cursor:pointer;border:1px solid transparent;margin-bottom:4px}
.task-item:hover{background:var(--chip)}
.task-item.active{background:var(--chip);border-color:var(--brand)}
.task-item .t-title{font-weight:700;font-size:14px;display:flex;align-items:center;gap:6px}
.task-item .t-meta{font-size:12px;color:var(--muted);margin-top:3px;display:flex;gap:10px}
.mini-bar{height:4px;border-radius:3px;background:var(--line);margin-top:7px;overflow:hidden}
.mini-bar>i{display:block;height:100%;background:var(--accent)}

/* empty */
.empty{text-align:center;color:var(--muted);padding:80px 20px}
.empty-emoji{font-size:52px;margin-bottom:12px}

/* detail */
.detail{max-width:860px;margin:0 auto}
.d-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:6px}
.d-title{font-size:24px;font-weight:800;flex:1;border:1px solid transparent;border-radius:8px;padding:2px 6px;margin:-2px -6px}
.d-title:focus{outline:none;border-color:var(--line);background:var(--panel)}
.d-cat{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--brand-ink);background:var(--chip);padding:4px 10px;border-radius:999px;font-weight:700;border:none;cursor:pointer}
.d-sub{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:13px;margin-bottom:18px;flex-wrap:wrap}
.progress{flex:1;min-width:160px;display:flex;align-items:center;gap:8px}
.progress .bar{flex:1;height:8px;border-radius:5px;background:var(--line);overflow:hidden}
.progress .bar>i{display:block;height:100%;background:var(--accent);transition:width .3s}

.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}
.card h3{margin:0 0 12px;font-size:15px;display:flex;align-items:center;gap:8px}
.card h3 .sp{flex:1}

/* dropzone */
.dropzone{border:2px dashed var(--line);border-radius:12px;padding:22px;text-align:center;color:var(--muted);font-size:14px;transition:.15s;cursor:pointer}
.dropzone.drag{border-color:var(--brand);background:var(--chip);color:var(--ink)}
/* 드롭 가능 범위 = 파일 카드 + 바깥 여유 28px. 그 안에 들어왔을 때만 테두리로 알려준다 */
.card.drop-near{outline:2px dashed var(--brand);outline-offset:8px}
/* 밖으로 끌어내 내려받는 중인 파일 */
.fx-row.dragging-out,.fx-item.dragging-out{opacity:.5}
/* 하단 상태줄 — 이 폴더 항목 수 / 선택 개수 (탐색기 스타일) */
.fx-status{position:sticky;bottom:0;margin-top:6px;padding:7px 10px;border-top:1px solid var(--line);
  background:var(--panel);font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-status.on{color:var(--ink);font-weight:600}

/* files */
.file{display:flex;align-items:center;gap:12px;padding:10px 8px;border-bottom:1px solid var(--line)}
.file:last-child{border-bottom:none}
.file .fi{font-size:22px;width:30px;text-align:center}
.file .fbody{flex:1;min-width:0}
.file .fname{font-weight:600;font-size:14px;word-break:break-all}
.file .fsum{font-size:12.5px;color:var(--muted);margin-top:2px}
.file .ftags{margin-top:5px;display:flex;gap:5px;flex-wrap:wrap}
.tag{font-size:11px;background:var(--chip);color:var(--brand-ink);padding:2px 8px;border-radius:999px;font-weight:600}
.file .fact{display:flex;gap:4px}

/* todos */
.todo{display:flex;align-items:center;gap:10px;padding:7px 4px}
.todo input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}
.todo .tx{flex:1;font-size:14px}
.todo .tx.done{text-decoration:line-through;color:var(--muted)}
.todo-add{display:flex;gap:8px;margin-top:8px}
.todo-add input{flex:1;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink)}

/* brief / card text */
textarea.brief{width:100%;min-height:90px;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--bg);color:var(--ink);font-size:14px;resize:vertical;font-family:inherit}
.codebox{background:#1e1b16;color:#e9e2d2;border-radius:10px;padding:14px;font:12.5px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-all;max-height:340px;overflow:auto}
@media (prefers-color-scheme:dark){.codebox{background:#100e0a}}

/* search panel */
.search-panel .answer{background:var(--chip);border-radius:12px;padding:14px 16px;font-size:14px;margin-bottom:14px;white-space:pre-wrap}

/* toast */
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:#25211a;color:#fff;padding:11px 18px;border-radius:10px;font-size:14px;z-index:100;box-shadow:0 8px 30px rgba(0,0,0,.25);max-width:90vw}
@media (prefers-color-scheme:dark){.toast{background:#3a3226}}

.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
.muted{color:var(--muted)}
.small{font-size:12.5px}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(30,25,15,.4);display:grid;place-items:center;z-index:50;padding:20px}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:24px;max-width:420px;width:100%}
.modal h3{margin:0 0 14px}
.modal input,.modal select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:15px;margin-bottom:12px}
.modal .row-end{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}

@media (max-width:820px){
  .layout{grid-template-columns:1fr}
  .sidebar{border-right:none;border-bottom:1px solid var(--line);max-height:40vh}
  .search-wrap{order:3;max-width:none;flex-basis:100%}
  .topbar{flex-wrap:wrap}
}

/* ---- 창고 전환 / 채팅 어시스턴트 / 작업 보고 ---- */
.wh-switch{border:1px solid var(--line);border-radius:10px;padding:6px 8px;background:var(--panel);color:var(--ink);font-size:13px;font-weight:600;max-width:150px}
.chatbar{position:fixed;top:64px;right:12px;bottom:12px;width:min(360px,calc(100vw - 24px));background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;z-index:45;overflow:hidden}
.chat-head{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line)}
.chat-head .sp{flex:1}
.chat-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.chat-b{max-width:88%;padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
.chat-b.user{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:4px}
.chat-b.ai{align-self:flex-start;background:var(--chip);color:var(--ink);border-bottom-left-radius:4px}
.chat-acts{display:flex;flex-wrap:wrap;gap:6px;align-self:flex-start;max-width:88%}
.chat-hint{align-self:center;text-align:center}
.chat-input{display:flex;gap:6px;padding:10px;border-top:1px solid var(--line)}
.chat-input input{flex:1;border:1px solid var(--line);border-radius:10px;padding:8px 11px;background:var(--bg);color:var(--ink);font-size:14px;min-width:0}
.report{display:flex;gap:10px;padding:9px 4px;border-bottom:1px dashed var(--line);font-size:13px}
.report:last-child{border-bottom:none}
.report .rtime{color:var(--muted,#8a8172);white-space:nowrap}
.report .rprog{background:var(--chip);border-radius:999px;padding:1px 8px;font-weight:700;white-space:nowrap;height:fit-content}

/* ---- 파일 목록 폴더 그룹 ---- */
.fgroup-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 6px 4px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;user-select:none}
.fgroup-head:hover{color:var(--ink)}
.fgroup-head .cnt{font-weight:600;background:var(--chip);border-radius:999px;padding:1px 8px;font-size:11px}
.fgroup-body{margin-left:8px;border-left:2px solid var(--line);padding-left:8px}

/* ===== 2026-07-26 재구축: 텍스트 라벨·트리·공유·업로드 진행바 ===== */
/* 파일 종류 텍스트 칩 (이모지 대신) */
.ftype{flex:none;min-width:42px;text-align:center;font-size:11px;font-weight:700;color:var(--brand-ink);
  background:var(--chip);border:1px solid var(--line);border-radius:7px;padding:3px 6px}

/* 사이드바 섹션 제목 */
.side-sec{font-size:11.5px;font-weight:800;letter-spacing:.06em;color:var(--muted);
  text-transform:uppercase;padding:10px 8px 4px;border-bottom:1px solid var(--line);margin-bottom:4px}

/* 파일 "⋯" 메뉴 */
.fmenu{position:absolute;right:0;top:100%;z-index:60;background:var(--panel);border:1px solid var(--line);
  border-radius:10px;box-shadow:var(--shadow);min-width:150px;padding:4px;display:flex;flex-direction:column}
.fmenu button{display:block;width:100%;text-align:left;background:none;border:none;padding:8px 12px;
  font-size:13.5px;border-radius:7px;color:var(--ink)}
.fmenu button:hover{background:var(--chip)}
.fmenu button.danger{color:var(--danger)}
.fmenu-btn{font-weight:800;letter-spacing:.1em}

/* 다단 파일 트리 */
.fgroup-head.ftree{border-left:2px solid var(--line)}
.fgroup-head.recent{color:var(--brand-ink);border-left:3px solid var(--brand)}

/* 검색 하이라이트 */
.hl{animation:hlpulse 2.4s ease-out;border-radius:8px}
@keyframes hlpulse{0%{background:var(--brand);color:#fff}25%{background:color-mix(in srgb,var(--brand) 30%,transparent)}100%{background:transparent}}
/* 검색으로 찾은 파일 — 오래 남는 강한 표시 */
.hl-found{outline:2px solid var(--brand);outline-offset:2px;border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 18%,transparent)}
/* 검색 결과 UI */
.s-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.s-filters{display:flex;gap:6px}
.s-filters .chip{font-size:12px;padding:4px 10px;border:1px solid var(--line);border-radius:99px;background:var(--panel);color:var(--muted);cursor:pointer}
.s-filters .chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.s-row .s-loc{font-size:12px;color:var(--brand-ink);margin:2px 0;font-weight:600}
.s-row .s-snip{font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.s-row .s-snip mark{background:color-mix(in srgb,var(--brand) 32%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.tag-c{background:var(--brand);color:#fff}

/* 업로드 진행바 */
.up-progress{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:120;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);
  padding:10px 16px;display:flex;align-items:center;gap:10px;min-width:280px}
.up-bar{flex:1;height:8px;background:var(--chip);border-radius:99px;overflow:hidden}
.up-bar i{display:block;height:100%;width:0;background:var(--brand);border-radius:99px;transition:width .15s}
.up-progress span{font-size:12.5px;font-weight:700;color:var(--brand-ink);white-space:nowrap}

/* 공유 관리 행 */
.share-row{display:flex;align-items:center;gap:6px;padding:8px 0;border-bottom:1px solid var(--line)}
.share-row:last-child{border-bottom:none}

/* 셀렉트 공통 */
.s-sel{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--panel);color:var(--ink);font-size:13.5px;font-family:inherit}
.danger{color:var(--danger)}

/* ===== 공유 페이지 (/p) ===== */
.pbody{background:var(--bg)}
.ptop{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--panel)}
.ptop .brand{font-weight:800;font-size:16px}
.pperm{font-size:12px;font-weight:700;color:var(--accent);background:var(--chip);padding:3px 10px;border-radius:99px}
.pwrap{max-width:760px;margin:20px auto;padding:0 14px}
.pwrap .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:14px}
.pcard{max-width:400px;margin:60px auto}
.pcard h2{margin:0 0 8px;font-size:19px}
.pcard input{width:100%;margin:10px 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:15px}
.phead{display:flex;align-items:flex-start;gap:10px}
.phead h1{margin:0;font-size:21px}
.pbrief{white-space:pre-wrap;background:var(--chip);border-radius:10px;padding:10px 14px;font-size:13.5px;margin-top:10px}
.pnotice{font-size:12.5px;color:var(--brand-ink);margin-top:10px}
.pfoot{text-align:center;margin:26px 0}

/* ===== 윈도우 탐색기식 파일뷰어 ===== */
.fx-bar{display:flex;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px solid var(--line);margin-bottom:2px}
.fx-crumbs{font-size:13.5px;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.fx-crumbs a{color:var(--brand-ink);text-decoration:none;padding:2px 4px;border-radius:6px}
.fx-crumbs a:hover{background:var(--chip)}
/* 자세히 보기 (행) */
.fx-row{display:grid;grid-template-columns:32px minmax(0,1fr) 58px 78px 88px auto;align-items:center;gap:8px;
  padding:6px 8px;border-bottom:1px solid var(--line);border-radius:8px;user-select:none}
.fx-row:hover{background:var(--chip)}
.fx-row.sel{background:color-mix(in srgb,var(--brand) 18%,transparent);outline:1px solid var(--brand)}
.fx-row.fx-head{font-size:12px;color:var(--muted);font-weight:700;border-bottom:2px solid var(--line);border-radius:0}
.fx-row.fx-head:hover{background:transparent}
.fx-sort{cursor:pointer}
.fx-sort:hover{color:var(--brand-ink)}
.fx-folder{cursor:pointer}
.fx-recent{grid-template-columns:32px minmax(0,1fr) auto}
.fx-ic{display:flex;align-items:center;justify-content:center}
.fx-ic .icf{width:24px;height:24px}
.fx-name{font-size:14px;font-weight:600;word-break:break-all;min-width:0}
.fx-name .fsum{font-weight:400}
.fx-type{font-size:12px;color:var(--muted);white-space:nowrap}
.fx-size{font-size:12.5px;color:var(--muted);white-space:nowrap;text-align:right}
.fx-date{font-size:12px;color:var(--muted);white-space:nowrap}
.fx-act{display:flex;gap:2px;justify-content:flex-end}
/* 아이콘 보기 (격자) */
.fx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:4px;padding:8px 0;user-select:none}
.fx-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 6px 9px;border-radius:10px;cursor:pointer;text-align:center;border:1px solid transparent}
.fx-item:hover{background:var(--chip)}
.fx-item.sel{background:color-mix(in srgb,var(--brand) 18%,transparent);border-color:var(--brand)}
.fx-item .icf{width:46px;height:46px}
/* 아이콘 보기 이미지 썸네일 — 자리(46px)는 아이콘과 같게 두고 그림만 채운다 */
.fx-thumb{width:46px;height:46px;flex:none;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--chip)}
.fx-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.fx-label{font-size:12.5px;font-weight:600;word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}
.fx-sub{font-size:11px;color:var(--muted)}
/* 고정 위치 컨텍스트 메뉴 (오른쪽클릭) */
.fmenu-fixed{position:fixed;left:0;top:0;z-index:200}
.fmenu button:disabled{color:var(--muted);cursor:default}
.fmenu button:disabled:hover{background:none}
@media (max-width:760px){
  .fx-row{grid-template-columns:30px minmax(0,1fr) auto}
  .fx-type,.fx-size,.fx-date{display:none}
  .fx-row.fx-head .fx-type,.fx-row.fx-head .fx-size,.fx-row.fx-head .fx-date{display:none}
}
.fmenu-fixed{right:auto;bottom:auto}

/* 체크박스 선택 + 드래그 박스 선택 */
.fx-row{grid-template-columns:22px 32px minmax(0,1fr) 58px 78px 88px auto}
.fx-recent{grid-template-columns:32px minmax(0,1fr) auto}
.fx-chkc{display:flex;align-items:center;justify-content:center}
.fx-chk{width:15px;height:15px;accent-color:var(--brand);cursor:pointer;margin:0}
.fx-item{position:relative}
.fx-chk-ic{position:absolute;top:6px;left:6px;opacity:0;transition:opacity .12s}
.fx-item:hover .fx-chk-ic,.fx-item.sel .fx-chk-ic,.fx-chk-ic:checked{opacity:1}
.fx-lasso{position:fixed;z-index:150;border:1px solid var(--brand);background:color-mix(in srgb,var(--brand) 14%,transparent);pointer-events:none;border-radius:2px}
@media (max-width:760px){
  .fx-row{grid-template-columns:22px 30px minmax(0,1fr) auto}
  .fx-recent{grid-template-columns:30px minmax(0,1fr) auto}
}

/* 파일 미리보기 팝업 */
.pv-modal{width:min(880px,94vw);max-width:min(880px,94vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}
.pv-wrap{overflow:auto;text-align:center;max-height:62vh;background:var(--chip);border-radius:8px}
.pv-wrap img{max-width:100%;height:auto;display:block;margin:0 auto}
.pv-frame{width:100%;height:62vh;border:1px solid var(--line);border-radius:8px;background:#fff}
.pv-text{overflow:auto;max-height:62vh;background:var(--chip);padding:12px 14px;border-radius:8px;font-size:12.5px;line-height:1.55;white-space:pre-wrap;word-break:break-all;margin:0}
.pv-none{text-align:center;padding:34px 10px}
.pv-none .icf{width:64px;height:64px}

/* 업무일지 */
.jr-row{display:grid;grid-template-columns:58px minmax(0,2fr) 66px 36px minmax(0,1.2fr) 56px 30px;gap:8px;align-items:center;padding:6px 6px;border-bottom:1px solid var(--line);font-size:13.5px}
.jr-row.jr-head{font-size:11.5px;color:var(--muted);font-weight:700;border-bottom:2px solid var(--line)}
.jr-done{text-decoration:line-through;color:var(--muted)}
.jr-add{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.jr-add input{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--bg);color:var(--ink);font-size:13.5px;font-family:inherit;flex:1;min-width:80px}
.chip{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700;cursor:pointer;margin-left:4px}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
@media (max-width:760px){.jr-row{grid-template-columns:52px minmax(0,1fr) 36px 30px}.jr-row .small.muted:nth-child(3),.jr-row span:nth-child(5),.jr-row span:nth-child(6){display:none}.jr-row.jr-head span:nth-child(3),.jr-row.jr-head span:nth-child(5),.jr-row.jr-head span:nth-child(6){display:none}}
/* 정보탭 항목 */
.inf-item{border-bottom:1px solid var(--line);padding:4px 0}
.inf-item:last-child{border-bottom:none}
.inf-item input.inf-t{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--bg);color:var(--ink);font-size:13.5px;font-family:inherit}

/* 잠금 자물쇠 오버레이 */
.fx-ic{position:relative}
.fx-ic .lki{position:absolute;left:50%;top:50%;width:13px;height:13px;transform:translate(-50%,-50%);filter:drop-shadow(0 0 1.5px rgba(255,255,255,.9))}
.lk-grid{position:absolute;left:50%;top:33px;transform:translate(-50%,-50%);pointer-events:none}
.lk-grid .lki{width:20px;height:20px;display:block;filter:drop-shadow(0 0 2px rgba(255,255,255,.9))}
/* 클립보드 상태 */
.cuting{opacity:.45}
.clipstat{font-size:12px;font-weight:700;color:var(--brand-ink);background:var(--chip);padding:3px 10px;border-radius:99px;white-space:nowrap}


/* ═══ 일정·마감 (종합 업무비서) ═══ */
.sched-panel{position:fixed;right:16px;bottom:16px;top:70px;width:min(400px,92vw);background:#fff;border:1px solid #dde3ea;border-radius:14px;box-shadow:0 12px 40px rgba(20,40,70,.18);z-index:60;display:flex;flex-direction:column;overflow:hidden}
.sched-head{display:flex;align-items:center;gap:6px;padding:12px 10px;border-bottom:1px solid #eef1f5;font-size:14px;flex-wrap:nowrap}
.sched-head b{white-space:nowrap}
.sched-head .btn{white-space:nowrap;padding:5px 8px;font-size:12px}
.sched-add{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid #eef1f5;flex-wrap:wrap}
.sched-add input{flex:1;min-width:120px;border:1px solid #dde3ea;border-radius:8px;padding:8px 10px;font-size:13px}
.sched-add #sched-due{flex:none;width:170px}
.sched-list{flex:1;overflow-y:auto;padding:8px 12px}
.sched-g{font-size:11.5px;font-weight:800;color:#8a94a3;margin:10px 2px 4px}
.sched-g.red{color:#d64545}
.sched-i{display:flex;align-items:flex-start;gap:8px;padding:7px 6px;border-radius:8px;font-size:13.5px;line-height:1.45}
.sched-i:hover{background:#f5f7fa}
.sched-i.done{color:#9aa3ae;text-decoration:line-through}
.sched-i .when{flex:none;color:#6b7684;font-size:12px;width:88px;padding-top:1px}
.sched-i.over .when{color:#d64545;font-weight:700}
.sched-i .del{flex:none;border:0;background:none;color:#c2c9d2;cursor:pointer;font-size:13px}
.sched-i .del:hover{color:#d64545}
.sched-i input[type=checkbox]{margin-top:3px}
.sched-hint{padding:9px 14px;border-top:1px solid #eef1f5;font-size:12px;color:#8a94a3}
.sched-badge{display:inline-block;min-width:18px;padding:1px 6px;border-radius:9px;background:#d64545;color:#fff;font-size:11px;font-weight:800;margin-left:4px}
.sched-badge.hidden{display:none}
.brief-bar{margin:0 0 10px;padding:10px 14px;border:1px solid #ffe1b8;background:#fff8ec;border-radius:10px;font-size:13px;line-height:1.6;color:#7a5b16}
.brief-bar b{color:#b4720b}


/* ═══ 비서 모달 (회의록 추출·문서 초안) ═══ */
.as-modal{position:fixed;inset:0;background:rgba(15,25,40,.45);z-index:80;display:flex;align-items:center;justify-content:center;padding:16px}
.as-modal.hidden{display:none}
.as-box{background:#fff;border-radius:14px;width:min(640px,96vw);max-height:88vh;display:flex;flex-direction:column;padding:14px 16px;gap:10px;overflow:auto}
.as-head{display:flex;align-items:center;gap:8px;font-size:15px}
.as-box textarea,.as-box input,.as-box select{border:1px solid #dde3ea;border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit}
.as-row{display:flex;align-items:center;gap:8px}
.as-out{border:1px solid #eef1f5;border-radius:10px;padding:10px 12px;font-size:13px;max-height:44vh;overflow:auto;background:#fafbfc}
.as-out.hidden{display:none}
.as-row.hidden{display:none}
.as-out .eg{font-size:11.5px;font-weight:800;color:#8a94a3;margin:6px 0 2px}
.as-out label{display:flex;gap:7px;align-items:flex-start;padding:3px 0;font-size:13px;line-height:1.5}
.pro-bar{margin:0 0 10px;padding:9px 14px;border:1px solid #cfe1ff;background:#f2f7ff;border-radius:10px;font-size:12.5px;color:#2a5aa5}


/* ═══ 게이트 기능 소개 + 모바일 (3단계) ═══ */
.gate-feats{text-align:left;margin:14px auto 6px;max-width:340px;font-size:13px;line-height:1.6;color:#5b6776;display:flex;flex-direction:column;gap:7px}
.gate-feats b{color:#2b3a4d}
.sched-i .edit{flex:none;border:0;background:none;color:#c2c9d2;cursor:pointer;font-size:12px}
.sched-i .edit:hover{color:#1565c0}
#sched-rep{border:1px solid #dde3ea;border-radius:8px;padding:8px 6px;font-size:12.5px}
@media (max-width:600px){
  .sched-panel{left:8px;right:8px;top:auto;bottom:8px;height:78vh;width:auto}
  .sched-add #sched-due{width:100%}
  .as-box{max-height:92vh}
}

/* ---- 업무 상세 탭 (파일/일정/메모) · 주간 일정 · 메모 (2026-09-05) ---- */
.d-tabs{display:flex;gap:4px;margin:-6px 0 16px;border-bottom:1px solid var(--line)}
.d-tab{border:none;background:none;padding:9px 14px;font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:8px 8px 0 0}
.d-tab:hover{color:var(--ink);background:var(--chip)}
.d-tab.on{color:var(--brand-ink);border-bottom-color:var(--brand)}
.wk-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.wk-day{border:1px solid var(--line);border-radius:10px;min-height:120px;padding:6px;background:var(--panel);font-size:12.5px}
.wk-day.wkend{background:var(--chip)}
.wk-day.today{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.wk-head{font-weight:800;margin-bottom:6px;display:flex;justify-content:space-between;color:var(--muted)}
.wk-day.today .wk-head{color:var(--brand-ink)}
.wk-item{display:flex;gap:4px;align-items:flex-start;padding:3px 2px;border-radius:6px;line-height:1.35;cursor:pointer}
.wk-item:hover{background:var(--chip)}
.wk-item input{margin:2px 0 0;flex:none}
.wk-item .wk-body{flex:1;min-width:0;word-break:break-word}
.wk-item .wk-time{font-weight:700;color:var(--brand-ink)}
.wk-item.done .wk-body{text-decoration:line-through;color:var(--muted)}
.wk-add{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.wk-add input,.wk-add select{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;background:var(--panel);color:var(--ink)}
.wk-add #wk-title{flex:1;min-width:140px}
.note{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--panel)}
.note.pinned{border-color:var(--brand)}
.note-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:14px;flex-wrap:wrap}
.note-head .sp{flex:1}
.note-body{white-space:pre-wrap;word-break:break-word;font-size:13.5px;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'Malgun Gothic',monospace;tab-size:8;overflow-x:auto}
.modal select{border:1px solid var(--line);border-radius:8px;padding:8px 6px;font-size:13px;background:var(--panel);color:var(--ink)}
@media (max-width:820px){
  .wk-grid{grid-template-columns:1fr}
  .wk-day{min-height:0}
  .d-tab{padding:8px 10px;font-size:13px}
}
/* 메모 카테고리 + 항목 표 */
.memo-title{flex:1;min-width:120px;border:1px solid transparent;border-radius:6px;padding:4px 6px;font-weight:800;font-size:14px;background:transparent;color:var(--ink)}
.memo-title:hover{border-color:var(--line)}
.memo-title:focus{border-color:var(--brand);background:var(--panel);outline:none}
.memo-row{display:grid;grid-template-columns:minmax(110px,1fr) 2fr auto auto;gap:6px;align-items:center;margin-bottom:4px}
.memo-row input{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:13px;background:var(--panel);color:var(--ink);min-width:0}
.memo-row input:focus{outline:none;border-color:var(--brand)}
.memo-row .mv{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'Malgun Gothic',monospace}
.memo-row .btn-sm{padding:4px 8px}
@media (max-width:820px){ .memo-row{grid-template-columns:1fr 1fr auto auto} }
/* 서류 발급 · 메일 · 회사 정보 모달 (2026-09-05) */
.modal.wide{max-width:780px}
.modal label.small{display:block;margin:0 0 4px}
.modal .row{align-items:flex-end}
.iss-row{display:grid;grid-template-columns:2fr 1fr 70px 110px 90px auto;gap:6px;align-items:center;margin-bottom:6px}
.iss-row input{margin:0;padding:7px 9px;font-size:13.5px}
.iss-row .i-sum{text-align:right}
@media (max-width:820px){ .iss-row{grid-template-columns:1fr 1fr;} .iss-row .i-sum{grid-column:1/2} .modal .row{flex-direction:column;align-items:stretch} }
