:root{
  --bg: #000000;
  --bg-elevated: #1c1c1e;
  --bg-card: #1a1a1c;
  --bg-card-hover: #232325;
  --bg-input: #131315;
  --hairline: rgba(255,255,255,.14);
  --hairline-soft: rgba(255,255,255,.08);
  --text: #f5f5f7;
  --text-secondary: #98989d;
  --text-tertiary: #6e6e73;
  --blue: #2997ff;
  --blue-hover: #55acff;
  --purple: #bf5af2;
  --green: #30d158;
  --orange: #ff9f0a;
  --red: #ff453a;
  --gray: #8e8e93;
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, "SF Mono", "Menlo", "Consolas", monospace;
  --ease: cubic-bezier(.28,.11,.32,1);
  --r-lg: 20px;
  --r-md: 14px;
  --r-sm: 10px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html,body{height:100%;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.hidden{display:none !important;}
button{font-family:inherit; cursor:pointer;}
input, textarea, select{font-family:inherit;}
::selection{background:var(--blue); color:#fff;}
::-webkit-scrollbar{width:10px; height:10px;}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14); border-radius:10px; border:2px solid transparent; background-clip:padding-box;}
::-webkit-scrollbar-track{background:transparent;}

/* ============ LOGIN ============ */
.login-screen{
  min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(ellipse 900px 500px at 50% -10%, rgba(41,151,255,.14), transparent 60%),
    var(--bg);
  padding:24px;
}
.login-panel{
  width:min(400px, 100%);
  background:var(--bg-elevated);
  border:1px solid var(--hairline-soft);
  border-radius:24px;
  padding:48px 40px 40px;
  text-align:center;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.login-title{
  font-size:30px; font-weight:700; letter-spacing:-.02em; line-height:1.1;
}
.login-sub{
  margin-top:10px; font-size:14.5px; color:var(--text-secondary);
}
.who-row{
  display:flex; gap:8px; margin-top:32px;
  background:#000; border:1px solid var(--hairline-soft); border-radius:12px; padding:4px;
}
.who-btn{
  flex:1; background:transparent; border:none; color:var(--text-secondary);
  padding:11px 8px; font-weight:590; font-size:14.5px; border-radius:9px;
  display:flex; align-items:center; justify-content:center; gap:8px;
  transition:background .18s var(--ease), color .18s var(--ease);
}
.who-btn:hover{color:var(--text);}
.who-btn.selected{color:#000; background:var(--text);}
.who-dot{width:8px; height:8px; border-radius:50%; display:inline-block;}
.dot-luca{background:var(--blue);}
.dot-bas{background:var(--purple);}

.pw-input{
  width:100%; margin-top:14px; background:var(--bg-input); border:1px solid var(--hairline-soft); color:var(--text);
  padding:14px 16px; font-size:15px; border-radius:12px; outline:none; text-align:center;
  transition:border-color .15s, box-shadow .15s;
}
.pw-input:focus{border-color:var(--blue); box-shadow:0 0 0 4px rgba(41,151,255,.22);}
.btn-enter{
  width:100%; margin-top:14px; background:var(--blue); color:#fff; border:none; padding:14px;
  font-weight:600; font-size:15px; border-radius:980px;
  transition:background .15s, transform .1s;
}
.btn-enter:hover{background:var(--blue-hover);}
.btn-enter:active{transform:scale(.98);}
.login-error{margin-top:14px; color:var(--red); font-size:13px; min-height:14px;}

/* ============ APP SHELL ============ */
.app{min-height:100vh; display:flex; flex-direction:column;}

.topbar{
  display:flex; align-items:center; gap:8px; padding:0 24px; height:52px;
  background:rgba(0,0,0,.75); backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--hairline-soft); position:sticky; top:0; z-index:50;
}
.brand{display:flex; align-items:center; white-space:nowrap; margin-right:8px;}
.brand-text{font-weight:600; font-size:14.5px; letter-spacing:-.01em;}
.brand-text b{font-weight:700;}

.tabs{display:flex; gap:2px; flex:1;}
.tab-btn{
  background:transparent; border:none; color:var(--text-secondary);
  padding:8px 14px; font-weight:510; font-size:13.5px; border-radius:8px;
  transition:background .15s var(--ease), color .15s var(--ease);
}
.tab-btn:hover{color:var(--text); background:rgba(255,255,255,.06);}
.tab-btn.active{color:var(--text); background:rgba(255,255,255,.1);}

.who-badge{display:flex; align-items:center; gap:9px; font-size:13px; color:var(--text-secondary); white-space:nowrap;}
.logout-btn{background:rgba(255,255,255,.06); border:none; color:var(--text-secondary); width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; transition:background .15s, color .15s;}
.logout-btn:hover{color:var(--red); background:rgba(255,69,58,.15);}

.main{flex:1; padding:44px 28px 100px; max-width:1240px; width:100%; margin:0 auto;}

.panel-head{display:flex; align-items:center; gap:16px; margin-bottom:28px; flex-wrap:wrap;}
.panel-head h2{
  font-weight:700; font-size:30px; letter-spacing:-.02em;
}
.panel-hint{font-size:13px; color:var(--text-tertiary);}
.btn-add{
  margin-left:auto; background:rgba(255,255,255,.08); border:1px solid var(--hairline-soft); color:var(--text);
  padding:9px 16px; font-weight:560; font-size:13px;
  border-radius:980px; transition:background .15s;
}
.btn-add:hover{background:rgba(255,255,255,.14);}

.tab-panel{display:none;}
.tab-panel.active{display:block; animation:fadein .3s var(--ease);}
@keyframes fadein{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);}}

