/* ══════════ NEXUS OS — Design System ══════════ */
:root{
  --bg:#0b0e14; --bg-2:#11151f; --surface:#151a26; --surface-2:#1b2130; --surface-3:#232b3d;
  --border:#242c3f; --border-2:#2f3a52;
  --text:#e8ecf4; --text-2:#a7b0c4; --text-3:#6b7690;
  --accent:#6d5cff; --accent-2:#8b7bff; --accent-soft:rgba(109,92,255,.16);
  --cyan:#22d3ee; --green:#34d399; --amber:#fbbf24; --red:#f87171;
  --radius:14px; --radius-sm:9px; --shadow:0 18px 50px rgba(0,0,0,.45);
  --font:'Inter',system-ui,sans-serif; --mono:'JetBrains Mono',monospace;
}
[data-theme="light"]{
  --bg:#f4f6fb; --bg-2:#e9edf5; --surface:#ffffff; --surface-2:#f0f3f9; --surface-3:#e2e7f0;
  --border:#dde3ee; --border-2:#c9d2e4;
  --text:#141a28; --text-2:#4a556e; --text-3:#8a94ad;
  --accent:#5b4bff; --accent-2:#4a3ae0; --accent-soft:rgba(91,75,255,.12);
  --shadow:0 18px 45px rgba(30,40,70,.14);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow:hidden}
.hidden{display:none !important}
.muted{color:var(--text-2)}
small{color:var(--text-3);font-weight:400}
kbd{font-family:var(--mono);font-size:11px;background:var(--surface-3);border:1px solid var(--border-2);border-radius:5px;padding:1px 6px;color:var(--text-2)}
hr{border:none;border-top:1px solid var(--border);margin:6px 0}

