:root{font-family:Inter,Segoe UI,system-ui,sans-serif;color:#172033;background:#f5f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.app-shell{min-height:100vh;display:flex}.sidebar{width:255px;background:#101827;color:#dce4f3;padding:20px 14px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;padding:8px 10px 25px}.logo{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#fff;color:#101827;font-weight:900;font-size:18px;margin:auto}.logo.small{width:35px;height:35px;border-radius:10px;margin:0;font-size:13px}.sidebar nav{display:grid;gap:5px}.sidebar nav button,.side-bottom>button{border:0;background:transparent;color:#b8c3d7;padding:11px 12px;border-radius:9px;text-align:left;display:flex;align-items:center;gap:11px;font-size:14px;cursor:pointer}.sidebar nav button:hover,.sidebar nav .active{background:#1d2a40;color:#fff}.side-bottom{margin-top:auto;border-top:1px solid #263348;padding-top:15px;display:grid;gap:8px}.user{display:flex;align-items:center;gap:9px;padding:6px}.user b,.user small{display:block}.user b{font-size:13px}.user small{color:#8e9bb0;text-transform:capitalize}.avatar{width:33px;height:33px;border-radius:50%;background:#2c3a54;display:grid;place-items:center;font-weight:700}.content{margin-left:255px;flex:1;min-width:0}.topbar{height:65px;background:#fff;border-bottom:1px solid #e5e9f0;display:flex;align-items:center;padding:0 30px;justify-content:space-between;position:sticky;top:0;z-index:10}.company{display:flex;gap:10px;align-items:center}.company span{font-size:11px;padding:3px 7px;border-radius:20px;background:#e8f8ef;color:#197044}.top-actions{display:flex}.menu{display:none}.page{padding:30px;max-width:1500px;margin:auto}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.page-title h1{margin:0 0 4px;font-size:27px}.page-title p{margin:0;color:#728097}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stats>div,.report-card{background:#fff;border:1px solid #e6eaf0;border-radius:14px;padding:20px;box-shadow:0 3px 14px #18263b08}.stats span{font-size:24px;display:block;margin-bottom:10px}.stats b{font-size:28px;display:block}.stats small{color:#718096}.grid2{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}.panel{background:#fff;border:1px solid #e6eaf0;border-radius:14px;padding:20px;box-shadow:0 3px 14px #18263b08}.panel h2{margin:0 0 16px;font-size:17px}.panel-head{display:flex;align-items:center;justify-content:space-between}.list{display:grid}.list-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #eef1f5}.list-row:last-child{border-bottom:0}.list-row>div{flex:1}.list-row b,.list-row small{display:block}.list-row small{color:#7b879b;margin-top:3px}.dot{width:9px;height:9px;border-radius:50%}.dot.alta{background:#e44b55}.dot.media{background:#e7a622}.dot.baja{background:#36a269}.badge{font-size:11px;border-radius:20px;padding:4px 8px;background:#eef2f7}.toolbar{display:flex;gap:10px;margin-bottom:16px}.search{background:#fff;border:1px solid #dfe5ed;border-radius:9px;display:flex;align-items:center;gap:8px;padding:0 11px;max-width:380px;flex:1}.search input{border:0;outline:0;padding:11px 0;width:100%}button,select,input,textarea{font:inherit}button{border:1px solid #d9e0e9;background:#fff;color:#243047;border-radius:8px;padding:9px 13px;cursor:pointer}button:hover{background:#f7f9fc}.primary{background:#17243a;color:#fff;border-color:#17243a;display:inline-flex;align-items:center;gap:7px}.primary:hover{background:#263752}.full{width:100%;justify-content:center}.icon{border:0;background:transparent;padding:7px;display:inline-grid;place-items:center}.icon:hover{background:#eef2f7}.danger{color:#c93340}.danger-text{color:#c93340;background:transparent;border:0}.link{border:0;background:transparent;color:#315ca8;padding:4px}.table-wrap{background:#fff;border:1px solid #e6eaf0;border-radius:14px;overflow:auto}.table-wrap table,.panel table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td,.panel th,.panel td{padding:13px 15px;text-align:left;border-bottom:1px solid #edf0f4;font-size:13px;white-space:nowrap}.table-wrap th,.panel th{color:#738096;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.table-wrap td small{display:block;color:#8490a1;margin-top:3px}.actions{white-space:nowrap}.status{font-size:11px;padding:4px 8px;border-radius:20px}.status.activa{background:#e8f8ef;color:#197044}.status.parada{background:#fff5df;color:#9a6a00}.status.baja{background:#fce9eb;color:#a72d39}.calendar-month{display:grid;grid-template-columns:48px repeat(7,minmax(120px,1fr));border:1px solid #e1e6ee;border-radius:13px;overflow:hidden;background:#fff}.calendar-week-label,.calendar-weekday{background:#f7f9fc;border-bottom:1px solid #e1e6ee;padding:10px 8px;font-size:11px;font-weight:700;color:#738096;text-align:center}.calendar-weekday{border-left:1px solid #e8ebf0;text-transform:uppercase}.calendar-week-number{border-right:1px solid #e8ebf0;border-bottom:1px solid #e8ebf0;padding:9px 4px;text-align:center;font-size:11px;font-weight:700;color:#8793a6;background:#fafbfc}.month-day{min-height:145px;border-right:1px solid #e8ebf0;border-bottom:1px solid #e8ebf0;padding:6px;cursor:pointer;position:relative}.month-day.outside{background:#fafbfc;color:#a7b0bf}.month-day.today{background:#f5f8ff}.month-day-head{display:flex;align-items:center;justify-content:space-between;padding:2px 3px 5px}.month-day-head>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700}.today .month-day-head>span{background:#17243a;color:#fff}.month-day-head small{font-size:10px;color:#78869b}.month-tasks{min-height:74px}.task{border-left:3px solid #8794a8;background:#f8f9fb;border-radius:6px;padding:5px 6px;margin:4px 0;cursor:pointer}.task.alta{border-left-color:#dc4c56}.task.media{border-left-color:#e2a52a}.task.baja{border-left-color:#42a76d}.task.done{opacity:.5;text-decoration:line-through}.task>div{display:inline-block;width:calc(100% - 20px)}.task b,.task small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task b{font-size:11px}.task small{font-size:9px;color:#78869b;margin-top:2px}.task-check{float:right;border:0;background:transparent;padding:0}.add-day{width:100%;border:0;color:#75839a;background:transparent;font-size:10px;padding:3px}.calendar-nav{display:flex;gap:5px;justify-content:flex-end;margin:-10px 0 10px}.calendar-help{margin:8px 0 0;color:#7b8799;font-size:11px}.doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.doc-card{background:#fff;border:1px solid #e5e9ef;border-radius:13px;padding:16px;display:grid;grid-template-columns:auto 1fr;gap:12px}.doc-icon{width:43px;height:43px;border-radius:10px;background:#edf3ff;color:#315ca8;display:grid;place-items:center}.doc-card h3{font-size:14px;margin:0 0 4px}.doc-card p,.doc-card small{margin:0;color:#738096;font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis}.doc-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:6px}.report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.report-card{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center}.report-card svg{grid-row:1/3}.report-card b{font-size:24px}.report-card span{color:#75839a;font-size:12px}.euro{width:30px;height:30px;border-radius:50%;background:#eff7f1;display:grid;place-items:center}.settings{max-width:700px}.settings label{display:block;margin-bottom:15px}.settings input{display:block;width:100%;margin-top:6px}.settings .primary{margin-top:8px}.success{color:#208051;margin-left:10px}.notice{background:#f1f5fb;border:1px solid #dce4ef;border-radius:9px;padding:12px;margin-top:18px;font-size:13px;color:#5f6d82}.auth{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#101827,#253650)}.auth-card{background:#fff;width:min(430px,calc(100% - 30px));border-radius:18px;padding:34px;box-shadow:0 20px 60px #0004}.auth-card h1{margin:14px 0 4px;text-align:center}.auth-card>.muted{text-align:center}.auth-card label{display:block;font-size:13px;font-weight:600;margin:14px 0}.auth-card input{display:block;width:100%;margin-top:6px}.auth-card .logo{margin:auto}.muted{color:#7b8799}.error{background:#fff0f1;color:#ae303c;padding:10px;border-radius:8px;font-size:13px}.error-banner{margin:15px 30px 0;background:#fff0f1;color:#a72d39;padding:10px 13px;border-radius:8px;display:flex;justify-content:space-between}.overlay{position:fixed;inset:0;background:#10182780;display:grid;place-items:center;z-index:50;padding:15px}.modal{background:#fff;border-radius:16px;width:min(700px,100%);max-height:90vh;overflow:auto;padding:22px;box-shadow:0 30px 80px #0004}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.modal-head h2{margin:0;font-size:19px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{font-size:12px;font-weight:600;color:#58667a}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;margin-top:6px}.form-grid textarea{min-height:90px;resize:vertical}.wide{grid-column:1/-1}.modal-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.empty{padding:35px;text-align:center;color:#7a8799}.loading{min-height:100vh;display:grid;place-items:center;color:#657389}.error{color:#ae303c}.topbar .company{margin-left:auto;margin-right:auto}.notice b{color:#34445d}@media(max-width:1050px){.stats,.report-grid{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.doc-grid{grid-template-columns:repeat(2,1fr)}.calendar-month{overflow:auto;grid-template-columns:48px repeat(7,minmax(130px,1fr))}.month-day{min-height:135px}.sidebar{width:220px}.content{margin-left:220px}}@media(max-width:800px){.sidebar{transform:translate(-100%);transition:.2s;width:260px}.sidebar.open{transform:none}.content{margin-left:0}.menu{display:inline-grid}.topbar{padding:0 15px}.page{padding:18px 14px}.page-title{align-items:flex-start;gap:12px}.stats{grid-template-columns:1fr 1fr}.doc-grid,.form-grid{grid-template-columns:1fr}.wide,.modal-actions{grid-column:auto}.page-title h1{font-size:23px}.topbar .company{margin-left:10px;margin-right:auto}}@media print{.sidebar,.topbar,.page-title button,.toolbar,.calendar-nav,.actions,.doc-actions{display:none!important}.content{margin:0}.page{padding:0}.panel,.table-wrap{box-shadow:none}}.month-grid{display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));gap:1px;background:#dfe4ea;border:1px solid #dfe4ea;border-radius:12px;overflow:hidden}.week-number-head,.weekday{background:#f7f8fa;padding:11px 8px;text-align:center;font-weight:700;font-size:13px}.week-number-head{color:#7a8491}.month-day{background:#fff;min-height:145px;padding:7px;display:flex;flex-direction:column;gap:5px}.month-day.outside{background:#f8fafc;color:#9aa3af}.month-day.today{box-shadow:inset 0 3px #17263f}.month-day-head{display:flex;align-items:center;justify-content:space-between;gap:5px}.month-day-head>span{font-weight:800;font-size:14px}.month-day-head small{font-size:9px;color:#8a94a3}.month-tasks{display:flex;flex-direction:column;gap:4px;flex:1}.month-day .task{padding:5px 6px;border-radius:6px;cursor:pointer;font-size:11px}.month-day .task b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-day .task small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px}.month-day .task-check{padding:0;border:0;background:transparent;display:flex;align-items:center}.month-day .add-day{margin-top:auto;padding:4px 5px;font-size:10px;background:transparent;border:1px dashed #c9d0d9;border-radius:5px;color:#687383;cursor:pointer}@media(max-width:900px){.month-grid{grid-template-columns:repeat(7,minmax(110px,1fr));overflow-x:auto}.week-number-head{display:none}.month-day{min-height:120px}.weekday{min-width:110px}}.month-grid{grid-template-columns:56px repeat(7,minmax(0,1fr))}.week-number{background:#f7f8fa;color:#7a8491;display:flex;align-items:flex-start;justify-content:center;padding-top:12px;font-size:11px;font-weight:700;border-right:1px solid #dfe4ea;min-height:145px}@media(max-width:900px){.month-grid{grid-template-columns:42px repeat(7,minmax(110px,1fr));overflow-x:auto}.week-number{min-height:120px}.week-number-head{display:block}}
