:root{
  --fr6-black:#0a0a0a;
  --fr6-true-black:#000000;
  --fr6-white:#ffffff;
  --fr6-gold:#ffb800;
  --fr6-gray-900:#1a1a1a;
  --fr6-gray-800:#2b2b2b;
  --fr6-gray-700:#4d4d4d;
  --fr6-gray-500:#808080;
  --fr6-gray-300:#b3b3b3;
  --fr6-gray-150:#e0e0e0;
  --fr6-gray-100:#ececec;

  --font-fr6:Helvetica,'Helvetica Neue',Arial,sans-serif;
  --tracking-label:0.14em;
  --tracking-headline:-0.02em;
  --radius-sm:2px;

  --status-ok:#2f7a4d;
  --status-over:#c23b32;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font-fr6);
  background:var(--fr6-white);
  color:var(--fr6-black);
  min-height:100vh;
}
a{color:var(--fr6-black);}
a:hover{color:var(--fr6-gold);}
input::placeholder{color:var(--fr6-gray-500);}
button{font-family:var(--font-fr6);cursor:pointer;}

/* Header */
.fr6-header{
  background:var(--fr6-black);
  color:var(--fr6-white);
  padding:20px 40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px;
}
.fr6-header-brand{display:flex;align-items:center;gap:16px;}
.fr6-logo{
  border:1px solid var(--fr6-white);
  padding:4px 12px;
  font-weight:700;
  font-size:18px;
  letter-spacing:var(--tracking-headline);
}
.fr6-title{font-size:20px;font-weight:700;letter-spacing:var(--tracking-headline);text-transform:uppercase;line-height:1;}
.fr6-subtitle{margin-top:4px;font-size:11px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fr6-gray-300);}
.fr6-header-nav{display:flex;align-items:center;gap:14px;}
.fr6-nav-btn{
  background:transparent;border:1px solid transparent;color:var(--fr6-white);
  padding:6px 10px;font-size:14px;border-radius:var(--radius-sm);
}
.fr6-nav-btn:hover{border-color:var(--fr6-gray-700);}
.fr6-week-label{text-align:center;min-width:220px;}
.fr6-week-label .num{font-size:15px;font-weight:700;letter-spacing:0.01em;}
.fr6-week-label .range{font-size:12px;color:var(--fr6-gray-300);margin-top:2px;}
.fr6-today-btn{
  background:transparent;color:var(--fr6-white);border:1px solid var(--fr6-white);
  padding:8px 16px;font-size:13px;letter-spacing:0.04em;border-radius:var(--radius-sm);
}
.fr6-today-btn:hover{background:var(--fr6-white);color:var(--fr6-black);}

/* Main */
main{padding:40px;max-width:1600px;margin:0 auto;}
.section-label{
  font-size:12px;font-weight:700;letter-spacing:var(--tracking-label);
  text-transform:uppercase;color:var(--fr6-gray-700);
  padding-bottom:6px;border-bottom:1px solid var(--fr6-gray-150);
  margin-bottom:16px;
}

/* Grid */
.planning-grid{
  display:grid;
  grid-template-columns:220px repeat(7,1fr);
  border-top:1px solid var(--fr6-gray-150);
  border-left:1px solid var(--fr6-gray-150);
}
.cell-head{
  border-right:1px solid var(--fr6-gray-150);
  border-bottom:1px solid var(--fr6-gray-150);
  padding:10px 14px;background:var(--fr6-gray-100);
}
.cell-head.today{border-bottom:2px solid var(--fr6-gold);}
.cell-head .day-label{font-size:12px;font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;}
.cell-head .day-date{font-size:11px;color:var(--fr6-gray-500);margin-top:2px;}

.row-head{
  border-right:1px solid var(--fr6-gray-150);
  border-bottom:1px solid var(--fr6-gray-150);
  padding:14px;
}
.row-head-name{
  width:100%;border:none;border-bottom:1px solid transparent;background:transparent;
  font-family:var(--font-fr6);font-size:14px;font-weight:700;text-transform:uppercase;
  letter-spacing:0.01em;color:var(--fr6-black);padding:2px 0;outline:none;
}
.row-head-name:focus{border-bottom:1px solid var(--fr6-black);}
.row-head-name[readonly]{cursor:default;}
.row-head-count{margin-top:10px;display:flex;align-items:baseline;gap:6px;}
.row-head-count .num{font-size:22px;font-weight:700;letter-spacing:var(--tracking-headline);}
.row-head-count .of5{font-size:12px;color:var(--fr6-gray-500);}
.row-head-helper{margin-top:4px;font-size:11px;}

