:root{--ink:#15171a;--muted:#6d7480;--line:#e2e4e8;--soft:#f6f7f8;--sidebar:#f7f7f8}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:#fff;font-size:14px}a{color:inherit}.app-sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:var(--sidebar);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:1040}.sidebar-head{height:82px;padding:20px;display:flex;align-items:center}.brand,.mobile-brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{width:38px;height:38px;border-radius:11px;background:#1d2024;color:#fff;display:grid;place-items:center;font-weight:700}.brand strong{display:block}.brand small{display:block;color:#8a9099;font-size:11px}.sidebar-close{display:none;margin-left:auto}.sidebar-scroll{padding:8px 10px;overflow-y:auto;flex:1}.nav-caption,.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:#777e89}.nav-caption{padding:18px 12px 7px}.side-nav{display:grid;gap:3px}.side-nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;text-decoration:none;font-weight:500}.side-nav a i{font-size:16px;color:#555d67}.side-nav a:hover,.side-nav a.active{background:#e9e9ed}.sidebar-user{min-height:70px;border-top:1px solid var(--line);padding:12px 14px;display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;background:#202328;color:#fff;display:grid;place-items:center;font-weight:700}.user-copy{min-width:0;flex:1}.user-copy strong,.user-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-copy strong{font-size:12px}.user-copy small{font-size:10px;color:#8a9099}.icon-btn,.modal-x{border:0;background:transparent;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;cursor:pointer}.icon-btn:hover,.modal-x:hover{background:#eceef1}.app-main{margin-left:260px;min-height:100vh}.content-wrap{width:min(1400px,100%);margin:auto;padding:36px 54px 64px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.page-head h1{font-size:36px;letter-spacing:-.035em;margin:7px 0;font-weight:650}.page-head p{color:var(--muted);margin:0;max-width:700px}.page-actions{display:flex;gap:8px}.btn{border-radius:10px;font-weight:600;font-size:13px;padding:10px 15px}.btn-dark{background:#202327;border-color:#202327}.glass-panel,.metric-card,.mini-panel,.project-card{background:#fff;border:1px solid var(--line);box-shadow:none!important;border-radius:14px}.metric-card{padding:18px}.metric-icon{width:34px;height:34px;border-radius:9px;background:var(--soft);display:grid;place-items:center;margin-bottom:18px}.metric-label,.metric-hint,.text-secondary{color:var(--muted)!important}.metric-value{font-size:28px;font-weight:650}.metric-hint{font-size:11px}.section-label{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:#7a818b;font-weight:700}.section-title{font-size:19px;font-weight:650}.project-card{padding:18px;transition:.15s}.project-card:hover{border-color:#b9bdc5;transform:translateY(-1px)}.project-card h4{font-size:15px;font-weight:650;margin:12px 0 6px}.project-card p{color:var(--muted);font-size:12px}.project-chip,.badge{border-radius:999px!important;font-size:10px;padding:6px 9px}.stack-list{display:grid;gap:8px}.stack-item{border:1px solid var(--line);border-radius:11px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}.empty-state{border:1px dashed #d5d8dd;border-radius:12px;padding:24px;color:var(--muted);text-align:center;background:#fafafa}.tiny{font-size:10px}.form-label{font-size:12px;font-weight:600}.form-control,.form-select{border:1px solid #d8dbe0;border-radius:10px;padding:11px 12px;font-size:13px;box-shadow:none!important}.form-control:focus,.form-select:focus{border-color:#808792}.modern-table td,.modern-table th{padding:13px 12px;border-color:var(--line);vertical-align:middle}.modern-table th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.app-alert{padding:11px 14px;border:1px solid #cce7dc;background:#f0faf6;color:#17664f;border-radius:10px;margin-bottom:18px;display:flex;justify-content:space-between}.app-alert button{border:0;background:none}.app-modal .modal-content{border:0;border-radius:16px;box-shadow:0 28px 90px rgba(0,0,0,.22);overflow:hidden}.app-modal .modal-header{padding:22px 24px 18px;align-items:flex-start}.app-modal h2{font-size:20px;margin:5px 0}.app-modal .modal-header p{color:var(--muted);font-size:12px;margin:0}.app-modal .modal-body{padding:20px 24px;max-height:min(65vh,650px);overflow:auto}.app-modal .modal-footer{padding:14px 24px;border-top:1px solid var(--line);background:#fff;position:sticky;bottom:0}.modal-backdrop.show{opacity:.55}.mobile-topbar{display:none}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:#f7f7f8}.auth-card{width:min(980px,100%);display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.auth-copy,.auth-form-wrap{padding:48px}.auth-copy{background:#f0f1f3}.auth-copy h1{font-size:34px;letter-spacing:-.035em;font-weight:650}.feature-list{display:grid;gap:12px}.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border:1px solid #d6d9de;background:#fff;border-radius:10px;padding:11px;font-weight:600;text-decoration:none}.google-g{font:700 18px Arial;color:#4285f4}.auth-divider{display:flex;align-items:center;gap:12px;color:#949aa3;font-size:11px;margin:20px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--line);flex:1}.auth-alert{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:9999;background:#fff;border:1px solid var(--line);padding:10px}.lab-feed{height:430px;overflow:auto}.lab-item{border:1px solid var(--line);padding:11px;border-radius:10px;margin-bottom:8px}.sidebar-scrim{display:none}
@media(max-width:991px){.mobile-topbar{position:sticky;top:0;height:60px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 14px;z-index:1030}.mobile-brand{font-weight:650}.mobile-brand .brand-mark{width:30px;height:30px}.app-sidebar{transform:translateX(-105%);transition:transform .2s;width:min(300px,88vw);box-shadow:20px 0 60px rgba(0,0,0,.16)}.app-sidebar.open{transform:translateX(0)}.sidebar-close{display:grid}.sidebar-scrim{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:1035}.sidebar-scrim.show{display:block}.app-main{margin-left:0}.content-wrap{padding:26px 18px 48px}.page-head h1{font-size:30px}.auth-card{grid-template-columns:1fr}.auth-copy{display:none}.auth-form-wrap{padding:30px 22px}}
@media(max-width:575px){.page-head{display:block}.page-actions{margin-top:16px}.page-actions .btn{width:100%}.content-wrap{padding:22px 14px 45px}.modal-dialog{margin:10px}.app-modal .modal-body{max-height:58vh}.modern-table{min-width:680px}.table-responsive{border:1px solid var(--line);border-radius:12px}.auth-shell{padding:12px}.auth-form-wrap{padding:26px 18px}}
.action-list{display:grid;gap:8px}.action-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 15px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;background:#fff;transition:.16s ease}.action-row:hover{background:var(--soft);border-color:#cfd3d8;transform:translateY(-1px)}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:12px;white-space:nowrap}
.verify-icon{width:62px;height:62px;margin:auto;border-radius:18px;background:#eef8f3;color:#13845e;display:grid;place-items:center;font-size:28px}.confirm-card{width:min(480px,100%);padding:38px;background:#fff;border:1px solid var(--line);border-radius:18px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.08)}.confirm-card h1{font-size:28px;letter-spacing:-.03em;margin:10px 0}.modal-copy{color:var(--muted);margin:4px 0 0;font-size:12px}