/* ══════════ Buttons ══════════ */
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 16px;font:600 13px var(--font);cursor:pointer;transition:all .18s ease;color:var(--text);background:var(--surface-2);border-color:var(--border-2)}
.btn:hover{transform:translateY(-1px);border-color:var(--accent)}
.btn-primary{background:linear-gradient(135deg,var(--accent),#4f3dff);border-color:transparent;color:#fff;box-shadow:0 6px 22px rgba(109,92,255,.35)}
.btn-primary:hover{box-shadow:0 8px 28px rgba(109,92,255,.5)}
.btn-ghost{background:transparent;border-color:var(--border)}
.btn-danger{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.4);color:var(--red)}
.btn-sm{padding:6px 11px;font-size:12px}
.btn-block{width:100%;justify-content:center}
.icon-btn{background:transparent;border:1px solid transparent;color:var(--text-2);width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:16px;display:inline-flex;align-items:center;justify-content:center;transition:all .15s}
.icon-btn:hover{background:var(--surface-2);color:var(--text)}
.link-btn{background:none;border:none;color:var(--accent-2);cursor:pointer;font:500 12px var(--font);padding:4px 0}
.link-btn:hover{text-decoration:underline}

/* ══════════ Auth screen ══════════ */
.auth-screen{display:grid;grid-template-columns:1.15fr 1fr;height:100vh}
.auth-art{position:relative;overflow:hidden;background:radial-gradient(1200px 700px at 20% 10%,#1c1440 0%,transparent 55%),radial-gradient(900px 600px at 85% 90%,#0b2b3a 0%,transparent 55%),var(--bg-2);display:flex;align-items:center;justify-content:center;padding:48px}
.auth-art::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(139,123,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(139,123,255,.06) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
.auth-art-inner{position:relative;max-width:520px}
.brand-mark{font-size:64px;color:var(--accent-2);text-shadow:0 0 60px rgba(139,123,255,.7);line-height:1}
.brand-mark.small{font-size:22px}
.auth-art h1{font-size:56px;font-weight:800;letter-spacing:-2px;margin:18px 0 6px}
.auth-art h1 span{background:linear-gradient(120deg,var(--accent-2),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.auth-tag{color:var(--text-2);font-size:16px;margin-bottom:28px}
.auth-modules{display:flex;flex-wrap:wrap;gap:8px}
.auth-modules span{font-size:11px;color:var(--text-2);border:1px solid var(--border-2);background:rgba(21,26,38,.6);backdrop-filter:blur(4px);padding:5px 11px;border-radius:999px}
.auth-panel{display:flex;align-items:center;justify-content:center;padding:32px;background:var(--bg)}
.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.auth-tabs{display:flex;gap:4px;background:var(--surface-2);padding:4px;border-radius:var(--radius-sm);margin-bottom:20px}
.auth-tab{flex:1;background:transparent;border:none;color:var(--text-2);padding:9px;border-radius:7px;cursor:pointer;font:600 13px var(--font)}
.auth-tab.active{background:var(--surface-3);color:var(--text)}
.auth-form{display:flex;flex-direction:column;gap:14px}
.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--text-2)}
.auth-form input{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);padding:11px 12px;color:var(--text);font:400 14px var(--font);outline:none;transition:border .15s}
.auth-form input:focus{border-color:var(--accent)}
.auth-error{margin-top:14px;background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.35);color:var(--red);padding:10px 12px;border-radius:var(--radius-sm);font-size:12px}

/* ══════════ App shell ══════════ */
.app-shell{display:grid;grid-template-columns:264px 1fr;height:100vh}
.sidebar{background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:14px 12px;gap:12px;overflow:hidden;transition:width .25s}
.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 6px}
.brand-text{font-weight:800;letter-spacing:-.5px;font-size:17px}
.brand-text span{color:var(--accent-2)}
.sidebar-brand .icon-btn{margin-left:auto}
.palette-trigger{width:100%;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);color:var(--text-3);border-radius:var(--radius-sm);padding:9px 11px;cursor:pointer;font:400 12px var(--font)}
.palette-trigger kbd{margin-left:auto}
.palette-trigger:hover{border-color:var(--accent);color:var(--text-2)}
.nav-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding-right:2px}
.nav-list::-webkit-scrollbar{width:6px}
.nav-list::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:3px}
.nav-section{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-3);padding:12px 10px 5px;font-weight:700}
.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;border:1px solid transparent;background:transparent;text-align:left;font:500 13px var(--font);width:100%;transition:all .15s}
.nav-item:hover{background:var(--surface);color:var(--text)}
.nav-item.active{background:var(--accent-soft);color:var(--accent-2);border-color:rgba(109,92,255,.35)}
.nav-item .nav-ico{width:20px;text-align:center;font-size:14px}
.nav-item .nav-count{margin-left:auto;font-size:10px;background:var(--surface-3);color:var(--text-2);border-radius:999px;padding:1px 7px}
.sidebar-foot{display:flex;align-items:center;gap:8px;border-top:1px solid var(--border);padding-top:12px}
.plan-chip{flex:1;font-size:11px;font-weight:700;color:var(--accent-2);background:var(--accent-soft);border:1px solid rgba(109,92,255,.3);border-radius:999px;padding:6px 12px;text-align:center}
.app-shell.collapsed{grid-template-columns:76px 1fr}
.app-shell.collapsed .brand-text,.app-shell.collapsed .palette-trigger,.app-shell.collapsed .nav-section,.app-shell.collapsed .nav-item span:not(.nav-ico),.app-shell.collapsed .plan-chip{display:none}
.app-shell.collapsed .nav-item{justify-content:center}

.main-col{display:flex;flex-direction:column;min-width:0}
.topbar{height:56px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 18px;background:var(--bg)}
.crumbs{font-weight:700;font-size:13px;color:var(--text-2)}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px;position:relative}
.notif-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--red)}
.profile-wrap{position:relative}
.profile-btn{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:4px 12px 4px 4px;cursor:pointer;color:var(--text)}
.avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--cyan));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.profile-name{font-size:12px;font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.caret{color:var(--text-3);font-size:10px}
.menu{position:absolute;right:0;top:calc(100% + 8px);background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius-sm);box-shadow:var(--shadow);min-width:230px;z-index:60;overflow:hidden}
.menu button{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text-2);padding:10px 14px;cursor:pointer;font:500 13px var(--font)}
.menu button:hover{background:var(--surface-2);color:var(--text)}
.menu button.danger{color:var(--red)}

.view{flex:1;overflow-y:auto;padding:22px 24px 60px}
.view::-webkit-scrollbar{width:8px}
.view::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:4px}

