/* ============================================================
   BASE / RESET / CSS VARIABLES
   ============================================================ */
:root {
  --bg:#0c0c0f;--s:#16161a;--sh:#1e1e24;--b:#2a2a32;--ba:#3d3d48;
  --t:#e8e6e3;--td:#8b8a87;--a:#ff6b35;--ag:rgba(255,107,53,0.15);
  --g:#34d399;--bl:#60a5fa;--p:#a78bfa;--y:#fbbf24;--r:#f87171;--cy:#22d3ee;--pk:#f472b6;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--t);min-height:100vh;padding-bottom:70px;}
.grain{position:fixed;inset:0;pointer-events:none;z-index:999;opacity:0.4;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");}

/* ============================================================
   LAYOUT / HEADER / TABS / CONTROLS
   ============================================================ */
header{padding:28px 32px 14px;border-bottom:1px solid var(--b);}
header .tag{font-family:'Space Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:3px;color:var(--a);margin-bottom:5px;}
header h1{font-size:26px;font-weight:700;}
header p{color:var(--td);margin-top:3px;font-size:13px;}

/* View Tabs */
.view-tabs{padding:12px 32px;border-bottom:1px solid var(--b);display:flex;gap:4px;}
.vtab{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;padding:8px 20px;border-radius:8px 8px 0 0;
  border:1px solid transparent;border-bottom:none;background:transparent;color:var(--td);cursor:pointer;transition:all 0.2s;position:relative;bottom:-1px;}
.vtab:hover{color:var(--t);}
.vtab.active{background:var(--s);border-color:var(--b);color:var(--a);border-bottom:1px solid var(--s);}
.vtab .tab-icon{margin-right:6px;}

.controls{padding:12px 32px;display:flex;gap:8px;flex-wrap:wrap;}
.btn{font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;padding:7px 16px;border-radius:6px;
  border:1px solid var(--b);background:var(--s);color:var(--t);cursor:pointer;transition:all 0.2s;}
.btn:hover{background:var(--sh);border-color:var(--ba);}
.btn.primary{background:var(--a);border-color:var(--a);color:#fff;}
.btn.primary:hover{opacity:0.85;}
.btn.danger{border-color:var(--r);color:var(--r);}
.btn.future-btn{border-color:var(--cy);color:var(--cy);}
.btn.future-btn:hover{background:rgba(34,211,238,0.1);}

.content{padding:24px 32px 40px;}

/* ============================================================
   VIEW: DEPARTMENTS
   ============================================================ */
.dept-grid{display:flex;flex-direction:column;gap:20px;}
.dept{background:var(--s);border:1px solid var(--b);border-radius:12px;overflow:hidden;}
.dept-h{padding:12px 18px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--b);cursor:pointer;user-select:none;}
.dept-h:hover{background:var(--sh);}
.dept-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.dept-h h3{font-size:14px;font-weight:600;flex:1;}
.dept-h .cnt{font-family:'Space Mono',monospace;font-size:10px;color:var(--td);background:var(--bg);padding:2px 10px;border-radius:10px;}
.dept-h .chev{color:var(--td);transition:transform 0.2s;font-size:13px;}
.dept.collapsed .chev{transform:rotate(-90deg);}
.dept.collapsed .dept-body{display:none;}
.dept-body{padding:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;}

/* ============================================================
   VIEW: HIERARCHY TREE
   ============================================================ */
.tree{padding:0;}
.tree-node{margin-left:0;}
.tree-children{margin-left:32px;border-left:2px solid var(--b);padding-left:0;}
.tree-item{display:flex;align-items:stretch;margin-bottom:4px;}
.tree-branch{width:24px;flex-shrink:0;position:relative;}
.tree-branch::before{content:'';position:absolute;top:50%;left:0;width:24px;height:2px;background:var(--b);}
.tree-card{flex:1;background:var(--s);border:1px solid var(--b);border-radius:8px;padding:10px 14px;
  cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:12px;}
.tree-card:hover{border-color:var(--ba);background:var(--sh);}
.tree-card.is-vp{border-color:var(--a);box-shadow:0 0 20px var(--ag);}
.tree-card.is-lead{border-color:var(--g);box-shadow:0 0 12px rgba(52,211,153,0.08);}
.tree-card .tc-info{flex:1;}
.tree-card .tc-name{font-size:13px;font-weight:600;}
.tree-card .tc-role{font-size:10px;color:var(--td);}
.tree-card .tc-tags{margin-top:3px;}
.tree-card .tc-count{font-family:'Space Mono',monospace;font-size:10px;color:var(--td);
  background:var(--bg);padding:2px 8px;border-radius:8px;}
.tree-root>.tree-card{margin-bottom:8px;}

/* ============================================================
   VIEW: FUTURE STATE
   ============================================================ */
.future-container{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.future-col{background:var(--s);border:1px solid var(--b);border-radius:12px;overflow:hidden;}
.future-col-header{padding:14px 18px;border-bottom:1px solid var(--b);display:flex;align-items:center;gap:10px;}
.future-col-header h3{font-size:14px;font-weight:600;flex:1;}
.future-col-header .state-badge{font-family:'Space Mono',monospace;font-size:9px;text-transform:uppercase;
  letter-spacing:2px;padding:3px 10px;border-radius:4px;}
.state-current{background:rgba(96,165,250,0.15);color:var(--bl);}
.state-future{background:rgba(34,211,238,0.15);color:var(--cy);}
.future-col-body{padding:14px;min-height:200px;}
.future-person{background:var(--bg);border:1px solid var(--b);border-radius:8px;padding:10px 14px;
  margin-bottom:8px;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:10px;}
.future-person:hover{border-color:var(--ba);}
.future-person .fp-name{font-size:12px;font-weight:600;flex:1;}
.future-person .fp-role{font-size:10px;color:var(--td);}
.future-person .fp-arrow{font-size:14px;color:var(--td);}
.future-change{background:var(--bg);border:1px solid var(--cy);border-radius:8px;padding:12px 14px;margin-bottom:8px;}
.future-change .fc-label{font-size:10px;font-family:'Space Mono',monospace;text-transform:uppercase;letter-spacing:1px;color:var(--cy);margin-bottom:4px;}
.future-change .fc-from{font-size:11px;color:var(--r);text-decoration:line-through;margin-bottom:2px;}
.future-change .fc-to{font-size:11px;color:var(--g);}
.future-change .fc-name{font-size:13px;font-weight:600;margin-bottom:4px;}

/* ============================================================
   SHARED: CARDS / BADGES / TAGS
   ============================================================ */
.card{background:var(--bg);border:1px solid var(--b);border-radius:8px;padding:12px 14px;cursor:pointer;transition:all 0.2s;}
.card:hover{border-color:var(--ba);transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,0.3);}
.card .name{font-size:13px;font-weight:600;}
.card .role-line{font-size:10px;color:var(--td);margin-top:1px;}
.card .meta{font-size:10px;color:var(--td);line-height:1.5;margin-top:3px;}
.badge{font-family:'Space Mono',monospace;font-size:8px;text-transform:uppercase;letter-spacing:1.5px;
  padding:2px 6px;border-radius:3px;display:inline-block;}
.b-exec{background:rgba(255,107,53,0.15);color:var(--a);}
.b-lead{background:rgba(52,211,153,0.15);color:var(--g);}
.b-emp{background:rgba(96,165,250,0.15);color:var(--bl);}
.b-con{background:rgba(167,139,250,0.15);color:var(--p);}
.tp{font-size:8px;font-family:'Space Mono',monospace;text-transform:uppercase;letter-spacing:1px;
  padding:1px 6px;border-radius:3px;display:inline-block;margin-right:3px;margin-bottom:2px;}
.t-bsp{background:rgba(96,165,250,0.12);color:var(--bl);}
.t-rcr{background:rgba(52,211,153,0.12);color:var(--g);}
.t-elite{background:rgba(251,191,36,0.12);color:var(--y);}
.t-cv{background:rgba(167,139,250,0.12);color:var(--p);}
.t-drone{background:rgba(34,211,238,0.12);color:var(--cy);}
.t-sac{background:rgba(244,114,182,0.12);color:var(--pk);}
.t-mkt{background:rgba(255,107,53,0.12);color:var(--a);}
.t-sales{background:rgba(251,191,36,0.12);color:var(--y);}
.note-line{font-size:10px;color:var(--td);border-top:1px solid var(--b);padding-top:5px;margin-top:5px;font-style:italic;}

/* ============================================================
   SHARED: SUMMARY BAR / MODALS
   ============================================================ */
/* Summary */
.summary-bar{position:fixed;bottom:0;left:0;right:0;background:var(--s);border-top:1px solid var(--b);
  padding:10px 32px;display:flex;gap:24px;font-size:11px;z-index:100;}
.stat{display:flex;align-items:center;gap:5px;}
.stat .d{width:6px;height:6px;border-radius:50%;}

/* Modal */
.mo{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:1000;
  align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.mo.active{display:flex;}
.modal{background:var(--s);border:1px solid var(--b);border-radius:12px;padding:22px;
  width:460px;max-width:92vw;max-height:85vh;overflow-y:auto;}
.modal h2{font-size:16px;margin-bottom:14px;}
.modal label{display:block;font-size:10px;font-weight:500;color:var(--td);text-transform:uppercase;
  letter-spacing:1px;margin-bottom:4px;margin-top:10px;}
.modal label:first-of-type{margin-top:0;}
.modal input,.modal select,.modal textarea{width:100%;padding:8px 10px;border-radius:6px;
  border:1px solid var(--b);background:var(--bg);color:var(--t);font-family:'DM Sans',sans-serif;font-size:13px;outline:none;}
.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:var(--a);}
.modal textarea{resize:vertical;min-height:45px;}
.cg{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px;}
.cg label{font-size:11px;text-transform:none;letter-spacing:0;display:flex;align-items:center;gap:5px;
  cursor:pointer;color:var(--t);margin:0;padding:3px 9px;border:1px solid var(--b);border-radius:6px;}
.cg label:hover{border-color:var(--ba);}
.cg input[type="checkbox"]{width:auto;accent-color:var(--a);}
.mbtn{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;}
.empty{text-align:center;padding:24px;color:var(--td);font-size:12px;}

@media(max-width:768px){.future-container{grid-template-columns:1fr;}}
@keyframes spin{to{transform:rotate(360deg);}}

/* ============================================================
   VIEW: TASKS & OUTCOMES
   ============================================================ */
.tasks-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:18px;}
.tasks-filters input{font-family:'DM Sans',sans-serif;font-size:12px;padding:7px 12px;border-radius:6px;
  border:1px solid var(--b);background:var(--s);color:var(--t);outline:none;width:200px;}
.tasks-filters input:focus{border-color:var(--a);}
.tasks-filters select{font-family:'DM Sans',sans-serif;font-size:12px;padding:7px 10px;border-radius:6px;
  border:1px solid var(--b);background:var(--s);color:var(--t);outline:none;cursor:pointer;}
.tasks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.tk-card{background:var(--s);border:1px solid var(--b);border-radius:10px;overflow:hidden;transition:opacity 0.15s,box-shadow 0.15s;}
.tk-card.tk-vp{border-color:var(--a);}
.tk-card.tk-lead{border-color:var(--g);}
.tk-card.tk-dragging{opacity:0.4;box-shadow:none;}
.tk-card.tk-drag-over{box-shadow:0 0 0 2px var(--a);border-color:var(--a);}
.tk-drag-handle{font-size:16px;color:var(--ba);cursor:grab;padding:0 6px 0 0;letter-spacing:1px;transition:color 0.15s;flex-shrink:0;user-select:none;}
.tk-drag-handle:hover{color:var(--td);}
.tk-card[draggable="true"]{cursor:default;}
.tk-head{padding:12px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--b);}
.tk-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;color:#fff;flex-shrink:0;}
.tk-head-info{flex:1;min-width:0;}
.tk-head-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tk-head-role{font-size:10px;color:var(--td);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tk-body{padding:12px 14px;}
.tk-section{margin-bottom:10px;}
.tk-section:last-child{margin-bottom:0;}
.tk-label{font-family:'Space Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:1.5px;
  color:var(--td);margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;}
.tk-label .tk-add{cursor:pointer;color:var(--a);font-size:14px;line-height:1;padding:0 2px;}
.tk-label .tk-add:hover{opacity:0.7;}
.tk-item{display:flex;align-items:flex-start;gap:7px;margin-bottom:5px;group:true;}
.tk-item input[type="checkbox"]{margin-top:2px;accent-color:var(--a);flex-shrink:0;cursor:pointer;}
.tk-item-text{font-size:11px;line-height:1.5;flex:1;cursor:pointer;word-break:break-word;}
.tk-item-text.done{text-decoration:line-through;color:var(--td);}
.tk-item .tk-del{color:var(--td);font-size:13px;cursor:pointer;opacity:0;transition:opacity 0.15s;flex-shrink:0;padding:0 2px;}
.tk-item:hover .tk-del{opacity:1;}
.tk-item .tk-del:hover{color:var(--r);}
.tk-outcome{background:var(--bg);border:1px solid var(--b);border-radius:6px;padding:6px 10px;
  margin-bottom:5px;font-size:11px;line-height:1.5;display:flex;align-items:flex-start;gap:7px;cursor:pointer;}
.tk-outcome .tk-o-icon{color:var(--cy);flex-shrink:0;font-size:12px;margin-top:1px;}
.tk-outcome .tk-o-text{flex:1;word-break:break-word;}
.tk-outcome .tk-del{color:var(--td);font-size:13px;cursor:pointer;opacity:0;transition:opacity 0.15s;flex-shrink:0;}
.tk-outcome:hover .tk-del{opacity:1;}
.tk-outcome .tk-del:hover{color:var(--r);}
.tk-empty{font-size:10px;color:var(--td);font-style:italic;padding:2px 0;}
.tk-inline-input{width:100%;font-family:'DM Sans',sans-serif;font-size:11px;padding:5px 8px;border-radius:5px;
  border:1px solid var(--a);background:var(--bg);color:var(--t);outline:none;margin-top:4px;box-sizing:border-box;}
.tk-expected{background:rgba(251,191,36,0.06);border:1px solid rgba(251,191,36,0.2);border-radius:6px;padding:6px 10px;
  margin-bottom:5px;font-size:11px;line-height:1.5;display:flex;align-items:flex-start;gap:7px;cursor:pointer;}
.tk-expected .tk-o-icon{color:var(--y);flex-shrink:0;font-size:11px;margin-top:1px;}
.tk-expected .tk-o-text{flex:1;word-break:break-word;}
.tk-expected .tk-del{color:var(--td);font-size:13px;cursor:pointer;opacity:0;transition:opacity 0.15s;flex-shrink:0;}
.tk-expected:hover .tk-del{opacity:1;}
.tk-expected .tk-del:hover{color:var(--r);}
.tk-section-divider{border:none;border-top:1px solid var(--b);margin:10px 0;}
.tasks-progress{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;
  background:var(--s);border:1px solid var(--b);border-radius:8px;font-size:11px;}
.tasks-progress .tp-bar{flex:1;height:6px;background:var(--b);border-radius:3px;overflow:hidden;}
.tasks-progress .tp-fill{height:100%;background:var(--a);border-radius:3px;transition:width 0.3s;}
.tasks-progress .tp-label{color:var(--td);white-space:nowrap;}

/* ============================================================
   SHARED: COLOR SWATCHES (department modal)
   ============================================================ */
.color-swatch{display:inline-block;width:28px;height:28px;border-radius:50%;border:3px solid transparent;transition:border-color 0.15s,transform 0.15s;}
input[name="fdColor"]:checked+.color-swatch{border-color:#fff;transform:scale(1.2);}
.color-swatch:hover{transform:scale(1.15);}

/* ============================================================
   VIEW: CANVAS TREE
   ============================================================ */
#canvas-wrap{position:relative;width:100%;overflow:hidden;background:var(--bg);cursor:grab;user-select:none;}
#canvas-wrap.dragging{cursor:grabbing;}
#canvas-stage{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform;}
#canvas-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;}
.cn{position:absolute;width:160px;background:var(--s);border:1px solid var(--b);border-radius:10px;
  padding:10px 12px;cursor:pointer;transition:border-color 0.2s,box-shadow 0.2s;box-sizing:border-box;}
.cn:hover{border-color:var(--ba);box-shadow:0 4px 20px rgba(0,0,0,0.4);}
.cn.cn-vp{border-color:var(--a);box-shadow:0 0 24px var(--ag);}
.cn.cn-lead{border-color:var(--g);box-shadow:0 0 14px rgba(52,211,153,0.12);}
.cn .cn-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;margin:0 auto 7px;color:#fff;flex-shrink:0;}
.cn .cn-name{font-size:11px;font-weight:700;text-align:center;line-height:1.3;margin-bottom:2px;}
.cn .cn-role{font-size:9px;color:var(--td);text-align:center;line-height:1.4;margin-bottom:5px;}
.cn .cn-badges{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;}
.cn .cn-di{text-align:center;font-size:11px;margin-top:4px;}
.cn-zoom{display:flex;gap:5px;margin-left:auto;}
.cn-arrows{display:flex;justify-content:space-between;margin-top:5px;opacity:0;transition:opacity 0.15s;}
.cn:hover .cn-arrows{opacity:1;}
.cn-arr{font-size:10px;padding:1px 5px;border-radius:4px;background:var(--b);color:var(--t);cursor:pointer;transition:background 0.15s;user-select:none;}
.cn-arr:hover{background:var(--a);color:#fff;}
.cn-arr.disabled{opacity:0.2;cursor:default;pointer-events:none;}
/* Division nodes */
.cn-div{position:absolute;height:52px;border:1px solid;border-radius:8px;
  padding:0 14px;display:flex;align-items:center;justify-content:space-between;
  box-sizing:border-box;cursor:default;}
.cn-div .cn-div-label{font-size:12px;font-weight:700;letter-spacing:0.3px;}
.cn-div .cn-div-count{font-family:'Space Mono',monospace;font-size:10px;opacity:0.7;
  background:rgba(0,0,0,0.25);padding:2px 8px;border-radius:10px;margin-left:auto;margin-right:8px;}
.cn-div .cn-arrows{margin-top:0;opacity:0;transition:opacity 0.15s;}
.cn-div:hover .cn-arrows{opacity:1;}

/* ============================================================
   SHARED: WEEKLY REPORT MODAL
   ============================================================ */
.rp-section-title{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--a);margin:16px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--b);}
.rp-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:8px;}
.rp-table th{text-align:left;color:var(--td);padding:4px 8px;font-weight:500;border-bottom:1px solid var(--b);}
.rp-table td{padding:6px 8px;border-bottom:1px solid var(--b);}
.rp-num{background:var(--sh);border:1px solid var(--b);color:var(--t);border-radius:6px;padding:5px 8px;font-size:12px;width:80px;text-align:center;}
.rp-num:focus{outline:none;border-color:var(--a);}
.rp-textarea{width:100%;background:var(--sh);border:1px solid var(--b);color:var(--t);border-radius:8px;padding:10px 12px;font-size:13px;font-family:'DM Sans',sans-serif;resize:vertical;min-height:80px;box-sizing:border-box;}
.rp-textarea:focus{outline:none;border-color:var(--a);}
.btn-primary{background:var(--a);color:#fff;border-color:var(--a);}
.btn-primary:hover{background:#e85a25;}

/* ============================================================
   VIEW: RAPPORTS
   ============================================================ */
.rpt-layout{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:start;}
@media(max-width:700px){.rpt-layout{grid-template-columns:1fr;}}

/* Sidebar */
.rpt-sidebar{background:var(--s);border:1px solid var(--b);border-radius:10px;overflow:hidden;position:sticky;top:0;}
.rpt-sidebar-title{font-family:'Space Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:2px;
  color:var(--td);padding:10px 14px 8px;border-bottom:1px solid var(--b);}
.rpt-sidebar-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;
  transition:background 0.15s;border-bottom:1px solid var(--b);user-select:none;}
.rpt-sidebar-item:last-child{border-bottom:none;}
.rpt-sidebar-item:hover{background:var(--sh);}
.rpt-sidebar-item.active{background:var(--sh);border-left:3px solid var(--a);}
.rpt-sidebar-info{flex:1;min-width:0;}
.rpt-sidebar-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rpt-sidebar-role{font-size:10px;color:var(--td);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rpt-sidebar-badge{font-family:'Space Mono',monospace;font-size:10px;background:var(--bg);
  color:var(--td);padding:1px 7px;border-radius:8px;flex-shrink:0;}

/* Main area */
.rpt-main{min-height:300px;}
.rpt-main-person-header{display:flex;align-items:center;gap:12px;margin-bottom:18px;
  background:var(--s);border:1px solid var(--b);border-radius:10px;padding:14px 18px;}
.rpt-main-person-name{font-size:15px;font-weight:700;}
.rpt-main-person-label{font-size:11px;color:var(--td);}

/* Empty states */
.rpt-empty{color:var(--td);font-size:13px;padding:24px;text-align:center;}
.rpt-empty-select{display:flex;align-items:center;justify-content:center;min-height:200px;
  background:var(--s);border:1px solid var(--b);border-radius:10px;}
.rpt-loading{color:var(--td);font-size:13px;padding:40px;text-align:center;}

/* Report cards */
.rpt-reports-list{display:flex;flex-direction:column;gap:10px;}
.rpt-report-card{background:var(--s);border:1px solid var(--b);border-radius:10px;overflow:hidden;}
.rpt-report-card-header{padding:12px 16px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;}
.rpt-report-card-meta{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.rpt-report-week{font-size:13px;font-weight:600;}
.rpt-report-submitted{font-size:10px;color:var(--td);}
.rpt-report-card-stats{display:flex;gap:8px;flex-wrap:wrap;}
.rpt-stat-chip{display:flex;flex-direction:column;align-items:center;background:var(--bg);
  border:1px solid var(--b);border-radius:6px;padding:4px 10px;min-width:50px;}
.rpt-stat-val{font-family:'Space Mono',monospace;font-size:13px;font-weight:700;color:var(--t);}
.rpt-stat-key{font-size:9px;color:var(--td);text-transform:uppercase;letter-spacing:0.5px;margin-top:1px;white-space:nowrap;}
.rpt-report-card-actions{display:flex;gap:6px;flex-shrink:0;}
.rpt-report-card-body{padding:14px 16px;border-top:1px solid var(--b);background:var(--bg);}
.rpt-detail-row{display:flex;gap:10px;padding:4px 0;font-size:12px;border-bottom:1px solid var(--b);}
.rpt-detail-row:last-child{border-bottom:none;}
.rpt-detail-key{color:var(--td);min-width:200px;flex-shrink:0;}
.rpt-detail-section{margin-top:10px;}
.rpt-detail-section-title{font-family:'Space Mono',monospace;font-size:9px;text-transform:uppercase;
  letter-spacing:1.5px;color:var(--a);margin-bottom:4px;}
.rpt-detail-text{font-size:12px;line-height:1.6;white-space:pre-wrap;color:var(--t);}

/* Form */
.rpt-form{background:var(--s);border:1px solid var(--b);border-radius:10px;padding:18px;margin-bottom:18px;}
.rpt-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.rpt-form-title{font-size:14px;font-weight:700;}
.rpt-form-actions{display:flex;gap:8px;margin-top:18px;}
.rpt-section-title{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--a);margin:16px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--b);}
.rpt-hint{font-size:9px;color:var(--td);text-transform:none;letter-spacing:0;margin-left:4px;font-weight:400;}
.rpt-required{color:var(--r);font-size:10px;}
.rpt-optional{color:var(--td);font-size:9px;text-transform:none;letter-spacing:0;font-weight:400;}
.rpt-week-row{display:flex;gap:12px;margin-bottom:4px;flex-wrap:wrap;}
.rpt-field-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.rpt-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:120px;}
.rpt-field-grow{flex:2;}
.rpt-label{font-family:'Space Mono',monospace;font-size:9px;text-transform:uppercase;letter-spacing:1px;
  color:var(--td);display:block;}
.rpt-date-input{font-family:'DM Sans',sans-serif;font-size:13px;padding:7px 10px;border-radius:6px;
  border:1px solid var(--b);background:var(--bg);color:var(--t);outline:none;width:100%;}
.rpt-date-input:focus{border-color:var(--a);}
.rpt-text-input{font-family:'DM Sans',sans-serif;font-size:13px;padding:7px 10px;border-radius:6px;
  border:1px solid var(--b);background:var(--bg);color:var(--t);outline:none;width:100%;}
.rpt-text-input:focus{border-color:var(--a);}
.rpt-radio-group{display:flex;flex-direction:column;gap:5px;margin-bottom:4px;}
.rpt-radio-group.rpt-radio-inline{flex-direction:row;gap:12px;}
.rpt-radio-label{display:flex;align-items:center;gap:6px;font-size:12px;cursor:pointer;color:var(--t);}
.rpt-radio-label input[type="radio"]{accent-color:var(--a);cursor:pointer;}
.rpt-form .rp-num{background:var(--bg);border:1px solid var(--b);color:var(--t);border-radius:6px;padding:5px 8px;font-size:12px;width:100%;text-align:center;font-family:'Space Mono',monospace;box-sizing:border-box;}
.rpt-form .rp-num:focus{outline:none;border-color:var(--a);}
.rpt-form .rp-textarea{width:100%;background:var(--bg);border:1px solid var(--b);color:var(--t);border-radius:8px;padding:10px 12px;font-size:13px;font-family:'DM Sans',sans-serif;resize:vertical;min-height:70px;box-sizing:border-box;}
.rpt-form .rp-textarea:focus{outline:none;border-color:var(--a);}

/* ============================================================
   AUTH — LOGIN SCREEN + USER CHIP
   ============================================================ */
#auth-screen {
  position:fixed;inset:0;background:var(--bg);z-index:10000;
  display:flex;align-items:center;justify-content:center;
}
.auth-box {
  background:var(--s);border:1px solid var(--b);border-radius:16px;
  padding:36px 32px;width:100%;max-width:380px;
  box-shadow:0 24px 48px rgba(0,0,0,0.5);
}
.auth-logo { text-align:center;margin-bottom:28px; }
#auth-email:focus, #auth-password:focus { border-color:var(--a) !important; }
#auth-btn:hover { opacity:0.88; }

/* User chip in header */
#auth-user-chip {
  display:flex;align-items:center;gap:8px;margin-top:8px;
  padding:5px 10px;background:var(--sh);border:1px solid var(--b);
  border-radius:8px;width:fit-content;
}

/* ── Coaching Dashboard — Responsive ── */
.coaching-grid-2col { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; }
.coaching-grid-4col { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }

@media (max-width: 768px) {
  .coaching-grid-2col { grid-template-columns: 1fr !important; }
  .coaching-grid-4col { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── Loading Skeleton ── */
@keyframes coaching-shimmer {
  0% { background-position: -200px 0; }
  100% { background-position: 200px 0; }
}
.coaching-skeleton {
  background: linear-gradient(90deg, var(--sh) 25%, var(--b) 50%, var(--sh) 75%);
  background-size: 400px 100%;
  animation: coaching-shimmer 1.5s infinite;
  border-radius: 8px;
}
.coaching-skeleton-card {
  height: 120px;
  margin-bottom: 12px;
}
.coaching-skeleton-bar {
  height: 60px;
  margin-bottom: 12px;
}
.coaching-skeleton-radar {
  height: 300px;
  margin-bottom: 12px;
}
