:root{
    --bg:#070b14;
    --panel:#101827;
    --panel-2:#121d31;
    --border:rgba(148,163,184,.18);
    --text:#e5edf7;
    --muted:#94a3b8;
    --cyan:#22d3ee;
    --emerald:#34d399;
    --amber:#fbbf24;
    --rose:#fb7185;
    --violet:#a78bfa;
}
*{letter-spacing:0;}
body{background:var(--bg);color:var(--text);font-family:'Sarabun',Arial,'Tahoma',sans-serif;font-weight:400;}
a{text-decoration:none;}
.app-shell{min-height:100vh;display:flex;background:radial-gradient(circle at top left,rgba(34,211,238,.14),transparent 34%),radial-gradient(circle at 78% 8%,rgba(167,139,250,.12),transparent 28%),var(--bg);}
.sidebar{width:280px;min-height:100vh;position:sticky;top:0;flex-direction:column;padding:22px;background:rgba(9,14,25,.88);border-right:1px solid var(--border);backdrop-filter:blur(18px);}
.brand-box{display:flex;align-items:center;gap:12px;}
.brand-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--cyan),var(--violet));color:#08111f;font-size:22px;box-shadow:0 10px 34px rgba(34,211,238,.24);}
.brand-logo{width:58px;height:58px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 34px rgba(0,0,0,.28);overflow:hidden;flex:0 0 auto;}
.brand-logo img{width:100%;height:100%;object-fit:contain;padding:6px;display:block;}
.login-logo{width:74px;height:74px;border-radius:18px;}
.brand-title{font-weight:800;font-size:18px;color:#fff;line-height:1.1;}
.brand-subtitle,.page-kicker{font-size:12px;color:var(--muted);text-transform:uppercase;}
.side-nav{display:flex;flex-direction:column;gap:8px;margin-top:28px;}
.side-nav a{display:flex;align-items:center;gap:12px;color:#cbd5e1;padding:12px 14px;border:1px solid transparent;border-radius:10px;}
.side-nav a:hover{background:rgba(34,211,238,.08);border-color:rgba(34,211,238,.22);color:#fff;}
.side-nav i{width:20px;color:var(--cyan);}
.side-user{margin-top:auto;border-top:1px solid var(--border);padding-top:18px;}
.main-panel{flex:1;min-width:0;}
.topbar{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--border);background:rgba(7,11,20,.72);backdrop-filter:blur(16px);position:sticky;top:0;z-index:5;}
.page-title{font-size:24px;margin:0;font-weight:800;}
.content-wrap{padding:24px;}
.card-dark{background:linear-gradient(180deg,rgba(18,29,49,.96),rgba(13,20,34,.96));border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 55px rgba(0,0,0,.22);}
.stat-card{padding:18px;min-height:128px;position:relative;overflow:hidden;}
.stat-card:after{content:'';position:absolute;right:-22px;top:-22px;width:88px;height:88px;border-radius:50%;background:rgba(34,211,238,.13);}
.stat-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(34,211,238,.13);color:var(--cyan);font-size:20px;}
.stat-number{font-size:34px;font-weight:800;margin-top:12px;}
.muted{color:var(--muted);}
.btn-cyan{background:linear-gradient(135deg,var(--cyan),#38bdf8);color:#03131d;border:0;font-weight:700;}
.btn-emerald{background:linear-gradient(135deg,var(--emerald),#10b981);color:#04130d;border:0;font-weight:700;}
.form-control,.form-select{background:#0b1220;border:1px solid var(--border);color:var(--text);}
.form-control:focus,.form-select:focus{background:#0b1220;color:var(--text);border-color:var(--cyan);box-shadow:0 0 0 .2rem rgba(34,211,238,.12);}
.table{--bs-table-bg:transparent;--bs-table-color:var(--text);--bs-table-border-color:var(--border);}
.table thead th{color:#a7f3d0;font-size:13px;font-weight:700;text-transform:uppercase;}
.login-body{min-height:100vh;background:radial-gradient(circle at 20% 20%,rgba(34,211,238,.18),transparent 32%),radial-gradient(circle at 78% 5%,rgba(251,113,133,.14),transparent 26%),var(--bg);display:grid;place-items:center;padding:18px;}
.login-panel{width:min(440px,100%);padding:28px;background:rgba(16,24,39,.92);border:1px solid var(--border);border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.35);}
.login-hint{font-size:13px;color:var(--muted);}
.task-card{padding:16px;margin-bottom:12px;}
.progress{height:10px;background:#0b1220;}
.update-timeline{border-left:2px solid rgba(34,211,238,.25);margin-left:8px;padding-left:18px;}
.update-item{position:relative;margin-bottom:16px;padding:14px;border-radius:12px;background:rgba(15,23,42,.82);border:1px solid var(--border);}
.update-item:before{content:'';position:absolute;left:-25px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px rgba(34,211,238,.12);}
.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;}
.image-grid img,.preview-img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:10px;border:1px solid var(--border);}
.preview-img{max-width:120px;margin:6px;}
.calendar-day{min-height:120px;padding:12px;border-radius:12px;background:rgba(15,23,42,.82);border:1px solid var(--border);}
.loader-line{height:4px;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--violet),var(--emerald));animation:pulse 1s linear infinite;}
@keyframes pulse{0%{opacity:.35}50%{opacity:1}100%{opacity:.35}}
@media(max-width: 991.98px){.content-wrap{padding:16px}.topbar{padding:14px 16px}.page-title{font-size:18px}.stat-number{font-size:28px}.table-responsive-stack table,.table-responsive-stack thead,.table-responsive-stack tbody,.table-responsive-stack th,.table-responsive-stack td,.table-responsive-stack tr{display:block}.table-responsive-stack thead{display:none}.table-responsive-stack tr{background:rgba(15,23,42,.86);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:10px}.table-responsive-stack td{border:0;padding:7px 4px}.table-responsive-stack td:before{content:attr(data-label);display:block;color:var(--muted);font-size:12px}.side-nav.mobile{margin-top:0}.side-nav.mobile a{color:#fff}}