:root{--bg: #f2f5f9;--surface: #ffffff;--surface-2: #f6f8fb;--border: #e3e9f0;--text: #0f1e33;--muted: #64768b;--brand: #0d5ca6;--green: #0e8a5f;--green-soft: #e3f6ee;--amber: #b86a00;--amber-soft: #fff1d9;--blue: #0d6bb8;--blue-soft: #e3f0fc;--violet: #6a44c9;--violet-soft: #efe8ff;--red: #c42433;--red-soft: #ffe6e8;--slate: #50657c;--slate-soft: #eaeff5;--radius: 20px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color-scheme:light;transition:background-color .2s ease,color .2s ease}@media all{:root[data-theme=dark]{--bg: #0b1420;--surface: #131f2e;--surface-2: #182638;--border: #233548;--text: #e8eef5;--muted: #8ea2b8;--green: #3fd09a;--green-soft: rgba(63, 208, 154, .14);--amber: #ffb547;--amber-soft: rgba(255, 181, 71, .14);--blue: #5fb0f5;--blue-soft: rgba(95, 176, 245, .14);--violet: #b39bff;--violet-soft: rgba(179, 155, 255, .15);--red: #ff7782;--red-soft: rgba(255, 119, 130, .14);--slate: #a9bacb;--slate-soft: rgba(169, 186, 203, .12);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{min-width:320px;min-height:100dvh;background:var(--bg);overscroll-behavior-y:none}button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}.app{width:min(100%,520px);margin:0 auto;min-height:100dvh;padding:calc(16px + var(--safe-t)) 16px calc(24px + var(--safe-b));display:flex;flex-direction:column;gap:14px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 2px}.topbar h1{margin:0;font-size:1.6rem;letter-spacing:-.03em;line-height:1.1}.topbar__date{display:block;margin-top:2px;color:var(--muted);font-size:.85rem}.topbar__date:first-letter{text-transform:uppercase}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap;color:var(--slate);background:var(--slate-soft)}.status-pill--travel{color:var(--blue);background:var(--blue-soft)}.status-pill--working{color:var(--green);background:var(--green-soft)}.status-pill--paused{color:var(--amber);background:var(--amber-soft)}.status-pill--finished{color:var(--red);background:var(--red-soft)}.status-dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.icon-button{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.icon-button:active{transform:scale(.94)}.topbar__actions{display:flex;gap:8px}.hello{margin-top:-6px;padding:0 2px;color:var(--muted);font-size:.92rem}.hello strong{color:var(--text)}.alert{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border-radius:14px;font-size:.88rem;line-height:1.35;font-weight:600}.alert svg{flex:0 0 auto;margin-top:1px}.alert--error{background:var(--red-soft);color:var(--red)}.alert--info{background:var(--blue-soft);color:var(--blue)}.status-card{--accent: var(--slate);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:14px;padding:16px 14px 14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:0 10px 30px #0f28460f}.status-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--accent)}.status-card--travel{--accent: var(--blue)}.status-card--working{--accent: var(--green)}.status-card--paused{--accent: var(--amber)}.status-card--finished{--accent: var(--red)}.status-card__row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.status-card .status-pill{font-size:.9rem;padding:8px 14px}.status-card__start{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.85rem}.status-card__start svg{color:var(--green)}.status-card__start b{color:var(--text);font-variant-numeric:tabular-nums}.status-card__warning{display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:12px;background:var(--amber-soft);color:var(--amber);font-size:.82rem;font-weight:700}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.metric{--tone: var(--slate);--tone-soft: var(--slate-soft);display:flex;flex-direction:column;gap:4px;min-width:0;padding:12px;border-radius:14px;background:var(--surface-2)}.metric--green{--tone: var(--green);--tone-soft: var(--green-soft)}.metric--amber{--tone: var(--amber);--tone-soft: var(--amber-soft)}.metric--blue{--tone: var(--blue);--tone-soft: var(--blue-soft)}.metric__icon{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;color:var(--tone);background:var(--tone-soft);margin-bottom:4px}.metric__label{color:var(--muted);font-size:.78rem}.metric__value{font-size:1.2rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}.activity{padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.activity__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.activity__head h2{margin:0;font-size:1.02rem}.reset-button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:0;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:.78rem;font-weight:600;cursor:pointer}.reset-button:active{opacity:.7}.empty-state{margin:4px 0 0;padding:18px 12px;border-radius:14px;border:1px dashed var(--border);color:var(--muted);font-size:.85rem;text-align:center}.timeline{list-style:none;margin:0;padding:0}.timeline__row{position:relative;display:grid;grid-template-columns:46px 14px 1fr;align-items:start;gap:8px;padding:8px 0}.timeline__row:not(:last-child):after{content:"";position:absolute;left:60px;top:26px;bottom:-8px;width:2px;background:var(--border)}.timeline__time{color:var(--muted);font-size:.82rem;font-weight:700;font-variant-numeric:tabular-nums;padding-top:1px}.timeline__dot{width:14px;height:14px;margin-top:3px;border-radius:50%;border:3px solid var(--brand);background:var(--surface);position:relative;z-index:1}.timeline__row:first-child .timeline__dot{background:var(--brand)}.timeline__text strong{display:block;font-size:.92rem}.timeline__text small{display:block;margin-top:2px;color:var(--muted);font-size:.8rem}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.action-button{--c: var(--brand);min-height:64px;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 12px;border:0;border-radius:16px;background:var(--c);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 8px 20px color-mix(in srgb,var(--c) 30%,transparent);transition:transform .12s ease,filter .12s ease,background-color .2s ease,opacity .2s ease}.action-button:not(:disabled):active{transform:scale(.97);filter:brightness(.95)}.action-button:disabled{background:var(--slate-soft);color:var(--muted);opacity:.6;cursor:not-allowed;box-shadow:none}.action-icon{display:grid;place-items:center}.action--travel{--c: #0d6bb8}.action--travel-end{--c: #c42433}.action--work{--c: #0e8a5f}.action--pause{--c: #d07a00}.action--resume{--c: #6a44c9}.action--end{--c: #c42433}.action-button--loading:disabled{opacity:1}.spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app--login{justify-content:center}.login-top{position:absolute;top:calc(16px + var(--safe-t));right:16px}.login-card{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:26px 20px 22px;border-radius:24px;background:var(--surface);border:1px solid var(--border);box-shadow:0 16px 40px #0f284614}.login-card h1{margin:0;text-align:center;font-size:1.7rem;letter-spacing:-.03em}.login-logo{width:62px;height:62px;margin:0 auto;display:grid;place-items:center;border-radius:20px;background:var(--brand);color:#fff;box-shadow:0 10px 24px color-mix(in srgb,var(--brand) 35%,transparent)}.login-subtitle{margin:-8px 0 4px;text-align:center;color:var(--muted);font-size:.92rem}.login-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:.85rem;font-weight:700}.field input{width:100%;min-height:52px;padding:0 14px;border-radius:14px;border:1.5px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:16px;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.field__password{position:relative}.field__password input{padding-right:52px}.field__eye{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}.login-submit{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:4px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:#050f1c80;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fadeIn .16s ease-out}.choice-modal{position:relative;width:min(100%,520px);max-height:92dvh;overflow-y:auto;border-radius:24px 24px 0 0;background:var(--surface);padding:10px 18px calc(18px + var(--safe-b));box-shadow:0 -10px 40px #05182b40;animation:sheetUp .22s cubic-bezier(.2,.9,.3,1)}.sheet-handle{width:40px;height:5px;margin:0 auto 12px;border-radius:999px;background:var(--border)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-close{position:absolute;top:18px;right:16px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--surface-2);color:var(--muted);cursor:pointer}.modal-heading{padding-right:44px}.modal-heading h2{margin:0;font-size:1.25rem}.modal-heading p{margin:4px 0 0;color:var(--muted);font-size:.88rem;line-height:1.4}.choice-list{display:grid;gap:10px;margin:16px 0}.choice-row{width:100%;min-height:64px;display:grid;grid-template-columns:42px 1fr 26px;align-items:center;gap:12px;padding:12px;text-align:left;border:1.5px solid var(--border);border-radius:16px;background:var(--surface-2);cursor:pointer;transition:border-color .12s ease,background .12s ease}.choice-row--active{border-color:var(--brand);background:var(--blue-soft)}.choice-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--surface);color:var(--slate)}.choice-row--active .choice-icon{color:var(--blue)}.choice-copy strong{display:block;font-size:.95rem}.choice-copy small{display:block;margin-top:2px;color:var(--muted);font-size:.8rem;line-height:1.35}.choice-check{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:2px solid var(--border);color:#fff}.choice-check--active{border-color:var(--brand);background:var(--brand)}.confirm-button{width:100%;min-height:56px;border:0;border-radius:16px;background:var(--brand);color:#fff;font-size:1rem;font-weight:700;cursor:pointer}.confirm-button:active{filter:brightness(.95)}.confirm-button:disabled{opacity:.4;cursor:not-allowed}@media(max-width:360px){.app{padding-left:12px;padding-right:12px}.metrics{gap:8px}.metric{padding:10px}.metric__value{font-size:1.05rem}.reset-button span{display:none}.action-button{font-size:.88rem;gap:6px;padding:0 8px}.action-icon svg{width:20px;height:20px}}@media(min-width:700px){.app{padding-top:40px}.choice-modal{border-radius:24px;margin-bottom:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:14px;background:var(--slate-soft)}.tab{min-height:42px;border:0;border-radius:11px;background:transparent;color:var(--muted);font-weight:700;font-size:.95rem;cursor:pointer}.tab--active{background:var(--surface);color:var(--text);box-shadow:0 2px 8px #0f284614}.inline-link{border:0;padding:0;background:none;color:inherit;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.week{display:flex;flex-direction:column;gap:14px}.week-nav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px}.week-nav__title{display:flex;flex-direction:column;align-items:center}.week-nav__title strong{font-size:1.1rem}.week-nav__title span{color:var(--muted);font-size:.85rem}.icon-button:disabled{opacity:.4}.week-card{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.week-card__row{display:flex;align-items:center;justify-content:space-between;gap:10px}.sheet-status{padding:6px 12px;border-radius:999px;font-size:.85rem;font-weight:700;color:var(--slate);background:var(--slate-soft)}.sheet-status--submitted{color:var(--blue);background:var(--blue-soft)}.sheet-status--validated{color:var(--green);background:var(--green-soft)}.sheet-status--refused{color:var(--red);background:var(--red-soft)}.metrics--4{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.metrics--4 .metric{padding:10px 8px;background:var(--surface-2);border:0}.metrics--4 .metric__value{font-size:1.02rem}.week-chips,.week-day__chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:700;color:var(--slate);background:var(--slate-soft);white-space:nowrap}.chip--ok{color:var(--green);background:var(--green-soft)}.chip--warn{color:var(--red);background:var(--red-soft)}.chip--blue{color:var(--blue);background:var(--blue-soft)}.chip--violet{color:var(--violet);background:var(--violet-soft)}.week-days{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.week-day{border-radius:16px;background:var(--surface);border:1px solid var(--border);overflow:hidden}.week-day--today{border-color:var(--brand)}.week-day__head{width:100%;min-height:58px;display:grid;grid-template-columns:1fr auto 20px;align-items:center;gap:10px;padding:10px 12px 10px 14px;border:0;background:transparent;text-align:left;cursor:pointer}.week-day__head:disabled{cursor:default;opacity:1}.week-day__label{display:flex;flex-direction:column;gap:5px;min-width:0}.week-day__label strong{font-size:.95rem}.week-day__total{font-weight:800;font-variant-numeric:tabular-nums}.week-day__chevron{color:var(--muted);transition:transform .15s ease}.week-day__chevron.is-open{transform:rotate(180deg)}.week-day__segments{list-style:none;margin:0;padding:4px 12px 12px;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border)}.seg{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--surface-2);border-left:4px solid var(--slate);font-size:.86rem}.seg--work{border-left-color:var(--green)}.seg--travel{border-left-color:var(--blue)}.seg--pause{border-left-color:var(--amber)}.seg--modified{background:var(--amber-soft)}.seg__time{font-variant-numeric:tabular-nums;font-weight:700}.seg__kind{color:var(--muted)}.seg__dur{font-weight:700;font-variant-numeric:tabular-nums}.seg__fi{grid-column:1 / -1;color:var(--muted);font-size:.8rem}.seg__missing{color:var(--red);font-style:normal;font-weight:700}.week-actions{display:flex;flex-direction:column;gap:10px}.week-submit{display:flex;align-items:center;justify-content:center;gap:10px}.secondary-button{min-height:52px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:16px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-weight:700;cursor:pointer}.link-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px;color:var(--blue);font-size:.9rem;font-weight:600;text-decoration:none}@media(max-width:360px){.metrics--4{grid-template-columns:repeat(2,minmax(0,1fr))}}.seg__note{grid-column:1 / -1;font-size:.8rem;font-style:italic}.modal-note{display:flex;flex-direction:column;gap:6px;margin:-4px 0 14px}.modal-note span{font-size:.85rem;font-weight:700}.modal-note textarea{width:100%;min-height:72px;padding:10px 12px;border-radius:14px;border:1.5px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:16px;resize:vertical;outline:none}.modal-note textarea:focus{border-color:var(--brand)}