/* ══════════ Cards & grids ══════════ */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.page-head h1{font-size:24px;font-weight:800;letter-spacing:-.6px}
.page-head p{color:var(--text-2);font-size:13px;margin-top:2px}
.grid{display:grid;gap:14px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}
.card h3{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--text-3);margin-bottom:10px;font-weight:700}
.stat-value{font-size:28px;font-weight:800;letter-spacing:-1px}
.stat-sub{font-size:11px;color:var(--text-3);margin-top:2px}
.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.module-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:all .18s;text-align:left;color:var(--text)}
.module-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 12px 32px rgba(0,0,0,.35)}
.module-card .m-ico{font-size:22px;margin-bottom:8px}
.module-card h4{font-size:14px;font-weight:700}
.module-card p{font-size:11px;color:var(--text-2);margin:4px 0 10px;min-height:32px}
.module-card .m-foot{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--text-3)}
.badge{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface-3);color:var(--text-2);text-transform:uppercase;letter-spacing:.5px}
.badge.green{background:rgba(52,211,153,.15);color:var(--green)}
.badge.amber{background:rgba(251,191,36,.15);color:var(--amber)}
.badge.red{background:rgba(248,113,113,.15);color:var(--red)}
.badge.accent{background:var(--accent-soft);color:var(--accent-2)}

/* ══════════ Tables ══════════ */
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}
table{width:100%;border-collapse:collapse;font-size:12px}
th{text-align:left;padding:10px 12px;background:var(--surface-2);color:var(--text-3);text-transform:uppercase;font-size:10px;letter-spacing:1px}
td{padding:10px 12px;border-top:1px solid var(--border)}
tr:hover td{background:var(--surface-2)}

/* ══════════ Forms ══════════ */
.form-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.input,select.input,textarea.input{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);padding:9px 11px;color:var(--text);font:400 13px var(--font);outline:none;min-width:0}
.input:focus{border-color:var(--accent)}
textarea.input{width:100%;min-height:80px;resize:vertical;font-family:var(--mono);font-size:12px}
.field{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:600;color:var(--text-2);flex:1;min-width:160px}

/* ══════════ Chat ══════════ */
.chat-layout{display:grid;grid-template-columns:280px 1fr;gap:14px;height:calc(100vh - 130px)}
.chat-side{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}
.chat-side-head{padding:12px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.conv-list{flex:1;overflow-y:auto}
.conv-item{padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;font-size:12px;color:var(--text-2)}
.conv-item:hover{background:var(--surface-2)}
.conv-item.active{background:var(--accent-soft);color:var(--accent-2)}
.chat-main{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}
.chat-messages{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px}
.msg{max-width:78%;padding:10px 14px;border-radius:14px;font-size:13px;white-space:pre-wrap;word-wrap:break-word}
.msg.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}
.msg.assistant{align-self:flex-start;background:var(--surface-2);border:1px solid var(--border);border-bottom-left-radius:4px}
.chat-input{display:flex;gap:10px;padding:12px;border-top:1px solid var(--border)}
.chat-input textarea{flex:1;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);padding:10px;color:var(--text);resize:none;height:52px;outline:none;font-family:var(--font)}

/* ══════════ Notification panel / palette / toast ══════════ */
.notif-panel{position:fixed;top:60px;right:18px;width:360px;max-height:480px;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius);box-shadow:var(--shadow);z-index:70;display:flex;flex-direction:column;overflow:hidden}
.notif-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border)}
.notif-list{overflow-y:auto}
.notif-item{padding:11px 14px;border-bottom:1px solid var(--border);font-size:12px}
.notif-item.unread{border-left:3px solid var(--accent)}
.notif-item small{display:block;color:var(--text-3);margin-top:3px}
.palette{position:fixed;inset:0;background:rgba(4,6,12,.6);backdrop-filter:blur(3px);z-index:80;display:flex;justify-content:center;padding-top:14vh}
.palette-box{width:min(560px,92vw);background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;height:max-content}
.palette-box input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--border);padding:16px 18px;color:var(--text);font-size:15px;outline:none}
.palette-results{max-height:340px;overflow-y:auto}
.palette-item{display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:transparent;border:none;color:var(--text-2);padding:11px 16px;cursor:pointer;font-size:13px}
.palette-item:hover,.palette-item.sel{background:var(--accent-soft);color:var(--accent-2)}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--surface-3);border:1px solid var(--border-2);color:var(--text);padding:10px 18px;border-radius:999px;font-size:12px;z-index:90;box-shadow:var(--shadow)}
.only-mobile{display:none}

@media (max-width:1100px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
  .auth-screen{grid-template-columns:1fr}.auth-art{display:none}
  .app-shell{grid-template-columns:1fr}
  .sidebar{position:fixed;left:-280px;top:0;bottom:0;width:264px;z-index:75;transition:left .25s}
  .sidebar.open{left:0}
  .only-mobile{display:inline-flex}
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr}
  .chat-layout{grid-template-columns:1fr;height:auto}
  .profile-name{display:none}
}
