:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#101b40;background:#f6f8fc}*{box-sizing:border-box}body{margin:0}a{text-decoration:none;color:inherit}button,input,select{font:inherit}.layout{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:white;border-right:1px solid #e5eaf4;padding:22px 12px}.brand{text-align:center;border-bottom:1px solid #e5eaf4;padding:0 8px 20px;margin-bottom:15px}.brand img{width:102px;height:102px;object-fit:contain}.brand strong{display:block;font-size:18px;color:#07145b}.nav{display:flex;flex-direction:column;gap:4px}.nav a{padding:12px 15px;border-radius:9px;color:#344263;font-size:14px}.nav a.active{background:#07145b;color:#fff;font-weight:700}.nav a:hover:not(.active){background:#f0f4ff}.main{flex:1;min-width:0}.top{background:white;border-bottom:1px solid #e5eaf4;padding:22px 30px;display:flex;justify-content:space-between;align-items:center}.top h1{font-size:25px;margin:0}.top small{color:#71809d}.content{padding:26px 30px}.muted{color:#71809d}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:14px;margin-bottom:22px}.card,.panel{background:white;border:1px solid #e5eaf4;border-radius:14px;box-shadow:0 3px 16px #14225c08}.card{padding:20px}.card .label{color:#60708e;font-size:13px}.card .value{font-size:26px;font-weight:800;margin:8px 0}.panel{padding:20px;margin-bottom:18px}.panel h2{font-size:17px;margin:0 0 15px}.btn{background:#07145b;color:white;border:1px solid #07145b;border-radius:8px;padding:10px 15px;cursor:pointer}.btn.secondary{background:white;color:#07145b;border-color:#cfd8ec}.btn:hover{opacity:.88}.field{padding:10px 12px;border:1px solid #d8e0ee;border-radius:8px;background:white;min-width:140px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:14px;border-bottom:1px solid #e9edf5}th{background:#f8faff;color:#455373;font-size:12px}tr:last-child td{border-bottom:0}.pill{border-radius:30px;padding:5px 10px;font-size:12px;background:#e6f8eb;color:#087d30}.pill.overdue{background:#ffe6e9;color:#b20c27}.pill.suspended{background:#fff0ca;color:#8c5b00}.pill.cancelled{background:#e8ebf2;color:#55617a}.calendar{overflow:auto;max-height:680px;border:1px solid #e5eaf4;border-radius:12px;background:white}.cal-grid{display:grid;grid-template-columns:70px repeat(var(--cols),minmax(185px,1fr));min-width:700px}.cal-head{position:sticky;top:0;z-index:4;background:#fff;font-weight:700;border-bottom:1px solid #dfe5f0;padding:14px 8px;text-align:center}.cal-time{border-top:1px solid #e9edf5;font-size:12px;color:#73829d;padding:8px;text-align:center;height:40px}.cal-cell{height:40px;border-top:1px solid #e9edf5;border-left:1px solid #e9edf5;position:relative}.booking{position:absolute;left:5px;right:5px;top:2px;border-radius:7px;padding:7px;font-size:12px;z-index:2;overflow:hidden;background:#dff9e7;border:1px solid #b6ecc6;color:#164f2d}.booking.avulso{background:#e0edff;border-color:#b7d2ff;color:#173e7a}.booking.cancelled{background:#f1f2f5;color:#6b7280}.booking strong{display:block}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .panel{width:100%;max-width:390px}.login img{width:120px;display:block;margin:auto}.login label{display:block;margin:15px 0 6px}.login input{width:100%}.error{padding:12px;background:#ffe5e8;color:#a80020;border-radius:8px;margin:12px 0}.notice{padding:12px;background:#eaf1ff;color:#173e7a;border-radius:8px}.two{display:grid;grid-template-columns:2fr 1fr;gap:18px}@media(max-width:900px){.sidebar{width:170px}.content{padding:15px}.top{padding:18px}.two{grid-template-columns:1fr}}@media(max-width:650px){.layout{display:block}.sidebar{width:100%;padding:10px}.brand{display:flex;align-items:center;gap:10px;padding:0 0 8px;text-align:left;margin-bottom:7px}.brand img{width:44px;height:44px}.nav{flex-direction:row;overflow:auto}.nav a{white-space:nowrap;padding:9px}.top h1{font-size:20px}.content{padding:12px}}
