:root{color-scheme:light;--ink:#173451;--muted:#687888;--blue:#204a8b;--orange:#eb780c;--line:#d7dfe7;--paper:#fff;--soft:#f2f5f8;--radius:7px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}
html{margin:0;min-height:100%;background:#e9eef3;-webkit-text-size-adjust:100%}
body{margin:0;padding:12px max(8px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));color:var(--ink);font-size:14px;line-height:1.3}
button,input{font:inherit}
button,a,input{-webkit-tap-highlight-color:transparent}
input{min-width:0;color:var(--ink);background:#fff;border:1px solid #c2cfdb;border-radius:4px;height:34px;padding:5px 7px;font-size:16px;line-height:1.2;width:100%;box-shadow:none}
input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #80b5ed;outline-offset:2px}
input[aria-invalid="true"]{border-color:#ba372d;outline:2px solid #efc6c0}
input:disabled,input[readonly]{opacity:1;-webkit-text-fill-color:var(--ink)}
button{cursor:pointer;touch-action:manipulation}
[hidden]{display:none!important}
.app{width:100%;max-width:580px;margin:0 auto;background:var(--paper);border:1px solid #dce3ea;border-top:3px solid var(--orange);border-radius:var(--radius);padding:12px;box-shadow:0 3px 16px #18354f0a}
.document-header{display:flex;align-items:flex-start;gap:8px;position:relative;margin-bottom:10px}
.brand{font-size:10px;font-weight:850;letter-spacing:.7px;line-height:1.1;color:var(--orange);text-decoration:none}
.brand span{color:var(--ink);margin-left:3px}
h1{font-size:22px;line-height:1.1;letter-spacing:-.5px;margin:2px 0 0;font-weight:750}
h1>span{font-size:10px;letter-spacing:0;font-weight:400;color:var(--muted);margin-left:5px}
.portal-link{margin-left:auto;font-size:10px;line-height:1.3;color:var(--blue);text-decoration:none;text-align:right;padding-top:3px}
.portal-link span{display:block;font-size:9px;color:var(--muted)}
.document-kind{display:none;margin-left:auto;font-size:11px;font-weight:650;letter-spacing:1px;color:var(--muted);padding-top:5px}
.week-bar{display:flex;align-items:center;gap:12px;padding:8px 9px;background:var(--soft);border-radius:5px;margin-bottom:9px}
.week-field,.year-field{display:flex;gap:6px;align-items:center;font-size:12px;font-weight:650}
.week-field small,.year-field small,.week-total small{display:block;font-weight:400;font-size:9px;color:var(--muted);line-height:1.1}
.week-field input{width:44px;text-align:center;padding:4px;height:32px}
.year-field input{width:62px;text-align:center;padding:4px;height:32px}
.week-total{margin-left:auto;text-align:right;font-size:10px;font-weight:500;line-height:1.15}
.week-total>span{display:block}
.week-total small{display:inline;margin-left:2px}
.week-total output{font-size:22px;font-weight:750;letter-spacing:-.5px;line-height:1.05;font-variant-numeric:tabular-nums}
.week-total .unit{font-size:12px;font-weight:500}
.days-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.day{display:flex;flex-direction:column;align-items:center;min-width:0;border:1px solid var(--line);border-radius:5px;background:#fff;padding:5px 3px 3px}
.day-name{font-size:12px;font-weight:700}
.day-date{font-size:10px;font-weight:400;color:var(--muted);margin:2px 0 5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.day input{text-align:center;padding:4px 0;height:32px;border-color:#d2dce5;font-size:16px;font-variant-numeric:tabular-nums}
.weekend{background:#f6f7f9}
.hours-hint{font-size:9px;line-height:1.3;color:var(--muted);margin:5px 0 9px}
.hours-hint span{font-size:8px;margin-left:3px}
.parties-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:9px 0 10px}
.party{min-width:0;padding:0}
h2{font-size:11px;line-height:1.2;font-weight:750;margin:0 0 6px}
h2>span{display:block;font-size:9px;font-weight:400;color:var(--muted);margin-top:2px}
.party h2{border-bottom:2px solid #e7edf3;padding-bottom:5px;min-height:33px}
.party label{display:block;font-size:10px;line-height:1.2;margin:6px 0 3px}
.party label small{color:var(--muted);font-size:8px;margin-left:2px;font-weight:400}
.party input{height:33px;padding:5px 6px}
.review-value{display:none;min-height:20px;font-size:14px;line-height:1.25;overflow-wrap:anywhere;font-weight:550}
.signature-heading{display:flex;gap:8px;align-items:flex-start;margin-bottom:5px}
.signature-heading h2{margin:0}
.text-button{color:var(--blue);background:none;border:0;border-radius:4px;padding:0 3px;font-size:11px;line-height:1.25;text-decoration:underline;text-underline-offset:2px}
.text-button span{display:block;font-size:9px;color:var(--muted);text-decoration:none}
.signature-heading .text-button{margin-left:auto;padding:0 0 0 6px;min-height:29px}
.signature-box{position:relative;height:114px;border:1px solid #bbcbd9;border-radius:5px;background:#fff;overflow:hidden}
#signature-canvas{position:relative;display:block;width:100%;height:112px;touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;z-index:1;cursor:crosshair;background:transparent}
.signature-placeholder{pointer-events:none;position:absolute;left:0;right:0;top:38px;text-align:center;font-size:11px;color:#8695a4;line-height:1.3;z-index:0}
.signature-placeholder span{display:block;font-size:9px}
.signature-box.has-signature .signature-placeholder,body.has-signature .signature-placeholder{display:none}
.status{font-size:11px;line-height:1.3;color:#a12b23;margin:0}
.status:not(:empty){margin:7px 0}
.status span[lang="pl"],.status small{display:block;font-size:10px}
.status.is-success{color:#267047}
.actions{margin-top:9px}
.primary-button{width:100%;min-height:40px;border:1px solid var(--blue);background:var(--blue);color:#fff;border-radius:5px;font-size:14px;font-weight:650;padding:5px 12px;line-height:1.2}
.primary-button span{display:block;font-size:9px;font-weight:400;opacity:.88;margin-top:1px}
.primary-button:active{background:#173c76}
.storage-note{font-size:8px;line-height:1.35;color:var(--muted);margin:6px 0 0;text-align:center}
.storage-note span{display:block;font-size:8px}
.document-footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #e2e8ed;padding-top:6px;margin-top:8px;font-size:9px;line-height:1.2;color:var(--muted);font-variant-numeric:tabular-nums}
.confirmed-controls{max-width:580px;margin:6px auto 0;text-align:right}
.no-script{font-size:12px;color:#a12b23;background:#fff0ec;padding:8px;border-radius:4px}
.no-script span{display:block}
body.is-confirmed{background:#e9eef3}
.is-confirmed .edit-only{display:none!important}
.is-confirmed .document-kind{display:block}
.is-confirmed .document-header{margin-bottom:10px}
.is-confirmed .week-bar{background:#f2f5f8}
.is-confirmed .week-bar input{border-color:transparent;background:transparent;font-weight:700;pointer-events:none}
.is-confirmed .day input{display:none}
.is-confirmed .day .hours-value{display:flex;align-items:center;justify-content:center;width:100%;height:31px;min-height:31px;white-space:nowrap;overflow-wrap:normal;font-size:clamp(12px,3.8vw,17px);font-weight:700;line-height:1;letter-spacing:-.2px;font-variant-numeric:tabular-nums}
.is-confirmed .parties-grid{margin-top:13px;margin-bottom:12px}
.is-confirmed .party input{display:none}
.is-confirmed .review-value{display:block}
.is-confirmed .party label{margin-top:7px;margin-bottom:3px}
.is-confirmed .signature-box{border-color:#d0d9e1}
.is-confirmed #signature-canvas{pointer-events:none;cursor:default}
.is-confirmed .status{display:none}
@media(min-width:600px){body{padding-top:24px}.app{padding:18px}.document-header{margin-bottom:14px}h1{font-size:25px}.brand{font-size:11px}.parties-grid{gap:20px}.party label{font-size:11px}.party label small{font-size:9px}.party h2{font-size:12px}.signature-box{height:132px}#signature-canvas{height:130px}.signature-placeholder{top:46px}.primary-button{min-height:43px}}
@media(max-width:359px){body{padding:5px 5px max(6px,env(safe-area-inset-bottom))}.app{padding:9px;border-radius:5px}.document-header{margin-bottom:8px}h1{font-size:20px}.week-bar{gap:8px;padding:7px}.week-field,.year-field{gap:4px;font-size:11px}.week-field input{width:38px}.year-field input{width:56px}.week-total small{display:none}.days-grid{gap:3px}.day{padding:4px 2px 2px}.day-date{font-size:9px;margin-bottom:4px}.parties-grid{gap:8px}.party label small{display:block;margin-left:0}.party h2{font-size:10px;min-height:31px}.party input{height:32px}.hours-hint span{display:block;margin:1px 0 0}.signature-box{height:106px}#signature-canvas{height:104px}.signature-placeholder{top:34px}.document-footer{font-size:8px}}
@media print{@page{size:A5;margin:10mm}html,body{background:#fff!important}body{padding:0}.app{max-width:none;border:0;box-shadow:none;padding:0}.edit-only,.screen-only{display:none!important}.document-kind{display:block}.signature-box{break-inside:avoid}.party input{border-color:transparent}.document-footer{margin-top:12px}}
