@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#062f4f;--navy2:#084d70;--cyan:#19b9c6;--teal:#20c997;--ink:#102338;--muted:#698094;--line:#dce7ee;--soft:#f4f8fb;--white:#fff;--danger:#dc2626;--warning:#d97706;--success:#059669;font-family:Manrope,system-ui,sans-serif;color:var(--ink);background:var(--soft)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.boot{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:16px;color:var(--navy);font-weight:800}.boot-logo,.logo{display:grid;place-items:center;background:linear-gradient(135deg,#1fd0da,#5eead4);color:#063b56;font-weight:900;box-shadow:0 12px 35px #04617b35}.boot-logo{width:66px;height:66px;border-radius:20px;font-size:30px}.boot-line{width:160px;height:4px;border-radius:99px;background:linear-gradient(90deg,#dbeafe,var(--cyan),#dbeafe);background-size:200%;animation:load 1.2s linear infinite}@keyframes load{to{background-position:-200%}}
/* Login */.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(420px,.82fr);background:#eef6fa}.login-hero{position:relative;overflow:hidden;padding:70px clamp(55px,7vw,110px);display:flex;flex-direction:column;justify-content:center;color:#fff;background:linear-gradient(145deg,#042b47 0%,#075985 55%,#0d9488 120%)}.login-hero:before,.login-hero:after{content:"";position:absolute;border-radius:50%;filter:blur(2px)}.login-hero:before{width:500px;height:500px;border:1px solid #ffffff17;right:-180px;top:-120px;box-shadow:0 0 0 80px #ffffff06,0 0 0 160px #ffffff04}.login-hero:after{width:260px;height:260px;background:#22d3ee18;left:-110px;bottom:-90px}.hero-content{position:relative;z-index:1;max-width:760px}.wordmark{display:flex;align-items:center;gap:14px;font-weight:900;letter-spacing:.2em}.wordmark .logo{width:45px;height:45px;border-radius:14px;letter-spacing:0}.eyebrow{margin-top:68px;font-size:13px;font-weight:800;letter-spacing:.16em;color:#a5f3fc;text-transform:uppercase}.login-hero h1{font-size:clamp(45px,5.2vw,76px);line-height:1.06;letter-spacing:-.045em;margin:18px 0 24px;max-width:800px}.login-hero p{font-size:18px;line-height:1.75;color:#d7f5fa;max-width:670px}.feature-row{display:flex;flex-wrap:wrap;gap:11px;margin-top:34px}.feature-row span{border:1px solid #ffffff2c;background:#ffffff0d;backdrop-filter:blur(9px);padding:10px 14px;border-radius:999px;font-size:13px;font-weight:700}.login-panel{display:grid;place-items:center;padding:38px;background:radial-gradient(circle at 40% 10%,#fff,#edf5f8)}.login-card{width:min(440px,100%);background:#ffffffed;backdrop-filter:blur(18px);border:1px solid #fff;border-radius:28px;padding:38px;box-shadow:0 30px 80px #06324d1b}.login-card .logo{width:56px;height:56px;border-radius:17px;font-size:25px}.login-card h2{font-size:30px;letter-spacing:-.03em;margin:22px 0 7px}.sub{color:var(--muted);line-height:1.65;margin:0 0 26px}.form-group{margin:17px 0}.form-group label{display:block;font-size:13px;font-weight:800;margin-bottom:8px}.input-wrap{display:flex;align-items:center;gap:10px;border:1px solid #d5e2ea;background:#fff;border-radius:13px;padding:0 14px;transition:.2s}.input-wrap:focus-within{border-color:var(--cyan);box-shadow:0 0 0 4px #22d3ee16}.input-wrap svg{color:#7c92a4}.input-wrap input{border:0;outline:0;padding:14px 0;width:100%;background:transparent}.password-toggle{border:0;background:transparent;color:#5d7487;padding:5px}.btn-primary{border:0;color:#fff;background:linear-gradient(135deg,#087fb4,#0d9488);border-radius:13px;padding:14px 18px;font-weight:800;box-shadow:0 12px 24px #087fa52b;transition:.18s}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 15px 29px #087fa53e}.btn-primary:disabled{opacity:.65;transform:none}.wide{width:100%;margin-top:7px}.message{padding:12px 14px;border-radius:11px;font-size:13px;margin:13px 0}.message.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.message.network{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.secure-note{display:flex;align-items:center;justify-content:center;gap:7px;color:#7890a2;font-size:12px;margin:18px 0 0}
/* App shell */.shell{min-height:100vh;display:flex}.sidebar{width:272px;padding:18px 14px;background:linear-gradient(180deg,#052e49,#064e6a);color:#fff;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:30;transition:.23s}.sidebar.compact{width:84px}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 23px}.sidebar-brand .logo{width:43px;height:43px;border-radius:14px;flex:none}.brand-copy{white-space:nowrap}.brand-copy b{font-size:17px;letter-spacing:.1em}.brand-copy small{display:block;color:#99dce7;font-size:10px;margin-top:2px}.compact .brand-copy,.compact .nav-label,.compact .nav-section,.compact .user-copy{display:none}.nav-section{font-size:10px;letter-spacing:.14em;color:#75afc2;font-weight:800;padding:16px 12px 7px}.nav-item{width:100%;border:0;background:transparent;color:#cfe7f1;display:flex;align-items:center;gap:13px;padding:11px 13px;border-radius:12px;margin:2px 0;text-align:left;font-size:13px;font-weight:650;transition:.15s}.nav-item svg{width:19px;flex:none}.nav-item:hover{color:#fff;background:#ffffff0d}.nav-item.active{background:linear-gradient(90deg,#ffffff20,#ffffff0a);color:#fff;box-shadow:inset 3px 0 #4de0d2}.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff12;padding-top:13px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:7px}.avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#e6fbfd;color:#075985;font-weight:900;flex:none}.user-copy b{display:block;font-size:12px;white-space:nowrap;max-width:155px;overflow:hidden;text-overflow:ellipsis}.user-copy small{font-size:10px;color:#9bc9d7}.app-main{margin-left:272px;min-width:0;flex:1;transition:.23s}.sidebar.compact~.app-main{margin-left:84px}.topbar{height:74px;background:#fffffff0;backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 25px;position:sticky;top:0;z-index:20}.icon-btn{border:0;background:#edf5f8;color:#0b627f;width:40px;height:40px;border-radius:11px;display:grid;place-items:center}.global-search{position:relative;max-width:600px;flex:1}.global-search svg{position:absolute;left:13px;top:12px;color:#8196a6}.global-search input{width:100%;border:1px solid #e0e9ef;background:#f4f8fa;border-radius:12px;padding:11px 14px 11px 40px;outline:none}.top-actions{margin-left:auto;display:flex;gap:10px;align-items:center}.top-user{display:flex;gap:10px;align-items:center;padding-left:8px}.top-user b{display:block;font-size:12px}.top-user small{font-size:10px;color:var(--muted)}.page{padding:27px;max-width:1600px;margin:auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:23px}.page-head h1{font-size:28px;letter-spacing:-.035em;margin:0}.page-head p{margin:7px 0 0;color:var(--muted);font-size:13px}.head-actions{display:flex;gap:10px}.btn-secondary{border:1px solid var(--line);background:#fff;color:#385169;border-radius:11px;padding:10px 14px;font-weight:700}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.kpi{background:#fff;border:1px solid #e0e9ee;border-radius:18px;padding:18px;box-shadow:0 10px 35px #153d5310;display:flex;gap:14px;align-items:center}.kpi-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#e0f7fb,#e7f9f3);color:#087b92}.kpi span{display:block;color:var(--muted);font-size:12px;font-weight:700}.kpi strong{display:block;font-size:27px;letter-spacing:-.03em;margin:3px 0}.kpi small{color:#8da0ae;font-size:10px}.layout-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;margin-top:17px}.panel{background:#fff;border:1px solid #e0e9ee;border-radius:18px;padding:20px;box-shadow:0 10px 35px #153d5310}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-title h3{margin:0;font-size:15px}.badge{font-size:10px;font-weight:800;padding:5px 9px;border-radius:999px;background:#e6f8fa;color:#08768b}.empty-state{min-height:230px;border:1px dashed #c9d8e2;border-radius:14px;background:linear-gradient(145deg,#fbfdfe,#f4f9fb);display:grid;place-items:center;text-align:center;color:#788e9e;padding:30px}.empty-state svg{width:38px;height:38px;color:#9ab4c3;margin-bottom:9px}.empty-state b{display:block;color:#4b6578}.module-panel{padding:0;overflow:hidden}.table-toolbar{display:flex;gap:10px;padding:16px;border-bottom:1px solid #e5edf2;background:#fcfdfe}.table-toolbar input{flex:1;border:1px solid var(--line);outline:0;border-radius:11px;padding:10px 13px}.skeleton-table{padding:15px}.skeleton-row{height:48px;border-bottom:1px solid #eef3f6;display:grid;grid-template-columns:1.2fr 1fr .8fr .7fr;align-items:center;gap:15px}.skeleton{height:10px;border-radius:99px;background:linear-gradient(90deg,#edf3f6,#f8fbfc,#edf3f6);background-size:200%;animation:load 1.6s linear infinite}.toast-wrap{position:fixed;right:22px;bottom:22px;z-index:100;display:grid;gap:9px}.toast{background:#102f43;color:#fff;padding:13px 16px;border-radius:12px;box-shadow:0 12px 40px #06283b44;font-size:12px}.toast.error{background:#991b1b}.toast.success{background:#047857}
@media(max-width:1080px){.login-page{grid-template-columns:1fr}.login-hero{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.layout-grid{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{transform:translateX(-100%);width:272px}.sidebar.mobile-open{transform:translateX(0)}.app-main,.sidebar.compact~.app-main{margin-left:0}.page{padding:18px}.topbar{padding:0 15px}.global-search{display:none}.top-user>div:last-child{display:none}.kpi-grid{grid-template-columns:1fr}.page-head{align-items:stretch;flex-direction:column}.head-actions .btn-primary{flex:1}.login-panel{padding:20px}.login-card{padding:27px}}
