:root{--blue:#078fc8;--blue2:#12a7da;--navy:#073d68;--navy2:#052e51;--yellow:#ffd21b;--ink:#15293a;--muted:#708596;--line:#dfeaf0;--bg:#f3f7fa;--white:#fff;--green:#1caf79;--red:#e95561;--orange:#f0a124;--shadow:0 10px 30px rgba(18,57,82,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}img{max-width:100%}.app-shell{min-height:100vh}.app-sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:linear-gradient(175deg,var(--navy),var(--navy2));color:#fff;padding:20px 17px;z-index:60;display:flex;flex-direction:column;overflow-y:auto}.app-brand{display:flex;gap:12px;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);padding:2px 7px 18px}.app-brand img{width:47px;height:47px;object-fit:contain;background:#fff;border-radius:14px;padding:4px}.app-brand span{display:grid;gap:2px}.app-brand strong{font-size:17px;letter-spacing:.11em}.app-brand small{font-size:11px;color:#a6c7d9}.role-pill{display:flex;gap:10px;align-items:center;margin:16px 5px 4px;padding:11px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06);border-radius:13px}.role-pill>span{width:34px;height:34px;border-radius:10px;background:#1297c8;display:grid;place-items:center;font-size:11px;font-weight:800}.role-pill div{min-width:0;display:grid;gap:2px}.role-pill b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-pill small{color:#9ebbcf;font-size:10px}.side-menu{display:grid;gap:4px;margin-top:16px}.side-menu>p{font-size:9px;letter-spacing:.18em;color:#79a7c1;margin:0 10px 6px}.menu-link,.menu-toggle{min-height:42px;padding:8px 11px;border-radius:11px;display:flex;align-items:center;gap:11px;color:#bdd1dd;background:transparent;border:0;width:100%;text-align:left;cursor:pointer}.menu-link i,.menu-toggle i{font-style:normal;width:25px;height:25px;border:1px solid rgba(149,190,213,.26);border-radius:7px;display:grid;place-items:center;font-size:11px;color:#88b0c8}.menu-link span,.menu-toggle span{font-size:12px;flex:1}.menu-link.active{background:linear-gradient(90deg,#0c8fc3,#0b7faa);color:#fff;box-shadow:0 10px 22px rgba(2,35,56,.32)}.menu-link.active i{border-color:#89d8f2;color:#fff}.menu-toggle b{font-size:11px;transition:.2s}.menu-group.open .menu-toggle b{transform:rotate(180deg)}.submenu{display:none;padding:1px 0 6px 46px}.menu-group.open .submenu{display:grid}.submenu a{font-size:11px;color:#99b7c9;padding:8px 9px;border-left:1px solid #2d6484}.submenu a.active{color:#fff;border-color:var(--yellow);background:rgba(255,255,255,.05);border-radius:0 8px 8px 0}.sidebar-foot{margin-top:auto;padding-top:16px}.sidebar-foot a{display:grid;gap:6px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:13px}.sidebar-foot b{font-size:11px}.sidebar-foot small{font-size:10px;color:#9fbfd0}.app-workspace{margin-left:270px;min-height:100vh}.app-topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);padding:0 29px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:45}.topbar-left,.top-actions,.top-profile{display:flex;align-items:center}.topbar-left{gap:12px}.hamburger{display:none;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:#f7fafb;color:var(--navy);cursor:pointer}.topbar-date{display:grid;gap:3px}.topbar-date b{font-size:12px}.topbar-date small{font-size:10px;color:var(--muted)}.top-actions{gap:12px}.icon-button{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;color:var(--navy);position:relative;font-size:17px}.icon-button em{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--red);right:7px;top:7px}.top-profile{gap:8px}.top-profile>span{width:35px;height:35px;border-radius:10px;background:#ddf3fb;color:var(--navy);display:grid;place-items:center;font-size:11px;font-weight:800}.top-profile div{display:grid;gap:2px;max-width:160px}.top-profile b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-profile small{font-size:9px;color:var(--muted)}.logout{font-size:18px;color:#8093a1;padding:7px}.mobile-logo{width:38px;height:38px;object-fit:contain}.app-content{padding:28px;max-width:1580px;margin:auto}.flash{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;border-radius:12px;padding:12px 15px;margin-bottom:14px;font-size:12px;border:1px solid}.flash button{border:0;background:transparent;font-size:18px;cursor:pointer;color:inherit}.flash ul{margin:0;padding-left:18px}.flash-success{background:#e8f8f1;border-color:#c9ebdd;color:#147651}.flash-warning{background:#fff7dc;border-color:#f4e4a9;color:#8a6200}.flash-error{background:#feedef;border-color:#f3cdd1;color:#a32c38}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.page-head p{font-size:10px;letter-spacing:.15em;color:var(--blue);font-weight:800;margin:0 0 6px}.page-head h1{font-size:25px;letter-spacing:-.03em;margin:0}.page-head>div>span{display:block;color:var(--muted);font-size:11px;margin-top:6px}.head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn{border:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:9px 13px;font-size:11px;font-weight:700;cursor:pointer}.btn-primary{background:var(--navy);color:#fff}.btn-accent{background:var(--yellow);color:#24384a}.btn-soft{background:#e8f5fa;color:#0878a5}.btn-danger{background:#feecef;color:#c83644}.btn-success{background:#e5f7ef;color:#16875e}.btn-outline{background:#fff;color:var(--navy);border:1px solid var(--line)}.btn-sm{min-height:30px;padding:6px 9px;font-size:10px}.hero-card{background:linear-gradient(115deg,#073d68,#0786b6 64%,#10a3d5);border-radius:22px;padding:26px 28px;color:#fff;display:flex;align-items:end;justify-content:space-between;position:relative;overflow:hidden;box-shadow:0 18px 40px rgba(7,59,104,.14);margin-bottom:16px}.hero-card:after{content:"";position:absolute;width:250px;height:250px;border:50px solid rgba(255,255,255,.055);border-radius:50%;right:-75px;top:-125px}.hero-card p{font-size:9px;letter-spacing:.16em;color:#add8ea;font-weight:800;margin:0 0 8px}.hero-card h1{font-size:27px;margin:0;letter-spacing:-.03em}.hero-card span{display:block;color:#d1e8f2;font-size:11px;margin-top:7px;line-height:1.6}.hero-card .btn{position:relative;z-index:2}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;position:relative;box-shadow:0 5px 17px rgba(16,64,91,.04)}.stat-card p{font-size:10px;color:var(--muted);margin:0}.stat-card strong{font-size:24px;display:block;margin-top:8px;letter-spacing:-.04em}.stat-card small{display:block;color:#8496a3;font-size:9px;margin-top:6px}.stat-card i{position:absolute;right:13px;top:13px;width:29px;height:29px;border-radius:9px;background:#e8f6fb;color:var(--blue);display:grid;place-items:center;font-style:normal}.stat-card.green i{background:#e6f8f1;color:var(--green)}.stat-card.yellow i{background:#fff7d9;color:#af8200}.stat-card.red i{background:#feedef;color:var(--red)}.grid-2{display:grid;grid-template-columns:1.3fr .9fr;gap:16px}.grid-equal{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;box-shadow:0 5px 18px rgba(17,64,89,.035);min-width:0}.panel+.panel{}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}.panel-head p{font-size:9px;letter-spacing:.14em;color:#8297a5;font-weight:800;margin:0 0 5px}.panel-head h2{font-size:16px;margin:0}.data-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}.data-table{width:100%;border-collapse:collapse;background:#fff;min-width:720px}.data-table th{background:#f6fafc;text-align:left;padding:11px 12px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#718694;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:11px 12px;border-bottom:1px solid #edf2f5;font-size:11px;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fbfdfe}.data-table strong{font-size:11px}.data-table small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.table-actions{display:flex;gap:5px;align-items:center;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:5px 8px;font-size:9px;font-weight:700;white-space:nowrap}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.badge-success{background:#e7f8f1;color:#16885f}.badge-warning{background:#fff6d8;color:#a97400}.badge-danger{background:#feedef;color:#c73f4b}.badge-info{background:#e7f5fb;color:#087da9}.empty-state{text-align:center;padding:42px 20px;color:var(--muted)}.empty-state i{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#e8f5fa;color:var(--blue);font-style:normal;font-size:20px;margin:0 auto 12px}.empty-state h3{color:var(--ink);margin:0 0 6px}.toolbar{display:flex;align-items:center;gap:9px;justify-content:space-between;margin-bottom:13px;flex-wrap:wrap}.search-form{display:flex;align-items:center;gap:7px;min-width:280px}.search-form input{flex:1}.form-control,.form-select,.form-textarea{width:100%;border:1px solid #d8e5eb;background:#fff;color:var(--ink);border-radius:10px;min-height:41px;padding:9px 11px;outline:none;font-size:12px;transition:.15s}.form-control:focus,.form-select:focus,.form-textarea:focus{border-color:#5fb8d9;box-shadow:0 0 0 3px rgba(8,143,199,.09)}.form-textarea{min-height:105px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-group{display:grid;gap:6px;align-content:start}.form-group.full{grid-column:1/-1}.form-group label{font-size:10px;font-weight:750;color:#526a7a}.form-group label em{color:var(--red);font-style:normal}.form-help{font-size:9px;color:var(--muted);line-height:1.5}.check-field{display:flex;align-items:center;gap:9px;border:1px solid var(--line);padding:10px;border-radius:10px}.check-field input{accent-color:var(--blue);width:16px;height:16px}.form-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.progress{height:7px;background:#edf3f6;border-radius:8px;overflow:hidden}.progress span{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,var(--blue),#23c690)}.metric-list{display:grid}.metric-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:11px 0;border-bottom:1px solid #edf2f5}.metric-row:last-child{border-bottom:0}.metric-row b{font-size:11px}.metric-row small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.metric-row>strong{font-size:18px;color:var(--navy)}.alert-list{display:grid}.alert-item{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #edf2f5}.alert-item:last-child{border-bottom:0}.alert-count{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:12px;font-weight:800;background:#fff1d2;color:#a56f00}.alert-item.danger .alert-count{background:#feedef;color:#ca3e4b}.alert-item.info .alert-count{background:#e7f5fb;color:#087ba6}.alert-item>div{display:grid;gap:3px;flex:1}.alert-item b{font-size:11px}.alert-item small{font-size:9px;color:var(--muted)}.profile-row{display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:11px;background:#e4f4fa;color:#0878a3;display:grid;place-items:center;font-weight:800;font-size:10px;flex:0 0 auto}.profile-row>div{min-width:0}.profile-row b{font-size:11px}.profile-row small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.kpi-ring{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--green) calc(var(--value)*1%),#e9f0f3 0);position:relative;margin:auto}.kpi-ring:after{content:"";position:absolute;inset:15px;background:#fff;border-radius:50%}.kpi-ring div{z-index:1;text-align:center}.kpi-ring strong{font-size:20px;display:block}.kpi-ring small{font-size:9px;color:var(--muted)}.pagination{display:flex;justify-content:center;gap:5px;margin-top:14px}.pagination a,.pagination span{min-width:31px;height:31px;border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;background:#fff;font-size:10px}.pagination .active{background:var(--navy);color:#fff;border-color:var(--navy)}.mobile-only{display:none}.bottom-bar{display:none}.today-status{background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px;margin-bottom:12px}.today-status-head{display:flex;align-items:center;gap:10px}.today-status-head>span{width:44px;height:44px;border-radius:14px;background:#e6f8f1;color:var(--green);display:grid;place-items:center;font-size:18px;font-weight:800}.today-status h2{font-size:17px;margin:0}.today-status p{margin:4px 0 0;color:var(--muted);font-size:10px}.today-status .btn{width:100%;margin-top:13px}.quick-list{display:grid;gap:9px}.quick-item{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;display:flex;align-items:center;gap:10px}.quick-item>span{width:34px;height:34px;border-radius:10px;background:#e8f5fa;color:var(--blue);display:grid;place-items:center}.quick-item>div{flex:1}.quick-item b{font-size:11px}.quick-item small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.skill-chip{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #edf2f5}.skill-chip:last-child{border-bottom:0}.skill-chip>div{flex:1}.skill-chip b{font-size:10px}.skill-chip small{float:right;color:var(--muted)}.map-box{height:340px;border-radius:15px;background:linear-gradient(135deg,#dbeaf0,#eef6f9);position:relative;overflow:hidden}.map-box:before,.map-box:after{content:"";position:absolute;border:2px solid rgba(7,143,200,.12);border-radius:50%;width:250px;height:250px}.map-box:before{left:-60px;top:-80px}.map-box:after{right:-80px;bottom:-100px}.map-marker{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50% 50% 50% 0;background:var(--blue);transform:rotate(-45deg);box-shadow:0 6px 12px rgba(5,60,90,.2)}.map-marker span{display:block;width:8px;height:8px;border-radius:50%;background:#fff;margin:8px;transform:rotate(45deg)}.modal{position:fixed;inset:0;background:rgba(5,34,53,.55);display:none;align-items:center;justify-content:center;padding:20px;z-index:100}.modal.open{display:flex}.modal-card{width:min(560px,100%);background:#fff;border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.2);overflow:hidden}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0;font-size:15px}.modal-head button{border:0;background:transparent;font-size:20px;cursor:pointer}.modal-body{padding:18px}.qr-scanner{background:#091b27;border-radius:14px;min-height:240px;display:grid;place-items:center;color:#fff;overflow:hidden;position:relative}.qr-scanner video{width:100%;height:100%;object-fit:cover;position:absolute}.qr-scanner .scan-frame{width:160px;height:160px;border:2px solid var(--yellow);border-radius:14px;z-index:2;box-shadow:0 0 0 999px rgba(0,0,0,.28)}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}.top-profile div{display:none}}
@media(max-width:850px){.app-sidebar{transform:translateX(-101%);transition:.2s}.app-sidebar.open{transform:translateX(0)}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(7,35,51,.4);z-index:55}.sidebar-overlay.open{display:block}.app-workspace{margin-left:0}.hamburger{display:grid;place-items:center}.app-topbar{padding:0 14px}.app-content{padding:18px 14px}.page-head{align-items:flex-start;flex-direction:column}.head-actions{width:100%}.grid-equal{grid-template-columns:1fr}}
@media(max-width:560px){.app-content{padding:14px 11px}.stat-grid,.grid-3,.form-grid{grid-template-columns:1fr}.hero-card{padding:22px 18px;display:block}.hero-card h1{font-size:23px}.hero-card .btn{margin-top:15px}.search-form{min-width:100%;width:100%}.toolbar>*{width:100%}.toolbar .head-actions{display:grid;grid-template-columns:1fr 1fr}.panel{padding:14px}.top-profile div{display:none}}
.mobile-role{background:#e9f0f4}.mobile-role .app-shell{padding:18px}.mobile-role .app-workspace{width:100%;max-width:480px;margin:0 auto;min-height:calc(100vh - 36px);background:var(--bg);border-radius:27px;overflow:hidden;box-shadow:0 30px 70px rgba(11,48,70,.19);position:relative}.mobile-role .app-topbar{height:66px;padding:0 15px;position:sticky}.mobile-role .topbar-date{display:none}.mobile-role .top-profile div{display:none}.mobile-role .logout{display:none}.mobile-role .app-content{padding:14px 13px 92px}.mobile-role .page-head{margin-bottom:13px}.mobile-role .page-head p{font-size:8px}.mobile-role .page-head h1{font-size:21px}.mobile-role .hero-card{padding:21px 18px;border-radius:19px;display:block}.mobile-role .hero-card h1{font-size:22px}.mobile-role .hero-card span{max-width:300px}.mobile-role .hero-card .btn{display:none}.mobile-role .stat-grid{grid-template-columns:1fr 1fr;gap:9px}.mobile-role .stat-card{padding:13px;border-radius:14px}.mobile-role .stat-card strong{font-size:21px}.mobile-role .stat-card i{width:27px;height:27px}.mobile-role .grid-2,.mobile-role .grid-equal,.mobile-role .grid-3,.mobile-role .form-grid{grid-template-columns:1fr}.mobile-role .panel{border-radius:16px;padding:14px}.mobile-role .bottom-bar{display:grid;grid-template-columns:repeat(5,1fr);position:absolute;bottom:0;left:0;right:0;height:74px;background:#fff;border-top:1px solid var(--line);z-index:50;padding:7px 6px max(9px,env(safe-area-inset-bottom))}.bottom-bar a{display:grid;justify-items:center;align-content:center;gap:3px;color:#899ba7;font-size:9px}.bottom-bar i{font-style:normal;font-size:17px}.bottom-bar a.active{color:#087ba7;font-weight:750}.bottom-bar a.active i{background:#dff3fb;padding:3px 13px;border-radius:10px}.mobile-role .data-table{min-width:650px}.mobile-role .mobile-only{display:block}
.page-actions{display:flex;gap:8px;flex-wrap:wrap}.hero-card h2{font-size:25px;margin:8px 0 0;letter-spacing:-.03em}.hero-card .eyebrow{font-size:9px;letter-spacing:.15em;color:#bde6f6;margin:0;font-weight:800}.hero-score{position:relative;z-index:2;text-align:right;min-width:100px}.hero-score small{font-size:8px;letter-spacing:.12em;color:#bde6f6}.hero-score strong{font-size:38px;display:block;line-height:1;margin:7px 0 4px}.hero-score span{font-size:9px;margin:0}.detail-list{display:grid}.detail-list>div{display:grid;grid-template-columns:115px 1fr;gap:10px;border-bottom:1px solid #edf2f5;padding:10px 0}.detail-list>div:last-child{border:0}.detail-list span{font-size:10px;color:var(--muted)}.detail-list b{font-size:11px}.filter-grid{display:grid;grid-template-columns:1.2fr repeat(4,1fr) auto;gap:10px;align-items:end}.filter-action{display:flex;gap:6px;white-space:nowrap}@media(max-width:1100px){.filter-grid{grid-template-columns:repeat(3,1fr)}.filter-action{grid-column:span 2}}@media(max-width:700px){.filter-grid{grid-template-columns:1fr}.filter-action{grid-column:auto}.page-actions{width:100%}.hero-score{text-align:left;margin-top:18px}.detail-list>div{grid-template-columns:90px 1fr}}
@media(max-width:520px){.mobile-role .app-shell{padding:0}.mobile-role .app-workspace{min-height:100vh;border-radius:0;box-shadow:none}}
@media print{.app-sidebar,.app-topbar,.bottom-bar,.head-actions,.flash,.no-print{display:none!important}.app-workspace{margin:0}.app-content{padding:0}.panel{box-shadow:none;border:0}}
