
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Arial;color:#152033;background:#f5f7fb}
.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;background:#eef4ff}.login-card{width:min(430px,92vw);background:white;padding:36px;border-radius:22px;box-shadow:0 20px 60px #193c7b1a}.brand{font-weight:900;letter-spacing:-1px;font-size:22px;color:#1466d8}.brand span{font-weight:500;color:#152033}.login-card h1{margin:28px 0 6px}.login-card p{color:#6a7485}label{display:block;font-size:13px;font-weight:700;margin:18px 0}input,select{width:100%;padding:12px 14px;border:1px solid #d7deea;border-radius:10px;margin-top:7px;background:white}button{border:0;border-radius:10px;padding:11px 15px;background:#1769db;color:white;font-weight:750;cursor:pointer}#app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}aside{background:#fff;border-right:1px solid #e5eaf2;padding:24px 16px;display:flex;flex-direction:column;gap:26px}nav{display:grid;gap:5px}nav button{text-align:left;background:transparent;color:#566174}nav button.active{background:#eaf2ff;color:#1769db}nav button:disabled{opacity:.45;cursor:not-allowed}nav small{float:right}.logout{margin-top:auto;background:#eef1f5;color:#475367}main{padding:0 30px 40px}header{height:90px;display:flex;align-items:center;justify-content:space-between}header h2{margin:0;font-size:26px}header p{margin:4px 0;color:#7a8494}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.card,.panel{background:white;border:1px solid #e6ebf2;border-radius:15px;padding:20px}.metric{font-size:28px;font-weight:850;margin-top:8px}.muted{color:#7b8594}.grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-top:16px}.panel h3{margin-top:0}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #edf0f5;font-size:14px}th{color:#768092;font-size:12px;text-transform:uppercase}.status{padding:5px 8px;border-radius:999px;background:#eef5ff;color:#1769db;font-size:12px;font-weight:750}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.toolbar input{max-width:330px;margin:0}.empty{padding:35px;text-align:center;color:#7b8594}.danger{color:#b42318}.modal{position:fixed;inset:0;background:#0b183455;display:grid;place-items:center}.modal-card{background:white;width:min(650px,94vw);padding:25px;border-radius:18px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.formgrid .full{grid-column:1/-1}@media(max-width:900px){#app{grid-template-columns:80px 1fr}aside .brand span,nav button{font-size:0}nav button::first-letter{font-size:16px}.cards{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}}

.brand{display:flex;align-items:center;gap:8px}.brand img{width:112px;height:58px;object-fit:contain}.login-card .brand img{width:155px;height:85px}

.planner-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.planner-head input{width:auto;margin:0}.planner{overflow:auto;background:white;border:1px solid #e5eaf2;border-radius:15px}.planner-grid{display:grid;min-width:900px}.planner-name{position:sticky;left:0;background:#fff;z-index:3;padding:12px;border-right:1px solid #e8edf4;font-weight:750}.hour{padding:9px;border-left:1px solid #eef1f5;font-size:12px;color:#7a8494}.emp-row{display:contents}.emp-label{position:sticky;left:0;background:white;z-index:2;padding:14px 12px;border-top:1px solid #edf0f5}.timeline{position:relative;height:78px;border-top:1px solid #edf0f5;background:repeating-linear-gradient(to right,transparent 0,transparent calc(7.692% - 1px),#eef1f5 calc(7.692% - 1px),#eef1f5 7.692%)}.jobblock{position:absolute;top:9px;height:58px;background:#eaf2ff;border-left:4px solid #1769db;border-radius:8px;padding:6px 8px;overflow:hidden;font-size:12px;cursor:grab}.jobblock.PROBLEM{background:#fff0ef;border-color:#b42318}.jobblock.COMPLETED{background:#edf8f0;border-color:#27824b}.jobblock.IN_PROGRESS{background:#fff7e8;border-color:#d47b00}.jobblock b{display:block}.planner-legend{display:flex;gap:14px;font-size:12px;color:#667085;margin:8px 0}

.warning{background:#fff8e8;border:1px solid #f2d49b;border-radius:12px;padding:11px 14px;margin:8px 0}.planner-tools{display:flex;gap:8px;flex-wrap:wrap}.jobblock.selected{outline:3px solid #152033}.time-editor{display:flex;gap:8px;align-items:end;margin:12px 0}.time-editor label{margin:0}.time-editor input{margin-top:4px}

.map-shell{position:relative;min-height:520px;background:#edf2f7;border-radius:15px;overflow:hidden;border:1px solid #e2e8f0}.map-placeholder{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#64748b;padding:30px}.map-list{position:absolute;left:16px;top:16px;width:330px;max-height:480px;overflow:auto}.map-job{background:#fffffff2;border-radius:12px;padding:12px;margin-bottom:8px;box-shadow:0 4px 16px #1d355720}.route-ok{background:#edf8f0}.route-bad{background:#fff0ef}.route-na{background:#f4f5f7}

.note{background:white;border:1px solid #e5eaf2;border-radius:12px;padding:13px;margin:8px 0}.note.unread{border-left:4px solid #1769db}.msg-status{font-size:11px;padding:4px 7px;border-radius:999px;background:#eef1f5}.confirm-CONFIRMED{color:#27824b}.confirm-CANCELLATION_REQUESTED{color:#b42318}.confirm-PENDING{color:#d47b00}

.rule-form{display:grid;grid-template-columns:2fr 1.2fr 1fr 1.3fr 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f5}.rule-form input,.rule-form select,#newRule input,#newRule select{padding:9px;border:1px solid #dce2ea;border-radius:8px}#newRule{display:flex;gap:10px;flex-wrap:wrap;align-items:center}@media(max-width:900px){.rule-form{grid-template-columns:1fr}}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.stats>div{background:white;border:1px solid #e6ebf2;border-radius:12px;padding:15px}.stats b{display:block;font-size:20px}.stats span{color:#667085;font-size:12px}@media(max-width:850px){.stats{grid-template-columns:1fr 1fr}}
