*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{background:#fff}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#f5f5f7;color:#1c1c1e;min-height:100vh}
/* Тонкий скроллбар для Windows/Chrome/Edge */
.modal-sheet::-webkit-scrollbar,.modal-overlay::-webkit-scrollbar,.gs-results::-webkit-scrollbar{width:4px}
.modal-sheet::-webkit-scrollbar-track,.modal-overlay::-webkit-scrollbar-track,.gs-results::-webkit-scrollbar-track{background:transparent}
.modal-sheet::-webkit-scrollbar-thumb,.modal-overlay::-webkit-scrollbar-thumb,.gs-results::-webkit-scrollbar-thumb{background:#d1d1d6;border-radius:2px}
.modal-sheet::-webkit-scrollbar-thumb:hover,.modal-overlay::-webkit-scrollbar-thumb:hover,.gs-results::-webkit-scrollbar-thumb:hover{background:#aeaeb2}
.modal-sheet,.modal-overlay,.gs-results{scrollbar-width:thin;scrollbar-color:#d1d1d6 transparent}
button,select,input,textarea{font-family:inherit}
.ic{width:13px;height:13px;vertical-align:-2px;display:inline-block;flex-shrink:0}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:#8e8e93;margin-bottom:4px;font-weight:500}
.field input,.field select,.field textarea{width:100%;padding:11px 12px;font-size:15px;border:1px solid #e0e0e0;border-radius:10px;background:#fff;color:#1c1c1e;-webkit-appearance:none}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:#007aff}
.field input.err{border-color:#ff3b30}
.field textarea{resize:vertical;min-height:68px}
.field input:disabled,.field select:disabled,.field textarea:disabled{opacity:1;color:#1c1c1e;-webkit-text-fill-color:#1c1c1e;background:#f9f9f9}
.btn-login{width:100%;padding:13px;font-size:16px;font-weight:700;background:#007aff;color:#fff;border:none;border-radius:12px;cursor:pointer;margin-top:4px}
.login-error{font-size:13px;color:#ff3b30;text-align:center;margin-top:10px;min-height:18px}
.badge{font-size:10px;padding:2px 8px;border-radius:20px;white-space:nowrap;font-weight:500;background:#f2f2f7;color:#3a3a3c;border:.5px solid #e0e0e0}
.optype-badge{font-size:11px;padding:2px 9px;border-radius:6px;font-weight:700;color:#fff;white-space:nowrap;display:inline-block}
.empty{text-align:center;padding:40px 20px;color:#8e8e93;font-size:14px}
.sync-bar{font-size:11px;color:#34c759;text-align:right;padding:2px 16px 1px;cursor:pointer;transition:color .3s}
@keyframes spin{to{transform:rotate(360deg)}}
.sync-spin{display:inline-block;animation:spin .7s linear infinite;margin-right:3px}
:focus-visible{outline:3px solid #007aff;outline-offset:2px;border-radius:4px}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #007aff;outline-offset:2px}
.notif-banner{background:#fff8e0;border:1.5px solid #ff9500;border-radius:12px;padding:10px 14px;margin-bottom:10px;font-size:13px;display:flex;align-items:center;gap:8px}

/* ── Animations ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.main{animation:fadeUp .22s ease}
.modal-sheet{animation:fadeUp .2s ease}
.day-panel{animation:fadeUp .18s ease}

/* ── Button press ── */
button:active{transform:scale(.96);transition:transform .08s ease}
.btn-add:active,.btn-save:active,.btn-login:active,.export-btn:active{transform:scale(.97)}

/* ── Inputs ── */
.field input,.field select,.field textarea{transition:border-color .15s ease,box-shadow .15s ease}
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 3px rgba(0,122,255,.12)}

/* ── Pixel Robot (WALL-E style) ──────────────────────────────────────────── */
@keyframes robot-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes robot-sway{0%,100%{transform:rotate(-9deg) translateY(0)}50%{transform:rotate(9deg) translateY(-2px)}}
@keyframes robot-bounce{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-9px) scale(1.04)}}
@keyframes robot-pulse{0%,100%{opacity:1}50%{opacity:.15}}
@keyframes robot-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
@keyframes robot-pop{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}

.robot-idle{animation:robot-bob 2.2s ease-in-out infinite}
.robot-loading{animation:robot-sway .5s ease-in-out infinite}
.robot-ready{animation:robot-bounce .42s ease-in-out infinite}
.robot-ready .rl1,.robot-ready .rl2,.robot-ready .rl3{animation:robot-pulse .38s ease-in-out infinite}
.robot-done{animation:robot-pop .35s ease-in-out}
.robot-done .rl1,.robot-done .rl2,.robot-done .rl3{fill:#34c759!important}
.robot-shake{animation:robot-shake .45s ease-in-out}
#login-robot{display:block;margin:0 auto 14px;animation:robot-bob 2.4s ease-in-out infinite}
#login-robot.robot-loading{animation:robot-sway .5s ease-in-out infinite}
#login-robot.robot-shake{animation:robot-shake .4s ease-in-out}