/* ============ CHANNEL SLOTS ============ */
.channel-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(270px,1fr)); gap:14px;}
.channel-card{
  position:relative; background:var(--bg-card); border:1px solid var(--hairline-soft); border-radius:var(--r-lg);
  padding:22px; cursor:pointer; transition:transform .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);
}
.channel-card:hover{transform:translateY(-2px); border-color:var(--hairline); background:var(--bg-card-hover);}
.slot-top{display:flex; justify-content:flex-end; margin-bottom:14px;}
.slot-status{
  display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:560; color:var(--text-secondary);
  background:rgba(255,255,255,.06); border-radius:20px; padding:4px 10px 4px 8px;
}
.light{width:6px; height:6px; border-radius:50%; display:inline-block;}
.light-green{background:var(--green); box-shadow:0 0 6px var(--green); animation:pulse 2.4s infinite;}
.light-amber{background:var(--orange); box-shadow:0 0 6px var(--orange);}
.light-gray{background:var(--gray);}
@keyframes pulse{0%,100%{opacity:1;} 50%{opacity:.45;}}

.slot-emoji{
  width:52px; height:52px; border-radius:15px; margin-bottom:16px; font-size:25px;
  display:flex; align-items:center; justify-content:center;
  background:color-mix(in srgb, var(--slot-color, var(--blue)) 22%, #000 78%);
  border:1px solid color-mix(in srgb, var(--slot-color, var(--blue)) 32%, transparent);
}
.slot-name{font-weight:650; font-size:20px; letter-spacing:-.01em; line-height:1.2;}
.slot-niche{font-size:13.5px; color:var(--text-secondary); margin-top:3px; min-height:17px;}

.slot-stats{display:flex; gap:20px; margin-top:18px; padding-top:16px; border-top:1px solid var(--hairline-soft);}
.slot-stat{font-size:12px; color:var(--text-tertiary);}
.slot-stat b{color:var(--text); font-size:17px; font-weight:650; display:block; letter-spacing:-.01em;}

.channel-card.add-slot{
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px;
  background:transparent; border:1px dashed var(--hairline); color:var(--text-tertiary); min-height:186px;
}
.channel-card.add-slot:hover{color:var(--blue); border-color:var(--blue); background:rgba(41,151,255,.06); transform:none;}
.add-slot-plus{font-size:26px; font-weight:300;}

/* ============ KANBAN / TO-DO ============ */
.filter-chips{display:flex; gap:6px;}
.chip{
  background:rgba(255,255,255,.06); border:1px solid transparent; color:var(--text-secondary); padding:7px 14px;
  font-size:12.5px; font-weight:520; border-radius:980px; transition:background .15s, color .15s;
}
.chip:hover{color:var(--text);}
.chip.active{background:var(--text); color:#000;}

.kanban{display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; margin-top:26px;}
.kanban-col-head{
  display:flex; align-items:center; gap:8px; font-weight:600;
  font-size:13.5px; color:var(--text-secondary); padding-bottom:14px; margin-bottom:14px;
  border-bottom:1px solid var(--hairline-soft);
}
.kanban-drop{min-height:120px; display:flex; flex-direction:column; gap:10px;}
.kanban-drop.drag-over{background:rgba(41,151,255,.06); outline:1.5px dashed var(--blue); outline-offset:4px; border-radius:var(--r-md);}

.task-card{
  background:var(--bg-card); border:1px solid var(--hairline-soft);
  border-radius:var(--r-md); padding:14px 15px; cursor:grab; transition:border-color .15s, background .15s;
}
.task-card:hover{border-color:var(--hairline); background:var(--bg-card-hover);}
.task-card.dragging{opacity:.4;}
.task-title{font-weight:560; font-size:14.5px; line-height:1.4; letter-spacing:-.005em;}
.task-meta{display:flex; align-items:center; gap:6px; margin-top:10px; flex-wrap:wrap;}
.tag{
  font-size:11px; font-weight:590; padding:4px 9px; border-radius:20px;
  background:rgba(255,255,255,.07); color:var(--text-secondary);
}
.tag.assignee-luca{color:var(--blue); background:rgba(41,151,255,.16);}
.tag.assignee-bas{color:var(--purple); background:rgba(191,90,242,.16);}
.tag-channel{color:var(--text);}
.task-due{font-size:11px; color:var(--text-tertiary); margin-left:auto;}
.task-actions{display:flex; gap:14px; margin-top:11px;}
.icon-btn{background:none; border:none; color:var(--text-tertiary); font-size:12px; padding:0;}
.icon-btn:hover{color:var(--text);}
.icon-btn[data-del]:hover{color:var(--red);}

/* ============ SCRIPTS ============ */
.search-input{
  background:var(--bg-input); border:1px solid var(--hairline-soft); color:var(--text); padding:9px 15px;
  font-size:13px; border-radius:980px; min-width:220px; outline:none; transition:border-color .15s;
}
.search-input:focus{border-color:var(--blue);}
.script-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:14px;}
.script-card{
  background:var(--bg-card); border:1px solid var(--hairline-soft); border-radius:var(--r-lg); padding:20px; cursor:pointer;
  transition:border-color .2s var(--ease), transform .2s var(--ease), background .2s var(--ease);
}
.script-card:hover{border-color:var(--hairline); transform:translateY(-2px); background:var(--bg-card-hover);}
.script-title{font-weight:650; font-size:16px; letter-spacing:-.01em;}
.script-preview{
  font-family:var(--font-mono); font-size:11.5px; color:var(--text-secondary); margin-top:10px; line-height:1.6;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.script-foot{display:flex; gap:6px; margin-top:14px; flex-wrap:wrap;}

/* ============ NICHES ============ */
.niche-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(270px,1fr)); gap:14px;}
.niche-card{background:var(--bg-card); border:1px solid var(--hairline-soft); border-radius:var(--r-lg); padding:20px; transition:border-color .2s var(--ease);}
.niche-card:hover{border-color:var(--hairline);}
.niche-top{display:flex; justify-content:space-between; align-items:flex-start; gap:10px;}
.niche-name{font-weight:650; font-size:16px; letter-spacing:-.01em;}
.niche-link{color:var(--blue); font-size:12.5px; text-decoration:none; font-weight:560; white-space:nowrap;}
.niche-link:hover{color:var(--blue-hover);}
.niche-stars{color:var(--orange); letter-spacing:1px; font-size:12px; margin-top:6px;}
.niche-notes{font-size:13.5px; color:var(--text-secondary); margin-top:12px; line-height:1.55;}
.niche-foot{display:flex; gap:6px; margin-top:14px; flex-wrap:wrap;}

