/* 대디스팜 팀 대시보드 - 메인 스타일시트 */
:root{
  --primary:#1A6BCC;--primary-d:#135299;--primary-l:#EBF3FC;--primary-m:#B8D4F5;
  --g:#1D9E75;--gd:#085041;--gl:#E8F6F1;--gm:#9FE1CB;
  --p:#6B62D4;--pd:#3C3489;--pl:#EEECFD;
  --c:#D85A30;--cd:#712B13;--cl:#FDF0EB;
  --a:#B07210;--ad:#7A4E08;--al:#FDF3E0;
  --teal:#0D7A8A;--tl:#E3F6F9;
  --red:#CC2B2B;--rl:#FDEAEA;
  --bg:#F5F6F8;--bg2:#ECEEF2;--bg3:#DDE0E6;
  --card:#FFFFFF;
  --nav-bg:#FFFFFF;
  --tx:#1A1C21;--t2:#52576B;--t3:#9298AD;
  --br:#DDE0E6;--br2:#C8CDD9;
  --r:4px;--rl:6px;--nav-h:56px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Noto Sans KR',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;line-height:1.55;}
button,input,select,textarea{font-family:'Noto Sans KR',sans-serif;font-size:13px;}

/* ── NAV ── */
.nav{background:var(--nav-bg);position:sticky;top:0;z-index:200;border-bottom:1px solid var(--br);box-shadow:0 1px 3px rgba(0,0,0,.05);}
.nav-inner{max-width:1280px;margin:0 auto;padding:0 24px;height:var(--nav-h);display:flex;align-items:center;gap:16px;}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.logo-ico{width:32px;height:32px;background:var(--primary);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:15px;}
.logo-text{display:flex;flex-direction:column;}
.logo-name{font-size:15px;font-weight:700;letter-spacing:-.3px;color:var(--tx);}
.logo-yr{font-size:9px;color:var(--t3);letter-spacing:.5px;margin-top:1px;}
.nav-divider{width:1px;height:22px;background:var(--br);flex-shrink:0;}
.mnav{display:flex;gap:1px;flex:1;justify-content:center;flex-wrap:wrap;}
.mb{font-size:13px;font-weight:500;padding:6px 14px;border-radius:var(--r);border:1px solid transparent;background:transparent;color:var(--t2);cursor:pointer;transition:all .12s;}
.mb:hover{background:var(--primary-l);color:var(--primary);}
.mb.on{background:var(--primary);color:#fff;font-weight:600;}
.tabs{display:flex;gap:4px;flex-shrink:0;}
.tab{font-size:12px;font-weight:500;padding:6px 14px;border-radius:var(--r);border:1px solid var(--br);background:#fff;color:var(--t2);cursor:pointer;transition:all .12s;white-space:nowrap;}
.tab:hover{border-color:var(--primary-m);color:var(--primary);}
.tab.on{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600;}

/* ── SYNC BAR ── */
.sync-bar{background:#EBF3FC;border-bottom:1px solid #C8D9F0;}
.sync-bar-inner{max-width:1280px;margin:0 auto;padding:6px 24px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.sync-badge{font-size:11px;font-weight:600;padding:3px 10px;border-radius:10px;}
.sb-idle   {background:#E8ECF5;color:#6B7399;}
.sb-syncing{background:#FFF3CD;color:#7A5200;}
.sb-ok     {background:#E4F5EC;color:#1A6B3C;}
.sb-error  {background:#FDEAEA;color:#8B1C1C;}
.sync-primary-actions{display:flex;gap:6px;align-items:center;}
.presence-list{display:none;width:100%;order:8;align-items:center;gap:8px;flex-wrap:wrap;background:#FFF8E6;border:1px solid #D99416;border-left:4px solid #B07210;border-radius:6px;padding:8px 10px;box-shadow:0 2px 8px rgba(176,114,16,.12);}
.presence-title{font-size:12px;font-weight:800;color:#7A4E08;margin-right:2px;white-space:nowrap;}
.presence-chip{font-size:12px;font-weight:800;color:#5E3B05;background:#fff;border:1px solid #E8C77E;border-radius:4px;padding:5px 9px;white-space:nowrap;box-shadow:0 1px 2px rgba(122,78,8,.08);}
.sync-actions{display:flex;gap:6px;margin-left:auto;}
.user-chip{font-size:11px;font-weight:600;color:#1A4E8C;background:#fff;border:1px solid #C8D9F0;border-radius:4px;padding:4px 9px;white-space:nowrap;}
.sync-link{font-size:11px;font-weight:700;color:#1A6BCC;background:#fff;border:1px solid #C8D9F0;border-radius:4px;padding:4px 9px;text-decoration:none;white-space:nowrap;}
.sync-link:hover{background:#EBF3FC;}
.sync-btn{font-size:11px;font-weight:600;padding:4px 11px;border-radius:4px;border:1px solid #C8D9F0;background:#fff;color:#1A6BCC;cursor:pointer;transition:all .12s;}
.sync-btn:hover{background:#EBF3FC;}
.sync-btn.share-toggle{border-color:#9CC3F2;background:#fff;color:#135299;}
.share-menu{position:relative;display:inline-flex;}
.share-panel{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:260;min-width:132px;background:#fff;border:1px solid var(--br2);border-radius:6px;box-shadow:0 8px 24px rgba(26,31,44,.14);padding:5px;}
.share-menu.open .share-panel{display:flex;flex-direction:column;gap:3px;}
.share-panel button{width:100%;text-align:left;font-size:12px;font-weight:700;border:none;border-radius:4px;background:#fff;color:var(--tx);padding:8px 10px;cursor:pointer;white-space:nowrap;}
.share-panel button:hover{background:var(--primary-l);color:var(--primary);}
.share-panel button.kakao{background:#FFE812;color:#3B1F00;}
.share-panel button.kakao:hover{background:#F7DC00;color:#3B1F00;}
.sync-btn.danger{border-color:#F5BDBD;color:#8B1C1C;}
.sync-btn.danger:hover{background:#FDEAEA;}
.sync-error{display:none;font-size:11px;color:#8B1C1C;background:#FDEAEA;border:1px solid #F5BDBD;border-radius:4px;padding:4px 10px;}

/* ── AUTH / ADMIN ── */
.auth-page,.select-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 18px;background:linear-gradient(180deg,#F5F6F8 0%,#E9EEF5 100%);}
.auth-card,.select-panel{width:100%;max-width:420px;background:#fff;border:1px solid var(--br);border-radius:8px;padding:28px;box-shadow:0 12px 34px rgba(26,31,44,.08);}
.auth-card.wide{max-width:620px;}
.auth-card.recovery-card{max-width:920px;}
.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.auth-card h1,.select-panel h1,.admin-top h1{font-size:24px;font-weight:700;letter-spacing:-.4px;margin-bottom:6px;}
.muted{font-size:13px;color:var(--t2);line-height:1.6;margin-bottom:18px;}
.muted-inline{font-size:11px;color:var(--t3);}
.auth-form,.admin-form{display:flex;flex-direction:column;gap:12px;}
.auth-form label,.admin-form label{display:flex;flex-direction:column;gap:6px;}
.auth-form label span,.admin-form label span,.check-group>span{font-size:10px;color:var(--t2);font-weight:700;letter-spacing:.5px;text-transform:uppercase;}
.auth-form input,.auth-form select,.admin-form input,.admin-form select{width:100%;font-size:13px;padding:9px 11px;border:1px solid var(--br2);border-radius:var(--r);background:#fff;color:var(--tx);outline:none;}
.auth-form input:focus,.auth-form select:focus,.admin-form input:focus,.admin-form select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,107,204,.12);}
.admin-form em,.check-row em{font-size:11px;color:var(--t3);font-style:normal;}
.primary-btn{width:100%;font-size:13px;font-weight:700;padding:10px 14px;border-radius:var(--r);border:none;background:var(--primary);color:#fff;cursor:pointer;text-align:center;text-decoration:none;}
.primary-btn:hover{background:var(--primary-d);}
.primary-btn.as-link{display:inline-flex;width:auto;padding:9px 16px;}
.plain-btn{font-size:12px;font-weight:700;padding:7px 12px;border-radius:var(--r);border:1px solid var(--br);background:#fff;color:var(--t2);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;}
.plain-btn.primary{border-color:var(--primary);color:var(--primary);}
.plain-btn:hover{background:var(--primary-l);border-color:var(--primary-m);color:var(--primary);}
.setup-link{display:block;margin-top:14px;text-align:center;font-size:12px;color:var(--primary);font-weight:600;text-decoration:none;}
.setup-link:hover{text-decoration:underline;}
.form-error,.form-success{border-radius:var(--r);padding:10px 12px;font-size:12px;font-weight:600;margin-bottom:14px;}
.form-error{background:var(--rl);border:1px solid #F5BDBD;color:#8B1C1C;}
.form-success{background:var(--gl);border:1px solid #A8DFC6;color:var(--gd);}
.form-row{display:grid;gap:10px;}
.form-row.two{grid-template-columns:1fr 1fr;}
.recovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;}
.recovery-panel{border:1px solid var(--br);border-radius:8px;background:#FAFBFC;padding:16px;}
.recovery-panel h2{font-size:16px;font-weight:800;margin-bottom:12px;}
.recovery-verify{margin-top:14px;padding-top:14px;border-top:1px solid var(--br);}
.recovery-result{display:flex;flex-direction:column;gap:7px;border:1px solid #A8DFC6;background:#E8F6F1;color:var(--gd);border-radius:var(--r);padding:10px 12px;margin-bottom:12px;}
.recovery-result strong{font-size:12px;}
.recovery-result span{font-size:14px;font-weight:800;}
.recovery-result em{font-size:11px;color:var(--t2);font-style:normal;margin-left:4px;font-weight:600;}
.select-panel{max-width:860px;}
.select-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;border-bottom:1px solid var(--br);padding-bottom:14px;}
.eyebrow{font-size:10px;font-weight:800;color:var(--primary);letter-spacing:1.2px;text-transform:uppercase;}
.select-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.company-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.company-card{display:flex;flex-direction:column;gap:5px;border:1px solid var(--br);border-radius:6px;padding:16px;text-decoration:none;color:var(--tx);background:#FAFBFC;transition:all .12s;}
.company-card:hover{border-color:var(--primary);box-shadow:0 3px 12px rgba(26,107,204,.1);background:#fff;}
.company-card.is-off{opacity:.55;}
.company-name{font-size:16px;font-weight:700;}
.company-url{font-size:11px;color:var(--primary);font-family:'DM Mono',monospace;word-break:break-all;}
.company-status{font-size:10px;color:var(--t3);font-weight:700;text-transform:uppercase;}
.empty-state{padding:24px;border:1px dashed var(--br2);border-radius:6px;text-align:center;color:var(--t2);}
.admin-top{background:#fff;border-bottom:1px solid var(--br);box-shadow:0 1px 3px rgba(0,0,0,.04);}
.admin-top-inner{max-width:1280px;margin:0 auto;padding:22px 24px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;}
.admin-shell{max-width:1280px;margin:0 auto;padding:24px 24px 72px;}
.admin-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:14px;margin-bottom:14px;}
.admin-panel{background:#fff;border:1px solid var(--br);border-radius:8px;padding:18px;}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--br);}
.panel-head h2{font-size:16px;font-weight:700;letter-spacing:-.2px;}
.panel-count{font-size:11px;font-weight:700;color:var(--t3);background:var(--bg2);border-radius:12px;padding:3px 9px;}
.text-link,.danger-link{font-size:12px;font-weight:700;border:none;background:none;padding:0;cursor:pointer;text-decoration:none;}
.text-link{color:var(--primary);}
.danger-link{color:var(--red);}
.text-link:hover,.danger-link:hover{text-decoration:underline;}
.check-group{display:flex;flex-direction:column;gap:7px;border:1px solid var(--br);border-radius:var(--r);padding:10px;background:#FAFBFC;}
.check-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-size:12px;color:var(--tx);}
.check-row input{width:auto!important;}
.table-panel{margin-bottom:14px;padding:0;overflow:hidden;}
.table-panel .panel-head{margin:0;padding:14px 18px;}
.table-wrap{overflow-x:auto;}
.admin-table{width:100%;border-collapse:collapse;font-size:12px;}
.admin-table th{background:#FAFBFC;color:var(--t2);font-size:10px;letter-spacing:.5px;text-transform:uppercase;text-align:left;padding:10px 14px;border-bottom:1px solid var(--br);}
.admin-table td{padding:11px 14px;border-bottom:1px solid var(--br);vertical-align:middle;}
.admin-table tr:last-child td{border-bottom:none;}
.admin-table a{color:var(--primary);font-weight:600;text-decoration:none;}
.admin-table a:hover{text-decoration:underline;}
.status-pill{display:inline-flex;padding:3px 8px;border-radius:12px;font-size:10px;font-weight:800;white-space:nowrap;}
.status-pill.ok{background:var(--gl);color:var(--gd);}
.status-pill.off{background:var(--bg2);color:var(--t2);}
.actions-cell{display:flex;gap:10px;align-items:center;white-space:nowrap;}
.actions-cell form{display:inline;}

/* ── PAGE ── */
.page{max-width:1280px;margin:0 auto;padding:24px 24px 72px;}

/* ── MONTH HDR ── */
.mhdr{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px;padding-bottom:14px;border-bottom:2px solid var(--primary);flex-wrap:wrap;gap:12px;}
.mhdr-l{display:flex;flex-direction:column;gap:3px;}
.mhdr-eyebrow{font-size:10px;font-weight:700;color:var(--primary);letter-spacing:1.2px;text-transform:uppercase;}
.mhdr-mo{font-size:28px;font-weight:700;letter-spacing:-.5px;color:var(--tx);line-height:1.15;display:flex;align-items:baseline;gap:12px;}
.mhdr-season-tag{font-size:13px;color:var(--t3);font-weight:500;}
.mhdr-r{display:flex;align-items:center;gap:12px;}
.kpi-row{display:flex;align-items:center;gap:0;border:1px solid var(--br);border-radius:var(--rl);overflow:hidden;background:#fff;}
.kpi-sep{width:1px;height:100%;background:var(--br);align-self:stretch;}
.kpi-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 20px;}
.kpi-val{font-size:22px;font-weight:700;font-family:'DM Mono',monospace;line-height:1;}
.kpi-lbl{font-size:9px;color:var(--t3);font-weight:700;letter-spacing:.5px;text-transform:uppercase;}
.kv-g{color:var(--g);}
.kv-p{color:var(--p);}
.kv-dark{color:var(--primary);}
.ico-btn{font-size:12px;font-weight:500;padding:6px 12px;border-radius:var(--r);border:1px solid var(--br);background:#fff;color:var(--t2);cursor:pointer;transition:all .12s;}
.ico-btn:hover{border-color:var(--br2);background:var(--bg2);}
.ico-btn.danger:hover{background:var(--rl);color:var(--red);border-color:var(--red);}

/* ── THEME BANNER ── */
.theme-banner{background:#fff;border:1px solid var(--br);border-radius:var(--rl);display:grid;grid-template-columns:1fr 1fr 1fr;margin-bottom:16px;overflow:hidden;}
.th-col{padding:16px 22px;border-right:1px solid var(--br);}
.th-col:first-child{border-left:4px solid var(--primary);}
.th-col:nth-child(2){border-left:4px solid var(--p);}
.th-col:last-child{border-right:none;border-left:4px solid var(--a);}
.th-lbl{font-size:9px;color:var(--t3);letter-spacing:.6px;text-transform:uppercase;font-weight:700;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;}
.th-edit-btn{font-size:11px;color:var(--primary);cursor:pointer;background:none;border:none;padding:0;font-weight:600;}
.th-edit-btn:hover{text-decoration:underline;}
.th-val{font-size:15px;font-weight:600;line-height:1.3;color:var(--tx);}
.tv-g{color:var(--gd);}
.tv-p{color:var(--pd);}
.tv-a{color:var(--ad);}
.th-input{width:100%;font-size:15px;border:none;border-bottom:2px solid var(--primary);background:transparent;color:var(--tx);outline:none;padding:2px 0;font-weight:600;}

/* ── SECTION ── */
.sec{background:#fff;border:1px solid var(--br);border-radius:var(--rl);overflow:hidden;margin-bottom:14px;}
.sec-hdr{padding:11px 16px;border-bottom:1px solid var(--br);display:flex;align-items:center;justify-content:space-between;background:#fff;}
.sec-hdr.amber{background:#FFFBF0;border-bottom-color:#F5DFA0;}
.sec-hdr.green{background:#F0FAF6;border-bottom-color:#A8DFC6;}
.sec-hdr.purple{background:#F5F3FE;border-bottom-color:#C5BEF5;}
.sec-ttl{font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px;}
.sec-ttl::before{content:'';display:inline-block;width:3px;height:14px;border-radius:2px;}
.sec-hdr.amber .sec-ttl::before{background:var(--a);}
.sec-hdr.green .sec-ttl::before{background:var(--g);}
.sec-hdr.purple .sec-ttl::before{background:var(--p);}
.sec-hdr:not(.amber):not(.green):not(.purple) .sec-ttl::before{background:var(--primary);}
.sec-ttl.amber{color:var(--ad);}
.sec-ttl.green{color:var(--gd);}
.sec-ttl.purple{color:var(--pd);}
.sec-hint{font-size:11px;color:var(--t3);}

/* ── ISSUE COLS ── */
.issue-cols{display:grid;grid-template-columns:repeat(3,1fr);}
.icol{padding:12px 16px;border-right:1px solid var(--br);}
.icol:last-child{border-right:none;}
.icol-lbl{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:700;color:var(--t3);letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px;}
.idot{width:6px;height:6px;border-radius:50%;}
.idot-g{background:var(--g);}
.idot-p{background:var(--p);}
.idot-c{background:var(--c);}
.itag{display:flex;align-items:center;justify-content:space-between;padding:5px 9px;border-radius:var(--r);margin-bottom:4px;font-size:12px;font-weight:500;border:1px solid transparent;}
.it-g{background:var(--gl);color:var(--gd);border-color:#A8DFC6;}
.it-p{background:var(--pl);color:var(--pd);border-color:#C5BEF5;}
.it-c{background:var(--cl);color:var(--cd);border-color:#F5C4B3;}
.idel{background:none;border:none;cursor:pointer;font-size:10px;color:var(--t3);opacity:.4;padding:0 2px;flex-shrink:0;}
.idel:hover{opacity:1;}

/* ── MEMO GRID ── */
.memo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px;}
.mc{background:#fff;border:1px solid var(--br);border-radius:var(--rl);overflow:hidden;}
.mc-hdr{padding:10px 14px;border-bottom:1px solid var(--br);display:flex;align-items:center;gap:7px;}
.mc-hdr.req{background:var(--primary-l);border-bottom-color:var(--primary-m);}
.mc-hdr.del{background:var(--rl);border-bottom-color:#F5C4B3;}
.mc-hdr.cus{background:var(--pl);border-bottom-color:#C5BEF5;}
.mc-ico{font-size:14px;}
.mc-ttl{font-size:12px;font-weight:700;flex:1;}
.mc-cnt{font-size:10px;background:rgba(0,0,0,.06);padding:2px 7px;border-radius:10px;color:var(--t2);font-weight:600;}
.mc-body{padding:6px 14px;}
.mi-item{display:flex;align-items:flex-start;gap:7px;padding:6px 0;border-bottom:1px solid var(--br);}
.mi-item:last-of-type{border-bottom:none;}
.mi-item.done .mi-txt{text-decoration:line-through;color:var(--t3);}
.mck{width:15px;height:15px;border-radius:3px;border:1.5px solid var(--br2);flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:9px;color:#fff;transition:all .12s;margin-top:2px;}
.mck.ck-b{background:var(--primary);border-color:var(--primary);}
.mck.ck-c{background:var(--c);border-color:var(--c);}
.mck.ck-p{background:var(--p);border-color:var(--p);}
.mi-txt{font-size:12px;flex:1;line-height:1.45;word-break:break-all;}
.mi-del{background:none;border:none;cursor:pointer;font-size:10px;color:var(--t3);opacity:0;padding:0 1px;flex-shrink:0;}
.mi-item:hover .mi-del{opacity:1;}
.mc-add{display:flex;gap:5px;padding:7px 14px 11px;}

/* ── TASK BOARD ── */
.task-board{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.bcol{background:#fff;border:1px solid var(--br);border-radius:var(--rl);overflow:hidden;}
.bcol-hdr{padding:0;border-bottom:1px solid var(--br);display:flex;align-items:stretch;}
.bcol-hdr-accent{width:4px;flex-shrink:0;}
.accent-g{background:var(--g);}
.accent-p{background:var(--p);}
.bcol-hdr-inner{flex:1;padding:13px 16px 11px;display:flex;align-items:center;justify-content:space-between;background:#FAFBFC;}
.bcol-left{display:flex;flex-direction:column;gap:2px;}
.bcol-name{font-size:14px;font-weight:700;letter-spacing:-.2px;}
.bcol-sub{font-size:10px;color:var(--t3);font-weight:500;}
.bcol-right{display:flex;align-items:center;gap:8px;}
.padd-btn{font-size:11px;font-weight:500;padding:4px 10px;border-radius:var(--r);border:1px solid var(--br);background:#fff;color:var(--t2);cursor:pointer;transition:all .12s;}
.padd-btn:hover{border-color:var(--primary-m);color:var(--primary);background:var(--primary-l);}
.prog-block{display:flex;flex-direction:column;align-items:flex-end;gap:4px;}
.pnums{font-size:13px;font-weight:700;font-family:'DM Mono',monospace;}
.pdn-g{color:var(--g);}
.pdn-p{color:var(--p);}
.psp{color:var(--t3);margin:0 1px;font-weight:400;}
.ptot{color:var(--t3);font-weight:400;}
.pbar{height:4px;background:var(--bg2);border-radius:2px;width:66px;}
.pfill{height:100%;border-radius:2px;transition:width .35s;}
.pf-g{background:var(--g);}
.pf-p{background:var(--p);}

/* ── TASK GROUP ── */
.tg-wrap{border-bottom:1px solid var(--br);}
.tg-wrap:last-child{border-bottom:none;}
.tg-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px 4px;background:#FAFBFC;}
.tg-lbl{font-size:10px;font-weight:700;color:var(--primary);letter-spacing:.5px;text-transform:uppercase;}
.tg-add-btn{font-size:11px;font-weight:600;color:var(--primary);background:none;border:none;cursor:pointer;padding:0;}
.tg-add-btn:hover{text-decoration:underline;}

/* ── TASK ROW ── */
.trow{display:flex;align-items:center;gap:9px;padding:8px 16px;border-bottom:1px solid var(--br);transition:background .1s;user-select:none;}
.trow:last-child{border-bottom:none;}
.trow:hover{background:#F5F9FF;}
.trow.st-done{background:#F4FBF8;}
.trow.st-doing{background:#FFFDF5;}
.tck{width:16px;height:16px;border-radius:3px;border:1.5px solid var(--br2);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;color:#fff;transition:all .12s;cursor:pointer;}
.tck.ck-done{background:var(--g);border-color:var(--g);}
.tck.ck-doing{background:var(--al);border-color:var(--a);color:var(--ad);}
.tbody{display:flex;align-items:center;gap:7px;flex:1;min-width:0;}
.ttxt{font-size:12px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ttxt.x{text-decoration:line-through;color:var(--t3);}
.tbadge{font-size:10px;padding:2px 7px;border-radius:10px;flex-shrink:0;font-weight:600;}
.b-tl{background:var(--gl);color:var(--gd);}
.b-pu{background:var(--pl);color:var(--pd);}
.b-am{background:var(--al);color:var(--ad);}
.b-co{background:var(--cl);color:var(--cd);}
.b-bl{background:var(--primary-l);color:var(--primary-d);}
.b-gr{background:var(--bg2);color:var(--t2);}
.tsdot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.ts-todo{background:var(--br2);}
.ts-doing{background:var(--a);}
.ts-done{background:var(--g);}
.t-actions{display:flex;gap:3px;flex-shrink:0;}
.t-link-btn{font-size:12px;color:var(--primary);background:none;border:none;cursor:pointer;padding:0 2px;opacity:.6;}
.t-link-btn:hover{opacity:1;}
.t-del-btn{font-size:12px;color:var(--t3);background:none;border:none;cursor:pointer;padding:0 2px;opacity:0;}
.trow:hover .t-del-btn{opacity:.5;}
.t-del-btn:hover{opacity:1;color:var(--c);}
.t-link-chip{font-size:10px;background:var(--primary-l);color:var(--primary-d);border-radius:3px;padding:2px 6px;text-decoration:none;display:inline-flex;align-items:center;gap:2px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;}
.t-link-chip:hover{background:var(--primary);color:#fff;}

/* ── MODAL ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:500;display:flex;align-items:center;justify-content:center;}
.modal{background:#fff;border-radius:8px;padding:24px;width:400px;max-width:90vw;border:1px solid var(--br);box-shadow:0 8px 32px rgba(0,0,0,.12);}
.modal-title{font-size:15px;font-weight:700;margin-bottom:18px;color:var(--tx);}
.modal-label{font-size:10px;color:var(--t2);margin-bottom:5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;}
.modal-input{width:100%;font-size:13px;padding:9px 11px;border:1px solid var(--br2);border-radius:var(--r);background:#fff;color:var(--tx);outline:none;margin-bottom:12px;}
.modal-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,107,204,.12);}
.modal-btns{display:flex;gap:8px;justify-content:flex-end;}
.modal-cancel{font-size:12px;font-weight:500;padding:7px 16px;border-radius:var(--r);border:1px solid var(--br);background:#fff;color:var(--t2);cursor:pointer;}
.modal-cancel:hover{background:var(--bg2);}
.modal-ok{font-size:12px;font-weight:700;padding:7px 16px;border-radius:var(--r);border:none;background:var(--primary);color:#fff;cursor:pointer;}
.modal-ok:hover{background:var(--primary-d);}

/* ── CONTENT PHASES ── */
.phase-board{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:14px 16px;}
.phase-col{background:var(--bg);border:1px solid var(--br);border-radius:var(--r);overflow:hidden;}
.phase-hdr{padding:9px 12px;border-bottom:1px solid var(--br);display:flex;align-items:center;justify-content:space-between;}
.phase-name{font-size:11px;font-weight:700;letter-spacing:.2px;}
.phase-cnt{font-size:10px;background:rgba(0,0,0,.06);padding:1px 7px;border-radius:10px;color:var(--t2);font-weight:600;}
.ph-teal .phase-hdr{background:var(--gl);border-bottom-color:#A8DFC6;}
.ph-teal .phase-name{color:var(--gd);}
.ph-purple .phase-hdr{background:var(--pl);border-bottom-color:#C5BEF5;}
.ph-purple .phase-name{color:var(--pd);}
.ph-blue .phase-hdr{background:var(--primary-l);border-bottom-color:var(--primary-m);}
.ph-blue .phase-name{color:var(--primary-d);}
.phase-items{padding:6px 10px;}
.ph-item{display:flex;align-items:flex-start;gap:7px;padding:6px 0;border-bottom:1px solid var(--br);}
.ph-item:last-of-type{border-bottom:none;}
.ph-check{width:15px;height:15px;border-radius:3px;border:1.5px solid var(--br2);flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:9px;color:#fff;transition:all .12s;margin-top:1px;}
.ph-check.ph-ck-teal{background:var(--g);border-color:var(--g);}
.ph-check.ph-ck-purple{background:var(--p);border-color:var(--p);}
.ph-check.ph-ck-blue{background:var(--primary);border-color:var(--primary);}
.ph-body{flex:1;min-width:0;}
.ph-text{font-size:12px;color:var(--tx);line-height:1.45;}
.ph-text.done{text-decoration:line-through;color:var(--t3);}
.ph-link{font-size:10px;background:var(--primary-l);color:var(--primary-d);border-radius:3px;padding:2px 6px;text-decoration:none;display:inline-flex;align-items:center;gap:2px;margin-top:3px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;}
.ph-link:hover{background:var(--primary);color:#fff;}
.ph-actions{display:flex;gap:2px;flex-shrink:0;}
.ph-link-btn{font-size:12px;color:var(--primary);background:none;border:none;cursor:pointer;opacity:.5;}
.ph-link-btn:hover{opacity:1;}
.ph-del{font-size:12px;color:var(--t3);background:none;border:none;cursor:pointer;opacity:0;}
.ph-item:hover .ph-del{opacity:.5;}
.ph-del:hover{opacity:1;color:var(--c);}
.ph-add-row{display:flex;gap:5px;padding:7px 10px 10px;}

/* ── FEEDBACK ── */
.fb-grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--br);}
.fb-col{padding:12px 16px;border-right:1px solid var(--br);}
.fb-col:last-child{border-right:none;}
.fb-col-lbl{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;margin-bottom:9px;}
.fbl-g{color:var(--gd);}
.fbl-p{color:var(--pd);}
.fb-item{display:flex;align-items:flex-start;gap:7px;padding:6px 0;border-bottom:1px solid var(--br);}
.fb-item:last-of-type{border-bottom:none;}
.fb-from{font-size:10px;padding:2px 7px;border-radius:10px;flex-shrink:0;margin-top:1px;font-weight:700;white-space:nowrap;}
.from-client{background:var(--al);color:var(--ad);}
.from-sns{background:var(--gl);color:var(--gd);}
.from-design{background:var(--pl);color:var(--pd);}
.fb-txt{font-size:12px;flex:1;line-height:1.45;word-break:break-all;}
.fb-time{font-size:10px;color:var(--t3);flex-shrink:0;margin-top:2px;font-family:'DM Mono',monospace;}
.fb-del{background:none;border:none;cursor:pointer;font-size:10px;color:var(--t3);opacity:0;flex-shrink:0;}
.fb-item:hover .fb-del{opacity:1;}
.no-fb{font-size:12px;color:var(--t3);padding:14px 0;text-align:center;}
.fb-add-row{display:flex;gap:7px;padding:10px 16px;}
.fb-sel{font-size:12px;font-weight:500;padding:6px 10px;border:1px solid var(--br);border-radius:var(--r);background:#fff;color:var(--tx);outline:none;cursor:pointer;}
.fb-sel:focus{border-color:var(--primary);}
.fb-inp{flex:1;font-size:12px;padding:6px 10px;border:1px solid var(--br);border-radius:var(--r);background:#fff;color:var(--tx);outline:none;}
.fb-inp:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,107,204,.1);}
.fb-submit{font-size:12px;font-weight:700;padding:6px 16px;border-radius:var(--r);border:none;background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;}
.fb-submit:hover{background:var(--primary-d);}

/* ── REPORT ── */
.report-wrap{display:flex;flex-direction:column;gap:14px;}
.report-schedule{background:#fff;border:1px solid var(--primary-m);border-left:4px solid var(--primary);border-radius:var(--rl);padding:16px 18px;box-shadow:0 2px 10px rgba(26,107,204,.07);}
.report-schedule-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px;}
.report-schedule-title{font-size:15px;font-weight:800;color:var(--tx);}
.report-schedule-sub{font-size:12px;color:var(--t2);margin-top:2px;}
.report-switch{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:var(--primary);background:var(--primary-l);border:1px solid var(--primary-m);border-radius:16px;padding:5px 10px;cursor:pointer;}
.report-switch input{width:15px;height:15px;accent-color:var(--primary);}
.report-schedule-row{display:grid;grid-template-columns:minmax(160px,220px) minmax(110px,140px) 1fr auto;gap:12px;align-items:end;}
.report-schedule-row label{display:flex;flex-direction:column;gap:6px;}
.report-schedule-row label span{font-size:10px;color:var(--t2);font-weight:800;letter-spacing:.5px;text-transform:uppercase;}
.report-schedule-row input,.report-schedule-row select{width:100%;font-size:13px;padding:8px 10px;border:1px solid var(--br2);border-radius:var(--r);background:#fff;color:var(--tx);outline:none;}
.report-schedule-row input:focus,.report-schedule-row select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,107,204,.12);}
.report-recipient-summary{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding-bottom:2px;}
.report-recipient-summary span{font-size:11px;font-weight:800;color:var(--t2);background:#FAFBFC;border:1px solid var(--br);border-radius:12px;padding:4px 9px;}
.report-schedule-status{margin-top:10px;font-size:11px;font-weight:700;color:var(--t3);}
.report-schedule-status.ok{color:var(--gd);}
.report-schedule-status.warn{color:var(--ad);}
.report-schedule-status.err{color:var(--red);}
.report-schedule-error{margin-top:8px;font-size:11px;color:#8B1C1C;background:#FDEAEA;border:1px solid #F5BDBD;border-radius:4px;padding:7px 9px;}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.stat-card{background:#fff;border:1px solid var(--br);border-radius:var(--rl);padding:18px 20px;border-top:3px solid var(--br);}
.stat-card:nth-child(1){border-top-color:var(--g);}
.stat-card:nth-child(2){border-top-color:var(--p);}
.stat-card:nth-child(3){border-top-color:var(--primary);}
.stat-card:nth-child(4){border-top-color:var(--t3);}
.stat-n{font-size:32px;font-weight:700;font-family:'DM Mono',monospace;letter-spacing:-.5px;line-height:1;}
.stat-l{font-size:10px;color:var(--t3);margin-top:6px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;}
.sn-g{color:var(--g);}
.sn-p{color:var(--p);}
.sn-a{color:var(--primary);}
.sn-gy{color:var(--t2);}
.report-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.rcol{background:#fff;border:1px solid var(--br);border-radius:var(--rl);overflow:hidden;}
.rcol-hdr{padding:11px 16px;border-bottom:1px solid var(--br);display:flex;align-items:center;gap:7px;background:#FAFBFC;}
.rcol-title{font-size:14px;font-weight:700;flex:1;}
.rcol-pct{font-size:11px;font-weight:700;padding:3px 9px;border-radius:10px;}
.rp-g{background:var(--gl);color:var(--gd);}
.rp-p{background:var(--pl);color:var(--pd);}
.ri{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--br);}
.ri:last-child{border-bottom:none;}
.ri-st{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.ri-txt{font-size:12px;flex:1;}
.ri-b{font-size:10px;padding:2px 7px;border-radius:10px;font-weight:700;}
.ri-done{background:var(--gl);color:var(--gd);}
.ri-doing{background:var(--al);color:var(--ad);}
.ri-todo{background:var(--bg2);color:var(--t2);}
.report-summary{background:#fff;border:1px solid var(--br);border-radius:var(--rl);padding:18px 20px;}
.rs-title{font-size:14px;font-weight:700;margin-bottom:12px;}
.rs-body{font-size:11px;color:var(--t2);line-height:1.85;white-space:pre-wrap;background:var(--bg);border:1px solid var(--br);border-radius:var(--r);padding:14px;max-height:320px;overflow-y:auto;}
.rs-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;}
.dl-btn{font-size:12px;font-weight:600;padding:7px 16px;border-radius:var(--r);border:1.5px solid var(--primary);background:#fff;color:var(--primary);cursor:pointer;}
.dl-btn:hover{background:var(--primary-l);}
.print-btn{font-size:12px;font-weight:700;padding:7px 16px;border-radius:var(--r);border:none;background:var(--primary);color:#fff;cursor:pointer;}
.print-btn:hover{background:var(--primary-d);}

/* ── AD REPORT ── */
.ad-report{background:#fff;border:1px solid var(--br);border-radius:var(--rl);overflow:hidden;}
.ad-report-hdr{padding:11px 16px;border-bottom:1px solid var(--br);display:flex;align-items:center;justify-content:space-between;background:#FAFBFC;}
.ad-report-title{font-size:14px;font-weight:700;}
.ad-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.adf{padding:14px 18px;border-right:1px solid var(--br);border-bottom:1px solid var(--br);}
.adf:nth-child(3n){border-right:none;}
.adf:nth-last-child(-n+3){border-bottom:none;}
.adf-lbl{font-size:10px;color:var(--t3);letter-spacing:.5px;text-transform:uppercase;font-weight:700;margin-bottom:6px;}
.adf-input{width:100%;font-size:18px;font-weight:700;font-family:'DM Mono',monospace;border:none;border-bottom:1.5px solid var(--br);background:transparent;color:var(--tx);outline:none;padding:3px 0;}
.adf-input:focus{border-color:var(--primary);}
.adf-input::placeholder{color:var(--bg3);font-weight:400;font-size:14px;}

/* ── YEAR OV ── */
.ov-hdr{display:flex;align-items:baseline;gap:12px;margin-bottom:18px;padding-bottom:12px;border-bottom:2px solid var(--primary);}
.ov-title{font-size:22px;font-weight:700;letter-spacing:-.4px;}
.ov-sub{font-size:13px;color:var(--t3);font-weight:500;}
.ov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.ovc{background:#fff;border:1px solid var(--br);border-radius:var(--rl);padding:16px;cursor:pointer;transition:all .15s;border-top:3px solid var(--br);}
.ovc:hover{border-color:var(--primary);border-top-color:var(--primary);box-shadow:0 2px 12px rgba(26,107,204,.1);}
.ovc-top{display:flex;align-items:baseline;gap:7px;margin-bottom:8px;}
.ovc-m{font-size:18px;font-weight:700;letter-spacing:-.3px;}
.ovc-sea{font-size:10px;color:var(--t3);flex:1;font-weight:600;}
.ovc-pct{font-size:14px;font-weight:700;color:var(--primary);font-family:'DM Mono',monospace;}
.ovc-bar{height:4px;background:var(--bg2);border-radius:2px;margin-bottom:10px;}
.ovc-bfill{height:100%;border-radius:2px;background:var(--g);}
.ovc-fruit{font-size:11px;color:var(--gd);margin-bottom:2px;font-weight:500;}
.ovc-ev{font-size:11px;color:var(--pd);margin-bottom:10px;font-weight:500;}
.ovc-stats{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;}
.ovc-stat{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--t2);font-weight:500;}
.ovc-sn{margin-left:auto;font-family:'DM Mono',monospace;font-size:11px;color:var(--t3);}
.ovc-link{font-size:11px;color:var(--primary);font-weight:700;}

/* ── MINI INPUT ── */
.mini-row{display:flex;gap:5px;margin-top:7px;}
.mi{flex:1;font-size:12px;padding:6px 9px;border:1px solid var(--br);border-radius:var(--r);background:#fff;color:var(--tx);outline:none;}
.mi:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(26,107,204,.1);}
.madd{width:28px;height:28px;border-radius:var(--r);border:1px solid var(--br);background:#fff;cursor:pointer;font-size:18px;color:var(--t2);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.madd:hover{background:var(--primary-l);color:var(--primary);border-color:var(--primary-m);}
.sa-btn{font-size:11px;font-weight:500;padding:4px 10px;border-radius:var(--r);border:1px solid var(--br);background:#fff;color:var(--t2);cursor:pointer;}
.sa-btn:hover{background:var(--bg2);}

/* ── RESPONSIVE ── */
@media(max-width:960px){
  .task-board,.report-cols,.ov-grid,.fb-grid{grid-template-columns:1fr;}
  .issue-cols,.memo-grid,.phase-board{grid-template-columns:1fr;}
  .admin-grid,.company-grid,.recovery-grid{grid-template-columns:1fr;}
  .icol,.fb-col{border-right:none;border-bottom:1px solid var(--br);}
  .icol:last-child,.fb-col:last-child{border-bottom:none;}
  .theme-banner{grid-template-columns:1fr;}
  .th-col{border-right:none;border-bottom:1px solid var(--br);}
  .th-col:last-child{border-bottom:none;}
  .report-schedule-row{grid-template-columns:1fr;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .ad-fields{grid-template-columns:repeat(2,1fr);}
  .ov-grid{grid-template-columns:repeat(2,1fr);}
  .kpi-row{gap:0;}
  .kpi-val{font-size:18px;}
}
@media(max-width:600px){
  .mnav{gap:1px;}
  .mb{padding:5px 9px;font-size:12px;}
  .nav-inner{padding:0 14px;gap:8px;}
  .page{padding:16px 14px 56px;}
  .tab{font-size:11px;padding:5px 10px;}
  .nav-divider{display:none;}
  .mhdr-mo{font-size:22px;}
  .report-schedule-head{align-items:center;}
  .sync-bar-inner{padding:6px 14px;}
  .sync-actions{margin-left:0;width:100%;}
  .form-row.two{grid-template-columns:1fr;}
  .select-head,.admin-top-inner{flex-direction:column;align-items:flex-start;}
  .auth-card,.select-panel{padding:22px;}
}
