:root{--bg:#fafafa;--fg:#1a1a1a;--mut:#777;--card:#fff;--line:#e5e5e5;--acc:#2563eb}
@media (prefers-color-scheme:dark){:root{--bg:#111214;--fg:#eee;--mut:#8a8a8f;--card:#1a1b1e;--line:#2a2b2f;--acc:#6ea0ff}}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;display:flex;flex-direction:column}
header{display:flex;justify-content:space-between;align-items:center;padding:14px 28px}
nav a{color:var(--mut);text-decoration:none;margin-right:22px;font-size:15px;padding-bottom:4px}
nav a.active{color:var(--fg);border-bottom:2px solid var(--acc)}
button{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 12px;cursor:pointer}
button:hover{border-color:var(--acc)}
body.editing #editBtn{background:var(--acc);color:#fff;border-color:var(--acc)}
.page{display:none;flex:1;min-height:0;padding:0 28px 24px}
.page.show{display:flex}
.page.scroll{overflow:auto;flex-direction:column}
#home{gap:40px;align-items:center;justify-content:center}
.left{flex:1;max-width:620px;display:flex;flex-direction:column;align-items:center}
#clock{font-size:clamp(56px,10vh,96px);font-weight:300;letter-spacing:-2px}
#date{color:var(--mut);text-transform:capitalize;margin-bottom:2vh}
#searchForm{width:100%;margin-bottom:4vh}
#searchForm input{width:100%;padding:14px 20px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--fg);font-size:16px;outline:none}
#searchForm input:focus{border-color:var(--acc)}
.links{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.link{position:relative;width:92px;text-align:center;text-decoration:none;color:var(--fg);font-size:13px}
.link .ico{width:52px;height:52px;margin:0 auto 6px;border-radius:14px;background:var(--card);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:var(--acc)}
.link:hover .ico{border-color:var(--acc)}
.x{position:absolute;top:-6px;right:8px;width:20px;height:20px;padding:0;border-radius:50%;font-size:12px;line-height:1;background:#e5484d;color:#fff;border:none;display:none}
body.editing .x{display:block}
.add{display:none}
body.editing .add{display:inline-block}
.right{width:clamp(400px,40vw,620px);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}
.right iframe{width:100%;height:560px;border:0;display:block}
#calFull{width:100%;height:100%;border:0;display:block}
#calendario{padding:0 28px 24px}
#calFull{border:1px solid var(--line);border-radius:16px}
.group{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:18px}
.group h2{margin:0 0 14px;font-size:16px;display:flex;gap:10px;align-items:center}
.group h2 button{font-size:12px;padding:2px 8px;display:none}
body.editing .group h2 button{display:inline-block}
.week{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:12px}
.day{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;min-height:200px}
.day h3{margin:0 0 10px;font-size:14px}
.slot{position:relative;font-size:13px;padding:8px;border-radius:8px;background:var(--bg);margin-bottom:8px}
.slot b{display:block;color:var(--acc);font-size:12px}
.slot span{color:var(--mut)}
.slot .x{top:4px;right:4px}
.empty{color:var(--mut);font-size:13px}
@media (max-width:900px){#home{flex-direction:column;overflow:auto}.right{width:100%;max-width:640px;flex:none}}
.cal-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.cal-bar button.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.cal-bar .sp{flex:1}
.cal-bar .stat{color:var(--mut);font-size:12px;width:100%}
.cw{display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr));background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cw .hd{padding:8px 6px;text-align:center;font-size:13px;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}
.cw .hd:first-child,.cw .ad:first-child{border-left:0}
.cw .hd.today{color:var(--acc);font-weight:700}
.cw .ad{border-bottom:1px solid var(--line);border-left:1px solid var(--line);padding:3px;min-height:26px}
.cw .hrs{position:relative}
.cw .hrs span{position:absolute;right:6px;font-size:11px;color:var(--mut)}
.cw .col{position:relative;border-left:1px solid var(--line);background-image:linear-gradient(var(--line) 1px,transparent 1px);background-size:100% 48px}
.cw .col.today{background-color:color-mix(in srgb,var(--acc) 7%,transparent)}
.ev{position:absolute;box-sizing:border-box;padding:3px 5px;border-radius:6px;border-left:3px solid;font-size:12px;line-height:1.25;overflow:hidden}
.ev b{display:block;font-weight:600}
.ev small{display:block;color:var(--mut);font-size:11px}
.chip{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:4px;border-left:3px solid;padding:1px 4px;margin-bottom:2px;font-size:11px}
.cm{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cm .dow{padding:8px;font-size:12px;color:var(--mut);font-weight:600;border-bottom:1px solid var(--line)}
.cm .cell{min-height:96px;padding:4px;cursor:pointer;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.cm .cell:nth-child(7n){border-right:0}
.cm .cell.out{opacity:.45}
.cm .cell .n{display:inline-block;font-size:12px;margin-bottom:3px;min-width:22px;text-align:center}
.cm .cell.today .n{background:var(--acc);color:#fff;border-radius:50%}
.cm .more{font-size:11px;color:var(--mut)}
.flt{display:flex;flex-wrap:wrap;gap:8px 18px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:14px}
.flt .acts{width:100%;display:flex;gap:8px;align-items:center;font-size:13px;color:var(--mut)}
.flt label{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.flt i{width:10px;height:10px;border-radius:3px;display:inline-block}
.slt{display:grid;grid-template-columns:auto repeat(7,auto);justify-content:start;align-items:center}
.slt .acts{grid-column:1/-1;flex-wrap:wrap}
.slt b{font-size:12px;text-align:center}
.slt input{justify-self:center}
.flt .acts button{font-size:12px;padding:3px 10px}

.meteo{display:flex;align-items:center;gap:16px;min-height:64px;margin-bottom:3vh;padding:10px 20px;background:var(--card);border:1px solid var(--line);border-radius:16px;color:var(--mut);font-size:13px}
.wx-main{display:flex;align-items:center;gap:8px}
.wx-ico{font-size:34px;line-height:1}
.wx-t{font-size:34px;font-weight:300;color:var(--fg)}
.wx-info{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--mut)}
.wx-info b{font-size:14px;color:var(--fg)}

.hbtns{display:flex;gap:8px}
.bus-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:12px}
.bl{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:14px;min-width:0}
.bl h3{margin:0 0 2px;font-size:15px}
.bl .tr{color:var(--mut);font-size:13px;margin-bottom:8px}
.bl .gg{display:inline-block;font-size:11px;color:var(--acc);border:1px solid var(--acc);border-radius:999px;padding:1px 8px;margin-bottom:10px}
.bl .tm{display:flex;flex-wrap:wrap;gap:6px}
.bl .tm span{font-size:13px;padding:3px 8px;border-radius:8px;background:var(--card);border:1px solid var(--line);font-variant-numeric:tabular-nums}
.bl .acts{display:none;gap:6px;margin-top:12px}
body.editing .bl .acts{display:flex}
.bl .acts button{font-size:12px;padding:2px 10px}
@media (max-width:700px){
  header{padding:10px 14px;gap:10px}
  nav{display:flex;overflow-x:auto;white-space:nowrap;flex:1;min-width:0}
  nav a{margin-right:16px;font-size:14px;flex:none}
  .page{padding:0 14px 18px}
  #calendario{padding:0 14px 14px}
  #home{justify-content:flex-start;align-items:stretch;gap:20px}
  .left{max-width:none}
  .meteo{width:100%}
  .right iframe{height:480px}
  .week{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cw{min-width:700px}
  .cm .cell{min-height:64px}
  .hbtns button{padding:6px 10px;font-size:13px}
}