/* ============ EMPTY STATE ============ */
.empty-state{
  grid-column:1/-1; text-align:center; padding:56px 20px; color:var(--text-tertiary);
  font-size:13px; border:1px dashed var(--hairline-soft); border-radius:var(--r-lg);
}

/* ============ MODAL ============ */
.modal-root{position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:20px;}
.modal-backdrop{position:absolute; inset:0; background:rgba(0,0,0,.6); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);}
.modal-box{
  position:relative; background:var(--bg-elevated); border:1px solid var(--hairline-soft); border-radius:var(--r-lg);
  width:min(500px, 100%); max-height:88vh; overflow-y:auto; padding:28px; animation:modalIn .22s var(--ease);
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
@keyframes modalIn{from{opacity:0; transform:translateY(12px) scale(.97);} to{opacity:1; transform:none;}}
.modal-box h3{font-weight:700; font-size:21px; letter-spacing:-.015em; margin-bottom:22px;}
.field{margin-bottom:16px;}
.field label{display:block; font-size:12px; font-weight:560; color:var(--text-secondary); margin-bottom:7px;}
.field input[type=text], .field input[type=url], .field input[type=date], .field textarea, .field select{
  width:100%; background:var(--bg-input); border:1px solid var(--hairline-soft); color:var(--text); padding:11px 13px;
  border-radius:var(--r-sm); font-size:14px; outline:none; transition:border-color .15s, box-shadow .15s;
}
.field textarea{font-family:var(--font-mono); font-size:12.5px; min-height:140px; resize:vertical; line-height:1.65;}
.field input:focus, .field textarea:focus, .field select:focus{border-color:var(--blue); box-shadow:0 0 0 4px rgba(41,151,255,.18);}
.field-row{display:flex; gap:12px;}
.field-row .field{flex:1;}
.seg{display:flex; gap:2px; background:var(--bg-input); border:1px solid var(--hairline-soft); border-radius:var(--r-sm); padding:3px;}
.seg button{
  flex:1; background:transparent; border:none; color:var(--text-secondary); padding:8px;
  font-size:12.5px; font-weight:540; border-radius:7px; transition:background .15s, color .15s;
}
.seg button.selected{background:#3a3a3c; color:var(--text);}
.modal-actions{display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:26px;}
.btn-primary{background:var(--blue); color:#fff; border:none; padding:11px 22px; font-weight:600; border-radius:980px; font-size:13.5px; transition:background .15s;}
.btn-primary:hover{background:var(--blue-hover);}
.btn-ghost{background:rgba(255,255,255,.06); border:none; color:var(--text); padding:11px 18px; border-radius:980px; font-size:13.5px; font-weight:540; transition:background .15s;}
.btn-ghost:hover{background:rgba(255,255,255,.12);}
.btn-danger{background:none; border:1px solid rgba(255,69,58,.35); color:var(--red); padding:10px 17px; border-radius:980px; font-size:13.5px; font-weight:540; transition:background .15s;}
.btn-danger:hover{background:rgba(255,69,58,.12);}

/* ============ DRAWER (channel detail) ============ */
.drawer-root{position:fixed; inset:0; z-index:150;}
.drawer-backdrop{position:absolute; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);}
.drawer-box{
  position:absolute; top:0; right:0; bottom:0; width:min(740px, 96vw); background:var(--bg-elevated);
  border-left:1px solid var(--hairline-soft); overflow-y:auto; padding:36px; animation:drawerIn .28s var(--ease);
}
@keyframes drawerIn{from{transform:translateX(24px); opacity:0;} to{transform:none; opacity:1;}}
.drawer-head{display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding-bottom:24px; border-bottom:1px solid var(--hairline-soft); margin-bottom:26px;}
.drawer-close{background:rgba(255,255,255,.06); border:none; color:var(--text-secondary); width:30px; height:30px; border-radius:50%; font-size:15px; transition:background .15s, color .15s;}
.drawer-close:hover{color:var(--red); background:rgba(255,69,58,.15);}
.drawer-title{font-weight:700; font-size:30px; letter-spacing:-.02em; line-height:1.15; margin-top:10px;}
.drawer-mini-kanban{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:8px;}

/* ============ TOAST ============ */
.toast{
  position:fixed; bottom:28px; left:50%; transform:translateX(-50%) translateY(20px); z-index:400;
  background:var(--bg-elevated); border:1px solid var(--hairline); color:var(--text); padding:12px 20px; border-radius:980px;
  font-size:13px; font-weight:540; opacity:0; pointer-events:none; transition:all .3s var(--ease);
  box-shadow:0 12px 40px rgba(0,0,0,.5);
}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

@media (max-width:760px){
  .topbar{flex-wrap:wrap; height:auto; padding:12px 16px; gap:10px;}
  .tabs{order:3; width:100%; overflow-x:auto;}
  .kanban{grid-template-columns:1fr;}
  .drawer-mini-kanban{grid-template-columns:1fr;}
  .login-title{font-size:26px;}
}
