*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5f7fb;color:#172033;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:#111b31;color:#dce3f0;display:flex;flex-direction:column;padding:25px 18px 18px;z-index:30}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 30px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#657bf1,#3c55d5);box-shadow:0 8px 22px #050c1f80}.brand-mark svg{width:29px;fill:none;stroke:#fff;stroke-width:2.1}.brand>span:last-child{display:flex;flex-direction:column}.brand strong{font-size:17px;letter-spacing:2.4px;color:#fff}.brand small{margin-top:1px;color:#8996ad;font-size:9px;letter-spacing:1.8px;text-transform:uppercase}.nav-list{display:flex;flex-direction:column;gap:4px}.nav-link{min-height:45px;display:flex;align-items:center;gap:12px;padding:0 13px;border-radius:9px;color:#98a5bc;text-decoration:none;font-size:13px;font-weight:600;transition:.2s}.nav-link:hover{background:#1b2842;color:#fff}.nav-link.active{background:linear-gradient(90deg,#536ae7,#4a60d1);color:#fff;box-shadow:0 8px 17px #07112c70}.nav-icon{width:20px;text-align:center;font-size:18px;font-weight:400}.nav-count{margin-left:auto;background:#f36d59;color:#fff;border-radius:20px;min-width:21px;text-align:center;padding:2px 6px;font-size:10px}.sidebar-bottom{margin-top:auto}.help-card{margin:14px 4px 12px;padding:14px;border:1px solid #2a3851;background:#17243b;border-radius:12px;display:grid;grid-template-columns:27px 1fr;gap:2px 8px}.help-icon{grid-row:1/3;width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:#263653;color:#9eacf9;font-weight:800}.help-card strong{font-size:12px;color:#fff}.help-card small{font-size:9px;color:#8190a9}.help-card button{grid-column:1/3;margin-top:10px;border:0;border-radius:7px;padding:8px;background:#24324c;color:#c8d0de;font-size:10px;font-weight:700;cursor:pointer}.user-card{display:flex;align-items:center;gap:9px;padding:13px 5px 0;border-top:1px solid #273249}.avatar{width:33px;height:33px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#ffd4ba,#f19b6c);color:#723718;font-size:10px;font-weight:800}.user-card>span:nth-child(2){min-width:0;display:flex;flex:1;flex-direction:column}.user-card strong{font-size:11px;color:#f1f4fa}.user-card small{font-size:8px;color:#7f8ca2;margin-top:2px}.user-card button,.schedule-row>button,.more-button{border:0;background:none;color:#7f8ca2;cursor:pointer}.main{margin-left:244px;min-height:100vh}.topbar{height:72px;background:#fff;border-bottom:1px solid #e8ebf1;display:flex;align-items:center;padding:0 30px;position:sticky;top:0;z-index:20}.menu-button{display:none;border:0;background:#edf0f7;border-radius:8px;width:38px;height:38px;margin-right:12px;font-size:18px}.search{width:min(430px,48vw);height:40px;border-radius:9px;background:#f5f7fa;display:flex;align-items:center;padding:0 12px;color:#94a0b1}.search>span{font-size:23px;transform:rotate(-15deg)}.search input{min-width:0;flex:1;border:0;outline:0;background:transparent;padding:0 9px;color:#243047;font:inherit}.search input::placeholder{color:#a3adba}.search kbd{border:1px solid #dfe3ea;border-radius:5px;background:#fff;color:#9aa3af;font-size:9px;padding:3px 6px}.top-actions{margin-left:auto;display:flex;gap:14px}.icon-button{position:relative;width:40px;border:1px solid #e3e7ee;border-radius:9px;background:#fff;font-size:20px;color:#59657a}.icon-button i{position:absolute;right:8px;top:8px;width:6px;height:6px;border:1px solid #fff;border-radius:50%;background:#ee604e}.primary-button{border:0;border-radius:9px;background:#5067dc;color:#fff;padding:0 18px;font-weight:700;box-shadow:0 7px 15px #4d64d52b;cursor:pointer}.primary-button span{font-size:18px;margin-right:5px}.content{padding:29px 30px 40px;max-width:1600px;margin:auto}.welcome{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:23px}.eyebrow{margin:0 0 7px;color:#8b96a7;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.welcome h1{margin:0;font-size:25px;letter-spacing:-.6px}.welcome h1 span{font-weight:400;color:#657087}.welcome>div>p:last-child{margin:7px 0 0;color:#8a95a5;font-size:12px}.site-filter{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #e5e9ef;border-radius:10px;padding:9px 11px;min-width:190px;box-shadow:0 3px 10px #23315308}.status-dot{width:9px;height:9px;border-radius:50%;background:#28b986;box-shadow:0 0 0 4px #ddf7ed}.site-filter>span:nth-child(2){display:flex;flex:1;flex-direction:column}.site-filter small{font-size:8px;color:#909aaa;text-transform:uppercase;font-weight:700}.site-filter strong{font-size:11px;margin-top:2px}.site-filter button{border:0;background:none;color:#8c96a6}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:17px}.stat-card{position:relative;overflow:hidden;background:#fff;border:1px solid #e8ebf1;border-radius:12px;padding:16px 17px 14px;box-shadow:0 4px 15px #26344f08}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.accent-orange{--accent:#f27b5f;--pale:#fff0ec}.accent-blue{--accent:#5570e6;--pale:#edf0ff}.accent-violet{--accent:#9a72d8;--pale:#f4edff}.accent-green{--accent:#36b78b;--pale:#e6f8f2}.stat-head{display:flex;justify-content:space-between;align-items:center}.stat-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;background:var(--pale);color:var(--accent);font-size:16px;font-weight:800}.trend{border-radius:12px;padding:3px 7px;font-size:9px;font-weight:800}.trend.up{background:#e7f8f1;color:#25a97b}.trend.down{background:#fff0ed;color:#e56c55}.trend.neutral{background:#f0f2f5;color:#818b9a}.stat-card>strong{display:block;margin-top:11px;font-size:25px;line-height:1}.stat-card>span:not(.trend){display:block;margin-top:6px;color:#6f7b8e;font-size:11px;font-weight:600}.progress{height:3px;margin:15px 0 9px;background:#edf0f4;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;border-radius:4px;background:var(--accent)}.stat-card small{color:#919aa9;font-size:9px}.stat-card small b{color:#5c6879}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(285px,.85fr);gap:17px}.panel{background:#fff;border:1px solid #e7eaf0;border-radius:12px;box-shadow:0 4px 16px #26344f08;overflow:hidden}.panel-head{min-height:67px;padding:15px 18px;border-bottom:1px solid #edf0f4;display:flex;align-items:center;justify-content:space-between}.panel h2{margin:0;font-size:14px}.panel-head p{margin:4px 0 0;color:#98a1af;font-size:9px}.text-button{border:0;background:none;color:#5067da;font-size:10px;font-weight:700;cursor:pointer}.text-button span{margin-left:5px}.schedule-list{padding:0 18px}.schedule-row{display:grid;grid-template-columns:43px 8px minmax(190px,1fr) 94px 115px 26px;gap:11px;align-items:center;min-height:67px;border-bottom:1px solid #f0f2f5}.schedule-row:last-child{border:0}.schedule-row time{font-size:10px;color:#7d8898;font-weight:700}.timeline{width:4px;height:34px;border-radius:4px}.timeline.blue{background:#5974e5}.timeline.orange{background:#ee7357}.timeline.violet{background:#9a72d5}.timeline.green{background:#3bb78d}.job-info,.technicians{display:flex;flex-direction:column;min-width:0}.job-info strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-info span{margin-top:4px;color:#8d97a6;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tag{justify-self:start;border-radius:5px;padding:5px 7px;font-size:8px;font-weight:800}.preventive{background:#edf1ff;color:#5470dd}.urgent{background:#fff0ec;color:#e46650}.regulatory{background:#f4edff;color:#8a65c4}.corrective{background:#e8f8f3;color:#2aa57d}.technicians{flex-direction:row;align-items:center;gap:6px}.technicians>span:last-child{font-size:9px;color:#596678}.mini-avatar{position:relative;flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:8px;font-weight:800;color:#fff}.blue-bg{background:#6078d8}.green-bg{background:#4ab797}.violet-bg{background:#9476c7}.orange-bg{background:#e59462}.availability{display:flex;align-items:center;padding:17px 19px 14px;border-bottom:1px solid #edf0f4}.donut{width:83px;height:83px;flex:none;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#506be2 0 43%,#35b98c 43% 71%,#e7eaf0 71%)}.donut:before{content:"";position:absolute;width:60px;height:60px;border-radius:50%;background:#fff}.donut span{z-index:1;display:flex;flex-direction:column;text-align:center}.donut strong{font-size:20px}.donut small{color:#98a2b1;font-size:8px}.legend{display:flex;flex-direction:column;gap:8px;margin-left:17px;flex:1}.legend span{display:flex;align-items:center;color:#7f8999;font-size:8px}.legend i{width:7px;height:7px;margin-right:6px;border-radius:2px}.legend b{margin-left:auto;color:#343e50}.green-dot{background:#35b98c}.blue-dot{background:#506be2}.gray-dot{background:#d7dce4}.team-list{padding:2px 18px}.team-list>div{display:flex;align-items:center;gap:8px;min-height:53px;border-bottom:1px solid #f0f2f5}.team-list>div:last-child{border:0}.team-list .mini-avatar i{position:absolute;right:-2px;bottom:-2px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:#32b989}.team-list>div>span:nth-child(2){display:flex;flex:1;flex-direction:column;min-width:0}.team-list strong{font-size:9px}.team-list small{margin-top:3px;color:#9aa3b1;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-state{border-radius:5px;padding:4px 6px;font-size:7px;font-weight:800}.team-state.working{background:#edf1ff;color:#5570dc}.team-state.available{background:#e7f8f1;color:#29a77c}.activity-panel{min-height:305px}.select-label{font-size:0}.select-label select{border:1px solid #e0e5eb;border-radius:7px;background:#fff;padding:7px 26px 7px 9px;color:#627084;font-size:9px;outline:0}.chart-wrap{display:flex;padding:18px 19px 0}.chart-y{width:26px;height:180px;display:flex;flex-direction:column;justify-content:space-between;color:#a4acb8;font-size:8px}.chart{flex:1;min-width:0}.chart svg{width:100%;height:180px;overflow:visible}.grid-line{fill:none;stroke:#edf0f4;stroke-width:1}.area{fill:url(#area)}.line{fill:none;stroke-width:2.2;vector-effect:non-scaling-stroke}.line.completed{stroke:#536ce0}.line.opened{stroke:#94a0b5;stroke-dasharray:5 5}.chart-x{display:flex;justify-content:space-between;color:#9ca5b3;font-size:8px;margin-top:2px}.chart-legend{display:flex;align-items:center;gap:20px;padding:17px 19px}.chart-legend span{display:flex;align-items:center;color:#7c8798;font-size:8px}.chart-legend b{margin-left:5px;color:#354052}.legend-line{width:16px;height:2px;margin-right:5px;background:#536ce0}.legend-line.dashed{height:0;border-top:2px dashed #94a0b5;background:none}.chart-legend .completion{margin-left:auto}.completion b{color:#27a97d;background:#e7f8f1;border-radius:10px;padding:3px 6px;margin:0 4px 0 0}.alert-count{border-radius:12px;padding:4px 7px;background:#fff0ed;color:#e36a54;font-size:8px;font-weight:800}.alert-list{padding:2px 17px}.alert-list>div{display:flex;align-items:center;gap:9px;min-height:61px;border-bottom:1px solid #f0f2f5}.alert-icon{width:27px;height:27px;flex:none;display:grid;place-items:center;border-radius:7px;font-size:11px;font-weight:900}.alert-icon.critical{background:#ffebe7;color:#e55c49}.alert-icon.warning{background:#fff5dd;color:#df9b24}.alert-icon.info{background:#edf1ff;color:#536ddf}.alert-list>div>span:nth-child(2){display:flex;flex:1;flex-direction:column;min-width:0}.alert-list strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-list small{margin-top:4px;color:#969fac;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-list time{color:#8b95a4;font-size:8px}.full-button{width:calc(100% - 34px);margin:13px 17px 16px;border:1px solid #e1e5eb;border-radius:7px;background:#fff;padding:8px;color:#59677b;font-size:9px;font-weight:700;cursor:pointer}.full-button:hover{background:#f7f8fb}.toast{position:fixed;right:24px;bottom:24px;z-index:60;display:flex;align-items:center;gap:11px;min-width:280px;padding:13px 16px;border-radius:11px;background:#162239;color:#fff;box-shadow:0 15px 40px #111a2e55;transform:translateY(130%);opacity:0;transition:.3s}.toast.show{transform:translateY(0);opacity:1}.toast>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#35b98c}.toast div{display:flex;flex-direction:column}.toast strong{font-size:11px}.toast small{margin-top:3px;color:#aeb8c8;font-size:9px}.overlay{display:none}
@media(max-width:1150px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.team-panel{grid-row:2}.schedule-row{grid-template-columns:43px 8px minmax(190px,1fr) 94px 115px 26px}}
@media(max-width:780px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.menu-button{display:block}.topbar{height:64px;padding:0 16px}.search{flex:1}.search kbd{display:none}.primary-button{width:41px;padding:0;font-size:0}.primary-button span{font-size:20px;margin:0}.content{padding:22px 16px 32px}.welcome{align-items:flex-start;gap:18px}.welcome h1{font-size:21px}.site-filter{min-width:auto}.site-filter small,.site-filter strong{display:none}.stats-grid{gap:10px}.dashboard-grid{gap:12px}.overlay{position:fixed;inset:0;background:#0c132499;z-index:25}.overlay.show{display:block}}
@media(max-width:560px){.welcome{display:block}.site-filter{position:absolute;right:16px;top:78px;width:42px;padding:10px}.site-filter button{display:none}.stats-grid{grid-template-columns:1fr 1fr}.stat-card{padding:13px}.stat-card>strong{font-size:21px}.stat-card>span:not(.trend){min-height:28px}.trend{display:none}.schedule-list{padding:0 14px}.schedule-row{grid-template-columns:39px 5px 1fr 25px;gap:8px;padding:8px 0}.schedule-row .tag,.schedule-row .technicians{display:none}.panel-head{padding:14px}.chart-wrap{padding-left:12px;padding-right:12px}.chart-legend{gap:10px;padding:16px 12px}.chart-legend .completion{display:none}.search input::placeholder{font-size:0}.top-actions{gap:7px}.icon-button{display:none}.toast{left:16px;right:16px;bottom:16px;min-width:0}}
