:root{--bg:#F6F7FB;--card:#fff;--navy:#0B2545;--blue:#2F6FED;--blue-s:#E8EFFE;--coral:#FF6B5B;--coral-s:#FFECE9;--ink:#13233D;--mut:#6B7A90;--line:#E4E8F0;--ok:#1E9E6A;--r:18px;--safe:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.4 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
button,input,select,textarea{font:inherit;color:inherit}
#app{max-width:720px;margin:0 auto;padding:calc(12px + env(safe-area-inset-top,0px)) 16px calc(110px + var(--safe))}
.top{display:flex;align-items:center;justify-content:space-between;padding:6px 0 14px}
.brand{display:flex;align-items:center;gap:12px}
.mark{width:38px;height:38px;border-radius:12px;background:var(--navy);position:relative;flex:none}
.mark:before{content:"";position:absolute;left:8px;right:8px;top:12px;bottom:6px;border:3px solid var(--coral);border-bottom:0;border-radius:50% 50% 0 0/100% 100% 0 0}
.mark:after{content:"";position:absolute;left:8px;bottom:8px;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:15px 0 0 #4C8DFF}
h1{font-size:20px;letter-spacing:-.01em;margin:0;font-weight:700;color:var(--navy)}
#sub{margin:0;color:var(--mut);font-size:13px}
.icon-btn{border:0;background:var(--card);width:40px;height:40px;border-radius:12px;display:grid;place-items:center;box-shadow:0 1px 0 var(--line);color:var(--navy)}
.tabs{display:grid;grid-template-columns:1fr 1fr;background:#E9EDF5;border-radius:14px;padding:4px;gap:4px;position:sticky;top:0;z-index:5;margin-bottom:16px}
.tabs button{border:0;background:transparent;padding:10px;border-radius:11px;font-weight:600;color:var(--mut)}
.tabs button.on{background:var(--card);color:var(--navy);box-shadow:0 1px 3px rgba(11,37,69,.12)}
.fab{position:fixed;right:max(16px,calc(50% - 344px));bottom:calc(18px + var(--safe));border:0;background:var(--coral);color:#fff;height:54px;padding:0 20px 0 16px;border-radius:27px;display:flex;align-items:center;gap:8px;font-weight:700;box-shadow:0 8px 22px rgba(255,107,91,.4);z-index:8}
.sec{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);font-weight:700;margin:22px 4px 10px}
.card{background:var(--card);border-radius:var(--r);padding:16px;box-shadow:0 1px 2px rgba(11,37,69,.04),0 6px 18px rgba(11,37,69,.04);margin-bottom:12px;border:1px solid var(--line)}
.wk header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:6px 8px;margin-bottom:10px}.wk .when{font-size:15px}.wk .chip{font-size:12px}
.when{font-weight:700;color:var(--navy)}
.when small{display:block;color:var(--mut);font-weight:500;font-size:12px}
.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600;white-space:nowrap}
.chip:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.p-F{background:var(--blue-s);color:var(--blue)}
.p-A{background:var(--coral-s);color:#E0483A}
.wk.p-F{border-left:4px solid var(--blue)}.wk.p-A{border-left:4px solid var(--coral)}
.leg{display:grid;grid-template-columns:78px 1fr auto;gap:8px;padding:9px 0;border-top:1px solid var(--line);align-items:center}
.leg:first-of-type{border-top:0}
.leg .d{font-weight:600;font-size:14px}.leg .d small{display:block;color:var(--mut);font-weight:500}
.leg .r{font-weight:700;letter-spacing:.02em}.leg .r small{display:block;color:var(--mut);font-weight:500;letter-spacing:0}
.leg .s{font-size:13px;color:var(--mut);text-align:right}.leg .s b{color:var(--ink)}
.penha{margin:10px 0 2px;background:var(--coral-s);color:#B8372B;border-radius:12px;padding:9px 12px;font-size:13px;font-weight:600}
.loc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.loc code{background:var(--bg);border-radius:8px;padding:5px 9px;font-weight:700;letter-spacing:.12em;font-size:14px}
.btn{border:1px solid var(--line);background:var(--card);border-radius:11px;padding:8px 12px;font-weight:600;font-size:14px;color:var(--navy)}
.btn.pri{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.cor{background:var(--coral);color:#fff;border-color:var(--coral)}
.btn.link{border:0;background:none;color:var(--blue);padding:8px 4px}
.btn.wide{width:100%;padding:13px}
.free{border:1.5px dashed #C9D1E0;background:transparent;box-shadow:none}
.free .when{color:var(--mut)}
.free p{margin:4px 0 0;color:var(--mut);font-size:14px}
.warn{border:1.5px dashed var(--coral)}
.badge{font-size:11px;font-weight:700;background:#FFF4D6;color:#8A6100;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:middle}
.past-t{width:100%;text-align:left;background:none;border:0;color:var(--mut);padding:8px 4px;font-weight:600}
.today{background:var(--navy);color:#fff;border:0}
.today .when,.today h3{color:#fff}
.hero{background:linear-gradient(160deg,#0B2545,#163A6B);color:#fff;border-radius:22px;padding:20px;margin-bottom:12px}
.hero .lab{font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.hero .big{font-size:34px;font-weight:700;letter-spacing:-.02em;margin:2px 0 14px;font-variant-numeric:tabular-nums}
.hero .big small{font-size:15px;font-weight:500;opacity:.7;margin-left:4px}
.hero .note{font-size:12px;opacity:.65;margin-top:6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stat .lab{color:var(--mut);font-size:12px}.stat .v{font-size:20px;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.stat .v small{font-size:12px;color:var(--mut);font-weight:500}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}
.chips button{border:1px solid var(--line);background:var(--card);padding:7px 13px;border-radius:999px;font-weight:600;font-size:14px;white-space:nowrap;color:var(--mut)}
.chips button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);text-align:right;padding:4px 0 8px;font-weight:700}
th:first-child,td:first-child{text-align:left}
td{padding:9px 0;border-top:1px solid var(--line);text-align:right}
.bar{height:6px;border-radius:3px;background:var(--blue-s);margin-top:5px;overflow:hidden}.bar i{display:block;height:100%;background:var(--blue);border-radius:3px}
.hint{color:var(--mut);font-size:13px;margin:6px 4px}
.sheet{position:fixed;inset:0;background:rgba(11,37,69,.45);z-index:20;display:flex;align-items:flex-end;justify-content:center}
.sheet.hidden,.toast.hidden{display:none}
.sheet-card{background:var(--bg);width:100%;max-width:720px;max-height:94vh;overflow:auto;border-radius:24px 24px 0 0;padding:18px 16px calc(24px + var(--safe))}
.sheet-card.small{padding:10px}
.row-btn{display:block;width:100%;border:0;background:var(--card);text-align:left;padding:15px;border-radius:14px;font-weight:600;margin-bottom:8px;color:var(--navy)}
.row-btn.muted{background:transparent;color:var(--mut);text-align:center}
.sheet h2{margin:0 0 4px;font-size:20px;color:var(--navy)}
.sheet .x{float:right}
label{display:block;font-size:12px;font-weight:700;color:var(--mut);margin:12px 2px 5px;letter-spacing:.04em;text-transform:uppercase}
input,select{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;font-size:16px;min-width:0}
input:focus,select:focus{outline:2px solid var(--blue-s);border-color:var(--blue)}
.f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.f3{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:10px}input[type=date],input[type=time]{-webkit-appearance:none;appearance:none;min-height:48px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.seg button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px;font-weight:600}
.seg button.on.F{background:var(--blue-s);border-color:var(--blue);color:var(--blue)}
.seg button.on.A{background:var(--coral-s);border-color:var(--coral);color:#E0483A}
.tr{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:10px}
.tr h4{margin:0 0 4px;font-size:13px;color:var(--navy);display:flex;justify-content:space-between}
.drop{border:1.5px dashed #AEB9CE;border-radius:16px;padding:18px;text-align:center;color:var(--mut);background:#fff}
.drop b{color:var(--navy);display:block;margin-bottom:4px}
.thumbs{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.thumbs img{width:52px;height:52px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.alert{background:#FFF4D6;color:#6B4B00;border-radius:12px;padding:10px 12px;font-size:13px;margin-top:10px}
.alert.err{background:var(--coral-s);color:#B8372B}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(96px + var(--safe));background:var(--navy);color:#fff;padding:11px 16px;border-radius:12px;z-index:40;font-weight:600;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.empty{text-align:center;color:var(--mut);padding:30px 10px}
#print{display:none}
@media print{
  @page{size:A4 portrait;margin:12mm}
  html,body{background:#fff}#app,.fab,.sheet,.toast{display:none!important}
  #print{display:block!important;color:#0B2545;font-family:-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
  .pr-h{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:3px solid #0B2545;padding-bottom:8px;margin-bottom:10px}
  .pr-h h2{margin:0;font-size:24px;letter-spacing:-.01em}.pr-h span{font-size:12px;color:#6B7A90}
  .pr-t{width:100%;border-collapse:collapse;font-size:12.5px}
  .pr-t th{background:#0B2545;color:#fff;text-align:left;padding:7px 8px;font-size:11px;letter-spacing:.06em}
  .pr-t td{padding:7px 8px;border-bottom:1px solid #D9DFEA;text-align:left;vertical-align:top}
  .pr-t tr{break-inside:avoid}
  .pr-t .F td:nth-child(2){border-left:5px solid #2F6FED;font-weight:700;color:#2F6FED}
  .pr-t .A td:nth-child(2){border-left:5px solid #FF6B5B;font-weight:700;color:#E0483A}
  .pr-t .L td{color:#8B97AA}.pr-t .L td:nth-child(2){border-left:5px solid #D9DFEA}
  .pr-t small{display:block;color:#6B7A90;font-size:11px;margin-top:2px}
  .pr-t .dog{color:#E0483A;font-weight:700;font-size:11px}
  .pr-f{margin-top:10px;font-size:11px;color:#6B7A90;display:flex;gap:16px}
  .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
}
