/* Copyright (c) 2026 Roman Jagodzinski. All rights reserved. */
:root{--paper:#f7f7f3;--ink:#243b36;--muted:#708179;--line:#dde5dc;--accent:#294b3d;--sage:#e4eee4;--coral:#da968b;--soft:#fff;--shadow:0 8px 35px rgba(41,58,42,.05)}
*{box-sizing:border-box}html{font-size:15px;min-height:100%;-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;line-height:1.45}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #78a28a;outline-offset:2px}a{color:#295d4a}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(35px,7vw,76px);letter-spacing:-.06em;font-weight:300;line-height:1.04;margin:0 0 7px}h2{font-size:26px;letter-spacing:-.04em;font-weight:420;margin:0 0 13px}h3{font-size:17px;font-weight:650;margin:0 0 10px}h4{font-size:14px;margin:0 0 7px}small,.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.15em;text-transform:uppercase;color:#7d8d7e}.app-header{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;background:rgba(247,247,243,.93);backdrop-filter:blur(16px);padding:11px max(15px,env(safe-area-inset-right)) 10px;max-width:1120px;margin:auto;border-bottom:1px solid #e4e8e1}.brand{display:flex;gap:10px;align-items:center}.logo{background:#223d36;color:#dfb993;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;font-size:18px;letter-spacing:-.06em}.brand-titles{display:flex;flex-direction:column;gap:1px}.brand strong{font-size:11px;letter-spacing:.15em}.brand small{font-size:10px}.status-pill{border-radius:99px;background:#fff;border:1px solid #e3e9df;padding:7px 10px;font-size:11px;color:#537363;display:flex;align-items:center;gap:6px}.dot{width:7px;height:7px;border-radius:50%;background:#83b891}.status-pill.offline .dot{background:#d29a72}.status-pill.offline{color:#967452}main{max-width:1120px;margin:0 auto;padding:20px 14px 114px}.surface{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.card{padding:18px;margin-bottom:12px}.hero{padding:20px;background:#244339;color:#fff;border-radius:19px;margin:12px 0 14px}.hero .eyebrow{color:#a9c9ba}.hero p{color:#e0ebe2;font-size:13px}.hero h2{font-size:31px;font-weight:350;color:#fff}.btns{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.button,button.primary,button.quiet,button.chip,button.small{border-radius:11px;min-height:43px;padding:10px 14px;border:1px solid #d4e1d5;background:white;color:#294f3d;font-size:13px;font-weight:550}.button,.primary,.quiet{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.button:disabled,button:disabled{opacity:.5;cursor:default}button.primary,.button.primary{background:#2d5142;color:white;border-color:#2d5142}.button.primary:hover,button.primary:hover{background:#203d34}.button.small,button.chip{min-height:35px;padding:7px 11px}.quiet{color:#3c5a4b}.danger{color:#a34c4c!important}.linkbtn{background:transparent;border:0;text-decoration:underline;color:#3a634f;padding:8px 0;font-size:13px}.mini-status{font-size:12px;color:#778c7f}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.stat{background:#f7faf6;padding:13px 10px;border:1px solid #e9eee8;border-radius:13px}.stat b{display:block;font-size:19px;font-weight:560;letter-spacing:-.035em}.stat small{font-size:10px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:16px 0 9px;gap:8px}.section-title h3{margin:0}.heading-meta{color:#778b7d;font-size:12px}.field{display:grid;gap:5px;margin-bottom:13px}.field label{font-size:11px;font-weight:700;letter-spacing:.025em;color:#63786b}.field input,.field select,.field textarea,input.control,textarea.control,select.control{width:100%;min-height:45px;background:#fcfdfa;border:1px solid #d2dfd3;border-radius:10px;padding:11px;color:var(--ink);font-size:16px}.field textarea{min-height:90px;resize:vertical;line-height:1.5}.field input[type=color]{height:46px;padding:3px;min-height:46px}.help{font-size:12px;color:#75887b;line-height:1.5}.notice{background:#fff8e7;border:1px solid #f2e4bd;padding:13px;border-radius:13px;margin:12px 0;color:#806b40;font-size:13px}.good{background:#ebf5ed;border-color:#c9e6cf;color:#3b7050}.warning{background:#fff6ef;border-color:#f3dacc;color:#915a46}.spaced{display:grid;gap:13px}.thin{border-top:1px solid var(--line);margin:13px 0}.month-header{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.month-controls{display:flex;gap:7px;align-items:center;margin:10px 0}.month-title{font-size:clamp(38px,6.5vw,68px);line-height:1;letter-spacing:-.06em;font-weight:250;text-transform:capitalize}.month-assumptions{background:#fffdfa;border:1px solid #e4e8dd;border-radius:13px;padding:12px}.month-assumptions textarea{background:transparent;width:100%;border:0;resize:vertical;min-height:65px;outline:none;font-size:13px;color:#354e42}.block-card{display:flex;align-items:center;gap:11px;background:#edf3ea;border:1px solid #d7e2d6;border-radius:14px;padding:11px 12px;margin:12px 0;text-align:left;width:100%}.block-square{width:15px;height:43px;border-radius:5px;flex:0 0 15px}.block-card strong{display:block;font-size:13px}.block-card small{font-size:11px}.calendar-shell{display:grid;grid-template-columns:minmax(0,1fr) 34px;border:1px solid var(--line);background:#fff;border-radius:15px;overflow:hidden}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}.weekday{background:#f2f6ef;padding:8px 2px;text-align:center;font-size:10px;font-weight:700;color:#748577;border-bottom:1px solid var(--line)}.day-cell{border:0;border-bottom:1px solid #eef0eb;border-right:1px solid #edf0e9;background:#fff;min-height:85px;text-align:left;display:flex;flex-direction:column;padding:6px 3px;gap:3px;min-width:0}.day-cell:nth-of-type(7n){border-right:0}.day-cell.outside{background:#fbfcfa;color:#bdc8b9}.day-cell .n{align-self:start;margin-left:3px;font-size:11px;font-weight:700;border-radius:20px;min-width:19px;text-align:center;padding:2px}.day-cell.today .n{background:#294e40;color:#fff}.day-cell.selected{background:#f1f7ef}.event-chip{display:block;font-size:9px;line-height:1.2;padding:4px 4px;border-radius:4px;color:#243b36;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%;border-left:2px solid rgba(0,0,0,.09)}.more-events{font-size:9px;color:#79907d;margin-left:3px}.period-rail{border-left:1px solid var(--line);background:#f5f7f2;display:flex;align-items:center;justify-content:center;overflow:hidden}.period-rail button{writing-mode:vertical-rl;transform:rotate(180deg);background:none;border:0;padding:10px 5px;color:#607a67;font-size:10px;font-weight:700;letter-spacing:.04em;max-height:100%}.day-hero{display:flex;align-items:start;justify-content:space-between;gap:10px}.day-hero h2{font-size:32px;font-weight:350}.day-events{display:grid;gap:7px}.timeline-item{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;align-items:stretch}.time-axis{font-size:11px;color:#7d8e83;text-align:right;padding:12px 0}.timeline-chip{border:0;border-left:5px solid rgba(0,0,0,.15);padding:12px;text-align:left;border-radius:10px;display:flex;gap:12px;align-items:center;min-height:54px;position:relative}.timeline-chip strong{font-size:14px}.timeline-chip .desc{color:#41584d;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.timeline-chip .arrow{margin-left:auto;font-size:18px}.detail-hours{font-size:10px;letter-spacing:.04em}.list-item{background:white;border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:9px}.list-head{display:flex;justify-content:space-between;align-items:center;gap:9px}.pill{font-size:10px;padding:4px 8px;border-radius:99px;border:1px solid #d8e3d8;background:#f4f8f3;color:#52715d;white-space:nowrap}.pill.A{background:#3c5b49;color:white}.pill.B{background:#f1e8cd}.pill.C{background:#e8eceb}.report-output{width:100%;min-height:260px;font-size:12px;line-height:1.55;white-space:pre-wrap;border:1px solid var(--line);border-radius:12px;background:#fbfcfa;color:var(--ink);padding:12px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:rgba(250,252,249,.97);backdrop-filter:blur(18px);border-top:1px solid #dae5d9;box-shadow:0 -4px 18px #243a2a0a;z-index:50;padding:8px max(4px,env(safe-area-inset-left)) calc(9px + env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:1px;font-size:9px;color:#819387;padding:6px 1px;border-radius:9px;min-width:0}.bottom-nav button.selected{background:#e7f0e6;color:#2b5441;font-weight:700}.nav-icon{font-size:19px;line-height:23px;font-weight:400}dialog{border:0;padding:0;border-radius:19px;box-shadow:0 25px 80px #142a2260;width:min(95vw,520px);max-height:min(92dvh,850px);overflow:auto}dialog::backdrop{background:rgba(25,42,35,.5)}dialog form{padding:18px}dialog h2{font-size:23px;margin:0}.dialog-header,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:9px}.dialog-header{margin-bottom:16px}.dialog-actions{margin-top:14px;position:sticky;bottom:-18px;background:#fff;padding:13px 0 2px;border-top:1px solid #edf0e8}.dialog-actions button{flex:1}.icon-button{background:transparent;border:0;font-size:28px;color:#6b7d70}.toast{position:fixed;bottom:calc(84px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%) translateY(35px);opacity:0;pointer-events:none;background:#244439;color:#fff;padding:11px 16px;border-radius:12px;font-size:13px;max-width:92vw;box-shadow:0 12px 30px #2034282e;z-index:90;transition:.18s}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.loading{padding:45px;text-align:center;color:#73897b}.empty{padding:30px 15px;text-align:center;color:#89988a;border:1px dashed #d8e4d8;border-radius:15px}.mono{font-variant-numeric:tabular-nums}.hidden{display:none!important}details summary{cursor:pointer;font-weight:650;padding:7px 0}.kpi-green{color:#426e4e}.subtle-text{font-size:12px;color:#728779}.info-label{font-size:11px;color:#718576;text-transform:uppercase;letter-spacing:.07em}.report-select{display:grid;grid-template-columns:1fr 1fr;gap:9px}.report-select .field{margin:0}.settings-section{margin-bottom:16px}.storage-meter{height:7px;background:#e9ede6;border-radius:20px;overflow:hidden}.storage-meter span{height:7px;background:#658e74;display:block}.footer-info{color:#91a195;text-align:center;font-size:10px;padding:18px 10px}.color-swatch{width:13px;height:13px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:-2px}.file-input{display:none}mark{background:#e5ebd4}
@media(min-width:720px){main{padding:22px 24px 100px}.app-header{padding:13px 25px}.bottom-nav{max-width:720px;left:50%;transform:translateX(-50%);border:1px solid #d6e5d8;border-radius:18px 18px 0 0}.day-cell{min-height:112px;padding:9px 7px}.event-chip{font-size:11px}.weekday{font-size:13px}.month-title{font-size:70px}.card{padding:22px}.calendar-shell{grid-template-columns:minmax(0,1fr) 45px}}
@media(max-width:390px){.brand small{display:none}.status-pill{font-size:10px}.month-header{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.day-cell{min-height:79px}.event-chip{font-size:8px}.bottom-nav button{font-size:9px}.card{padding:14px}.report-select{grid-template-columns:1fr}}

/* Dyskretna stopka autora; bez nachodzenia na dolną nawigację iOS. */
#app{display:flex;flex-direction:column;min-height:100dvh}
#app>main{flex:1;padding-bottom:28px}
.app-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 12px;max-width:1120px;width:100%;margin:0 auto;padding:12px 18px calc(96px + env(safe-area-inset-bottom));text-align:center;font-size:11px;line-height:1.5;color:#84948a}
.app-footer a{font-size:11px;color:#6c8477;text-decoration:underline;text-underline-offset:2px}
.privacy-copyright{max-width:760px;margin:0 auto;padding:20px 14px 28px;text-align:center;font-size:11px;color:#84948a}

/* PWA 1.2.1: kompaktowa 24h oś doby i strona instrukcji. Copyright (c) 2026 Roman Jagodzinski. */
.brand-link{border:0;background:transparent;padding:0;margin:0;text-align:left;color:inherit;font:inherit;cursor:pointer;min-width:0}
.brand-link:focus-visible{outline:2px solid #b78d39;outline-offset:4px;border-radius:9px}
.logo{color:#edc46f} /* złoty tekst, tło logo pozostaje oryginalne */
.timeline-helper{font-size:11px;color:#738579;margin:-1px 0 10px;line-height:1.45}
.day-timeline-frame{background:#fff;border:1px solid #dbe5dc;border-radius:14px;overflow:hidden;box-shadow:0 8px 25px #263f3307}
.day-timeline{height:500px;position:relative;isolation:isolate;min-width:0;background:#fff}
.timeline-tick{position:absolute;left:0;right:0;height:0;display:grid;grid-template-columns:50px minmax(0,1fr);align-items:center;z-index:1;pointer-events:none}
.timeline-hour{font-size:10px;font-weight:600;text-align:right;color:#6d8074;padding-right:8px;white-space:nowrap;background:#fff;line-height:1.1}
.timeline-hour small{font-size:9px;color:#819486}
.timeline-tick-line{display:block;border-top:1px solid #d5dfd5;height:0}
.timeline-half-line{position:absolute;left:50px;right:0;height:0;border-top:1px solid #edf1eb;pointer-events:none}
.day-time-block{position:absolute;left:55px;right:7px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;min-height:0;padding:2px 8px;border:0;border-left:3px solid #ffffff55;border-radius:5px;text-align:left;overflow:hidden;cursor:pointer;font-size:12px;line-height:1.16;box-shadow:0 1px 3px #243b3614;transition:filter .12s}
.day-time-block:active{filter:brightness(.92)}
.day-time-block:focus-visible{outline:3px solid #b78d39;outline-offset:1px;z-index:5}
.day-time-title{font-weight:700;overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;line-height:1.2}
.day-time-meta{font-size:10px;line-height:1.2;opacity:.88;margin-top:2px;white-space:nowrap}
.day-time-block.compact{padding:0 6px;border-radius:3px;font-size:10px;line-height:1.05}
.day-time-block.micro{border-radius:2px;padding:0 5px;min-height:0}
.day-time-block.micro .day-time-title{font-size:0;line-height:0}
.day-time-block.micro .day-time-meta{display:none}
.day-extra{margin-top:12px;padding:10px 12px}
.day-extra summary{font-size:12px}
.day-extra summary .help{font-weight:400}
.day-extra-list{display:grid;gap:4px;margin-top:9px}
.day-extra-event{display:flex;align-items:center;gap:9px;padding:9px 4px;background:white;border:0;border-top:1px solid #edf0ed;text-align:left;width:100%;color:var(--ink)}
.day-extra-event>span:nth-child(2){display:grid;gap:2px;flex:1;min-width:0}
.day-extra-event b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-extra-event small{font-size:10px;color:#859287}
.about-hero{background:#223d36;color:#fff;border-radius:19px;padding:28px 19px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;margin:10px 0 20px}
.about-logo{width:90px;height:90px;border:1px solid #b9945a80;border-radius:23px;display:grid;place-items:center;background:#223d36;color:#edc46f;font-size:43px;font-weight:400;letter-spacing:-.065em;margin-bottom:16px}
.about-hero .eyebrow{color:#d0b884;font-size:10px;letter-spacing:.12em}
.about-hero h1{color:#fff;font-size:30px;font-weight:450;line-height:1.2;margin:7px 0 10px}
.about-hero p{color:#dce7df;font-size:13px;max-width:360px;margin:0;line-height:1.55}
.about-steps{display:grid;gap:9px}
.about-step{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1px solid #e0e8df;border-radius:14px;padding:14px}
.about-number{background:#e9f0e7;color:#3a654d;border-radius:10px;min-width:30px;height:30px;display:grid;place-items:center;font-weight:750;font-size:13px}
.about-step b{font-size:13px}
.about-step p{font-size:12px;margin:4px 0 0;color:#728479;line-height:1.5}
.about-end{background:#edf3ea;border-radius:15px;padding:18px;margin:16px 0 0}
.about-end b{font-size:13px}
.about-end p{font-size:12px;line-height:1.5;color:#6a8071}

/* 1.2.1: jeden zwarty rząd parametrów dnia na telefonie. */
@media(max-width:540px){
  .day-hero + .stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:9px 0}
  .day-hero + .stats .stat{padding:9px 5px;min-width:0}
  .day-hero + .stats .stat b{font-size:15px;line-height:1.3}
  .day-hero + .stats .stat small{font-size:9px;line-height:1.2;display:block}
}
