:root{background:#f7f6fb;color:#24212f;color-scheme:light;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;--accent:#2563eb;--accent-dark:#1d4ed8;--navy:#0b132b;--surface:#fff;--border:#e8e5f0;--muted:#777185;--danger:#c44356;--shadow:0 18px 60px rgba(42,32,86,.09)}*{box-sizing:border-box}.visually-hidden{height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;clip:rect(0,0,0,0)!important;border:0!important;white-space:nowrap!important}body{background:radial-gradient(circle at 10% 0,rgba(37,99,235,.12),transparent 30rem),#f7f6fb;margin:0;min-height:100vh;min-width:320px}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}h1,h2,p{margin-top:0}h1{font-size:clamp(1.75rem,5vw,2.6rem);letter-spacing:-.04em;margin-bottom:0}h2{letter-spacing:-.025em}.eyebrow{color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.13em;margin-bottom:.35rem;text-transform:uppercase}.muted{color:var(--muted)}.login-logo{height:auto;margin:-.6rem 0 1.4rem;width:min(100%,17rem)}.splash-logo{border-radius:1.35rem;box-shadow:0 12px 30px #2563eb3d;height:4.5rem;margin:0 auto 1rem;width:4.5rem}.auth-shell,.splash-screen{display:grid;min-height:100dvh;padding:1.25rem;place-items:center}.splash-screen{align-content:center;color:var(--muted);text-align:center}.auth-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffeb;border:1px solid hsla(0,0%,100%,.8);border-radius:2rem;box-shadow:var(--shadow);padding:clamp(1.5rem,6vw,2.75rem);width:min(100%,28rem)}.auth-form,.editor-card form{display:grid;gap:1rem;margin-top:1.75rem}label>span{color:#514c5a;display:block;font-size:.82rem;font-weight:700;margin-bottom:.42rem}input,textarea{background:#fbfafd;border:1px solid var(--border);border-radius:.9rem;color:#24212f;transition:border-color .18s,box-shadow .18s;width:100%}input{min-height:3rem;padding:0 .9rem}textarea{padding:.8rem .9rem;resize:vertical}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb17}.primary-button,.small-button{background:var(--accent);border:0;border-radius:.9rem;color:#fff;cursor:pointer;font-weight:750;transition:transform .15s,background .15s}.primary-button{min-height:3rem;padding:0 1.25rem}.small-button{padding:.65rem .9rem}.primary-button:hover,.small-button:hover{background:var(--accent-dark)}.primary-button:active,.small-button:active{transform:translateY(1px)}.primary-button:disabled,.small-button:disabled{cursor:not-allowed;opacity:.55}.add-child-button,.icon-button,.item-content,.text-button{background:transparent;border:0;cursor:pointer}.text-button{color:var(--muted);font-weight:700;padding:.55rem .7rem}.add-child-button:hover,.text-button:hover{color:var(--accent)}.danger-text{color:var(--danger)}.add-child-button:disabled,.icon-button:disabled,.item-content:disabled,.text-button:disabled{cursor:not-allowed;opacity:.55}.icon-button{border-radius:50%;color:var(--muted);display:grid;flex:0 0 auto;font-size:1.35rem;height:2.25rem;padding:0;place-items:center;width:2.25rem}.icon-button:hover{background:#f0edf6}.icon-button.danger:hover{background:#fff0f2;color:var(--danger)}.pin-button svg{fill:none;height:1.05rem;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7;width:1.05rem}.pin-button.active{background:#edf3ff;color:var(--accent)}.form-error{background:#fff0f2;border-radius:.8rem;color:#a12f41;font-size:.88rem;margin:0;padding:.75rem .9rem}.dismissible-notice{align-items:flex-start;display:flex;gap:.75rem;justify-content:space-between}.dismissible-notice>span{flex:1}.dismissible-notice>button{background:#ffffff8c;border:0;border-radius:50%;color:currentColor;cursor:pointer;flex:0 0 auto;font-size:1.25rem;height:1.75rem;line-height:1;padding:0;width:1.75rem}.app-shell{margin:0 auto;padding:0 0 max(2rem,env(safe-area-inset-bottom));width:min(100% - 2rem,52rem)}.app-header{align-items:flex-end;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f7f6fbe6;box-shadow:0 1px #e8e5f0cc;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.5rem;padding:max(1rem,env(safe-area-inset-top)) .35rem 1rem;position:sticky;top:0;z-index:20}.header-brand{align-items:center;display:flex;gap:1rem;min-width:0}.app-logo{flex:0 0 auto;height:auto;width:10rem}.header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.install-button{background:var(--accent);border:0;border-radius:999px;color:#fff;cursor:pointer;font-size:.78rem;font-weight:800;min-height:2.35rem;padding:0 .9rem}.install-button:hover{background:var(--accent-dark)}.install-hint{background:#e8f0ff;border-radius:.85rem;color:#17408f;font-size:.84rem;margin:-.7rem .4rem 1rem;padding:.75rem 1rem}.push-hint{margin-top:0}.notification-button{background:#ffffffd9;border:1px solid #d7d2e2;border-radius:50%;color:#514c5a;cursor:pointer;display:grid;flex:0 0 auto;height:2.5rem;padding:0;place-items:center;position:relative;width:2.5rem}.notification-button svg{fill:none;height:1.25rem;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:1.25rem}.notification-button.enabled{background:#e6f6ef;border-color:#bce4d4;color:#29775b}.notification-button.enabled:after{background:#35a479;border:2px solid #fff;border-radius:50%;bottom:.08rem;content:"";height:.48rem;position:absolute;right:.08rem;width:.48rem}.notification-button.warning{background:#fff8fa;color:#8b6570}.notification-button.working svg{animation:notification-pulse .8s ease-in-out infinite alternate}.notification-button:disabled{cursor:not-allowed;opacity:.65}@keyframes notification-pulse{to{opacity:.35;transform:scale(.88)}}.status-badge{align-items:center;background:#ece9f3;border-radius:999px;color:#635d70;display:inline-flex;flex:0 0 auto;font-size:.73rem;font-weight:750;gap:.35rem;padding:.45rem .7rem;white-space:nowrap}.status-badge:before{background:currentColor;border-radius:50%;content:"";height:.45rem;width:.45rem}.status-badge.online{background:#e6f6ef;color:#29775b}.status-badge.offline{background:#fff1dc;color:#9b5a24}.status-badge.pending-status{background:#eeebff;color:#6559c8}.list-card{background:#ffffffeb;border:1px solid hsla(0,0%,100%,.8);border-radius:1.75rem;box-shadow:var(--shadow);min-height:24rem;padding:clamp(1rem,4vw,1.5rem)}.inline-form{align-items:center;display:flex;gap:.65rem}.inline-form input{flex:1}.add-form{border-bottom:1px solid var(--border);padding-bottom:1.25rem}.inline-form.compact{margin-top:.7rem;padding-left:3.75rem}.inline-form.compact input{min-height:2.55rem}.list-error{margin:1rem 0}.items-list{display:grid;gap:.55rem;padding-top:1rem}.check-item{background:#fff;border:1px solid transparent;border-radius:1rem;transition:opacity .2s,border-color .2s,background .2s}.check-item:hover{background:#fcfbfe;border-color:var(--border)}.check-item.completed{background:#f8f7fa;opacity:.72}.check-item.pending{border-color:#c9c2f8;border-style:dashed}.check-item.pinned{border-color:#dbe6ff}.check-item.sorting{background:#f3f6ff;border-color:#a9bff5;box-shadow:0 10px 28px #2563eb21;z-index:2}.check-item.sort-target:not(.sorting){border-color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}.item-main-row{align-items:center;display:flex;gap:.55rem;min-height:3.8rem;padding:.45rem .55rem}.drag-handle{background:transparent;border:0;border-radius:.55rem;color:#aaa3b3;cursor:grab;display:grid;flex:0 0 auto;height:2.5rem;padding:0;place-items:center;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:2rem}.drag-handle svg{fill:currentColor;height:1.25rem;width:1rem}.drag-handle:active{background:#f0f4ff;color:var(--accent);cursor:grabbing}.drag-handle:disabled{cursor:not-allowed;opacity:.45}.sorting-list{-webkit-user-select:none;-moz-user-select:none;user-select:none}.check-control{flex:0 0 auto;margin:0;position:relative}.check-control input{height:1px;opacity:0;position:absolute;width:1px}.custom-check{background:#fff;border:2px solid #cfc9d8;border-radius:.5rem;color:transparent;cursor:pointer;display:grid;font-size:.82rem;font-weight:900;height:1.55rem;place-items:center;width:1.55rem}.check-control input:checked+.custom-check{background:var(--accent);border-color:var(--accent);color:#fff}.check-control input:focus-visible+.custom-check{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}.item-content{display:grid;flex:1;min-width:0;padding:.35rem;text-align:left}.item-thumbnail{background:#f1eff5;border:1px solid var(--border);border-radius:.7rem;cursor:zoom-in;flex:0 0 auto;height:3rem;overflow:hidden;padding:0;width:3rem}.item-thumbnail img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.item-title{font-weight:700;line-height:1.35;min-width:0;overflow-wrap:anywhere}.completed>.item-main-row .item-title{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1.5px}.item-description{color:var(--muted);font-size:.82rem;margin-top:.22rem;white-space:pre-wrap}.tag{color:#8c8695;font-size:.72rem;font-weight:650;margin-left:.35rem}.pending-dot{background:#e2a24a;border-radius:50%;flex:0 0 auto;height:.5rem;width:.5rem}.subitems{border-left:2px solid #eeeaf4;display:grid;gap:.15rem;margin:0 .8rem .25rem 3.5rem}.subitems .check-item{border-radius:.65rem}.subitems .item-main-row{min-height:2.9rem;padding-block:.2rem}.subitems .custom-check{border-radius:.4rem;height:1.3rem;width:1.3rem}.child-controls{padding:0 .7rem .65rem}.add-child-button{color:var(--muted);font-size:.78rem;font-weight:650;margin-left:3.2rem;padding:.3rem .5rem}.empty-state{color:var(--muted);display:grid;min-height:20rem;place-content:center;text-align:center}.empty-state h2{color:#3c3745;margin-bottom:.35rem}.empty-state p{margin-bottom:0}.empty-icon{background:#efedff;border-radius:50%;color:var(--accent);display:grid;font-weight:900;height:3rem;margin:0 auto 1rem;place-items:center;width:3rem}.app-footer{color:#98929f;display:flex;font-size:.72rem;justify-content:space-between;padding:1rem .5rem 0}.modal-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#1d17306b;display:grid;inset:0;padding:1rem;place-items:center;position:fixed;z-index:30}.editor-card{background:#fff;border-radius:1.5rem;box-shadow:0 24px 80px #19113242;max-height:calc(100dvh - 2rem);overflow-y:auto;padding:1.5rem;width:min(100%,34rem)}.editor-header{display:flex;gap:1rem;justify-content:space-between}.editor-header h2{margin-bottom:0}.editor-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.editor-photo-section{display:grid;gap:.75rem;margin-top:1.25rem}.editor-photo-heading{align-items:baseline;display:flex;font-size:.82rem;font-weight:750;gap:1rem;justify-content:space-between}.editor-photo-heading .muted{font-size:.72rem;font-weight:500;text-align:right}.editor-photo-preview{background:#f2f0f5;border:1px solid var(--border);border-radius:1rem;cursor:zoom-in;display:block;max-height:16rem;overflow:hidden;padding:0;width:100%}.editor-photo-preview img{display:block;max-height:16rem;-o-object-fit:contain;object-fit:contain;width:100%}.editor-photo-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.55rem}.lightbox-open{overflow:hidden}.photo-lightbox{color:#fff;display:grid;inset:0;padding:max(3.5rem,env(safe-area-inset-top)) 1rem max(3rem,env(safe-area-inset-bottom));place-items:center;position:fixed;touch-action:none;transition:background-color .2s ease;z-index:100}.photo-lightbox>img{border-radius:.8rem;box-shadow:0 20px 80px #00000061;display:block;max-height:calc(100dvh - 7rem);max-width:100%;-o-object-fit:contain;object-fit:contain;transition:transform .22s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.photo-lightbox.dragging>img{transition:none}.lightbox-close{background:#ffffff24;border:0;border-radius:50%;color:#fff;cursor:pointer;font-size:2rem;height:2.75rem;line-height:1;padding:0;position:absolute;right:.9rem;top:max(.75rem,env(safe-area-inset-top));width:2.75rem;z-index:1}.lightbox-swipe-hint{bottom:max(.8rem,env(safe-area-inset-bottom));color:#ffffffb8;font-size:.75rem;left:50%;position:absolute;transform:translate(-50%);white-space:nowrap}@media(max-width:640px){.app-shell{padding-bottom:0;width:100%}.app-header{margin-bottom:0;padding:max(.75rem,env(safe-area-inset-top)) 1rem .75rem}.app-header,.header-brand{align-items:flex-start}.app-logo{border-radius:.85rem;height:2.8rem;-o-object-fit:cover;object-fit:cover;-o-object-position:left;object-position:left;width:2.8rem}.app-header h1{font-size:1.75rem}.header-actions .status-badge{max-width:none;width:auto}.list-card{border-radius:1.4rem 1.4rem 0 0;min-height:calc(100dvh - 7rem)}.inline-form.add-form{align-items:stretch}.inline-form.add-form .primary-button{padding-inline:.9rem}.item-main-row{gap:.35rem;padding-inline:.35rem}.item-thumbnail{height:2.65rem;width:2.65rem}.drag-handle{width:1.8rem}.subitems{margin-left:2.5rem}.inline-form.compact{flex-wrap:wrap;padding-left:2.5rem}.add-child-button{margin-left:2rem}.app-footer{display:none}.editor-photo-heading{align-items:flex-start;flex-direction:column;gap:.2rem}.editor-photo-heading .muted{text-align:left}}@media(prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important}}