.day-cell{
  border-right:1px solid var(--fr6-gray-150);
  border-bottom:1px solid var(--fr6-gray-150);
  padding:8px;min-height:104px;display:flex;flex-direction:column;gap:6px;
}
.day-cell.editable{cursor:pointer;}
.day-cell.blocked{
  cursor:not-allowed;
  background:repeating-linear-gradient(45deg,var(--fr6-gray-100),var(--fr6-gray-100) 6px,var(--fr6-white) 6px,var(--fr6-white) 12px);
}
.day-cell.dragover{outline:2px dashed var(--fr6-gold);outline-offset:-4px;}
.cell-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--fr6-gray-500);font-size:18px;opacity:0.5;}
.cell-blocked-label{flex:1;display:flex;align-items:center;justify-content:center;color:var(--fr6-gray-500);font-size:10px;letter-spacing:var(--tracking-label);text-transform:uppercase;}

.proj-card{
  border:1px solid var(--fr6-gray-150);border-radius:var(--radius-sm);
  background:var(--fr6-white);padding:7px 9px;
}
.proj-card.draggable{cursor:grab;}
.proj-card:hover{border-color:var(--fr6-gold);}
.proj-card .name{font-size:12px;font-weight:700;line-height:1.3;}
.proj-card .resource{display:block;font-size:11px;color:var(--fr6-gold);margin-top:1px;text-decoration:underline;}
.proj-badge{
  display:inline-block;margin-top:6px;font-size:10px;font-weight:500;
  letter-spacing:var(--tracking-label);text-transform:uppercase;
  padding:3px 7px;border-radius:var(--radius-sm);
}

/* Chart */
.legend{display:flex;gap:24px;margin-bottom:20px;flex-wrap:wrap;}
.legend-item{display:flex;align-items:center;gap:8px;}
.legend-dot{width:10px;height:10px;display:inline-block;border-radius:1px;}
.legend-item span.name{font-size:12px;color:var(--fr6-gray-700);}
.chart-box{border:1px solid var(--fr6-gray-150);padding:24px 24px 12px 24px;}
.chart-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:16px;align-items:end;height:220px;}
.chart-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;}
.chart-total{font-size:12px;font-weight:700;margin-bottom:6px;}
.chart-stack{width:100%;max-width:44px;display:flex;flex-direction:column-reverse;}
.chart-labels{display:grid;grid-template-columns:repeat(7,1fr);gap:16px;margin-top:12px;border-top:1px solid var(--fr6-gray-150);padding-top:8px;}
.chart-labels div{text-align:center;font-size:11px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fr6-gray-500);}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(10,10,10,0.6);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;}
.modal-card{width:100%;max-width:420px;background:var(--fr6-white);border:1px solid var(--fr6-gray-150);padding:28px;}
.modal-title{font-size:11px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fr6-gray-700);margin-bottom:20px;}
.modal-field{display:block;margin-bottom:18px;}
.modal-field label{display:block;font-size:11px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fr6-gray-700);margin-bottom:8px;}
.modal-field input{
  width:100%;font-family:var(--font-fr6);font-size:16px;color:var(--fr6-black);
  background:transparent;border:none;border-bottom:1px solid var(--fr6-gray-150);padding:8px 0;outline:none;
}
.modal-field input:focus{border-bottom:1px solid var(--fr6-black);}
.modal-types{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;}
.type-pill{
  font-size:11px;font-weight:500;letter-spacing:var(--tracking-label);text-transform:uppercase;
  padding:6px 10px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--fr6-gray-150);
}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;}
.btn{
  font-family:var(--font-fr6);font-size:13px;letter-spacing:0.02em;
  padding:9px 16px;border-radius:var(--radius-sm);border:1px solid var(--fr6-gray-150);background:var(--fr6-white);
}
.btn.primary{background:var(--fr6-black);color:var(--fr6-white);border-color:var(--fr6-black);}
.btn.ghost{border-color:transparent;}
.btn.mr-auto{margin-right:auto;}

/* Status / misc */
.save-status{font-size:11px;color:var(--fr6-gray-500);text-align:right;margin-top:8px;letter-spacing:0.03em;}
.view-banner{
  background:var(--fr6-gray-100);border-bottom:1px solid var(--fr6-gray-150);
  padding:8px 40px;font-size:12px;color:var(--fr6-gray-700);
  display:flex;align-items:center;justify-content:space-between;
}
.refresh-btn{background:transparent;border:1px solid var(--fr6-gray-300);padding:4px 10px;font-size:11px;border-radius:var(--radius-sm);}

@media (max-width:900px){
  main{padding:20px;}
  .planning-grid{grid-template-columns:140px repeat(7,minmax(90px,1fr));overflow-x:auto;}
}
