*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0a;--bg-elevated: #141414;--bg-card: #161616;--text: #f0ece6;--text-secondary: #9a958e;--text-dim: #5e5a54;--accent: #e8363d;--accent-glow: rgba(232,54,61,.15);--border: rgba(255,255,255,.06);--border-light: rgba(255,255,255,.12);--radius-sm: 10px;--radius-md: 16px;--safe-bottom: env(safe-area-inset-bottom, 0px)}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:Manrope,-apple-system,sans-serif;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;min-height:100dvh}.app{max-width:600px;margin:0 auto}.page{min-height:100dvh;display:flex;flex-direction:column}.page-header{padding:1.5rem 1.25rem 1.25rem;padding-top:max(1.5rem,env(safe-area-inset-top,1.5rem));border-bottom:1px solid var(--border)}.home-header{padding:2.5rem 1.25rem 1.5rem;padding-top:max(2.5rem,env(safe-area-inset-top,2.5rem));border-bottom:1px solid var(--border)}.home-title{font-family:Unbounded,sans-serif;font-weight:900;font-size:2.2rem;letter-spacing:-.04em;text-transform:uppercase;line-height:1;color:var(--text)}.header-brand{font-family:Unbounded,sans-serif;font-weight:900;font-size:1.1rem;letter-spacing:-.03em;text-transform:uppercase;line-height:1}.header-sub{margin-top:.3rem;font-size:.8rem;color:var(--text-secondary)}.back-btn{background:none;border:none;color:var(--text-secondary);font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;padding:0;margin-bottom:.75rem;display:block}.back-btn:hover{color:var(--text)}.list-grid{flex:1;padding:1rem;display:flex;flex-direction:column;gap:.4rem}.group-section{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.4rem}.group-title{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);padding:.5rem .25rem .15rem}.group-title-none{color:var(--text-dim);opacity:.6}.checklist-card{display:block;width:100%;background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--cc, var(--accent));border-radius:var(--radius-md);padding:1.1rem 1.25rem;cursor:pointer;text-align:left;transition:border-color .15s,transform .1s}.checklist-card:active{transform:scale(.99)}.checklist-card-title{font-family:Unbounded,sans-serif;font-weight:700;font-size:1rem;letter-spacing:-.01em;color:var(--text)}.checklist-card-desc{margin-top:.3rem;font-size:.8rem;color:var(--text-secondary)}.checklist-card-meta{margin-top:.6rem;display:flex;gap:.75rem;font-size:.72rem;color:var(--text-dim)}.cc-done{color:var(--cc, var(--accent));font-weight:600}.checklist-card-track{margin-top:.5rem;height:3px;background:var(--border);border-radius:2px;overflow:hidden}.checklist-card-fill{height:100%;background:var(--cc, var(--accent));border-radius:2px;transition:width .3s ease;opacity:.7}.page-footer{padding:1.25rem;padding-bottom:calc(1.25rem + var(--safe-bottom));border-top:1px solid var(--border);display:flex;justify-content:center}.cl-header{padding:1.5rem 1.25rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-elevated)}.cl-header-title{font-family:Unbounded,sans-serif;font-weight:700;font-size:1.25rem;letter-spacing:-.02em;color:var(--text)}.cl-header-desc{margin-top:.3rem;font-size:.82rem;color:var(--text-secondary)}.cl-progress{margin-top:.85rem}.cl-progress-info{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:600;color:var(--text-secondary);margin-bottom:.4rem}.cl-all-done{color:var(--cc, var(--accent));font-weight:700}.cl-progress-track{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.cl-progress-fill{height:100%;background:var(--cc, var(--accent));border-radius:2px;transition:width .25s ease}.cl-body{flex:1;padding:.75rem 0;overflow-y:auto}.cl-section{padding:.25rem 0}.cl-section-title{padding:.5rem 1.25rem .3rem;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim)}.cl-item{display:flex;align-items:center;gap:.85rem;width:100%;padding:.8rem 1.25rem;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .1s;border-bottom:1px solid var(--border)}.cl-item:last-child{border-bottom:none}.cl-item:active{background:#ffffff08}.cl-checkbox{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--border-light);background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}.cl-item.checked .cl-checkbox{background:var(--cc, var(--accent));border-color:var(--cc, var(--accent));color:#fff}.cl-item-text{font-size:.9rem;color:var(--text);line-height:1.4;transition:color .15s,opacity .15s}.cl-item.checked .cl-item-text{color:var(--text-dim);text-decoration:line-through;opacity:.6}.cl-item-qty{margin-left:auto;flex-shrink:0;font-size:.75rem;font-weight:600;color:var(--text-dim);background:#ffffff0d;padding:.15rem .5rem;border-radius:4px;white-space:nowrap}.cl-item.checked .cl-item-qty{opacity:.35}.cl-footer{padding:1rem 1.25rem;padding-bottom:calc(1rem + var(--safe-bottom));border-top:1px solid var(--border);display:flex;justify-content:center}.admin-groups-section{padding:.85rem 1rem;border-bottom:1px solid var(--border)}.admin-section-title{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:.6rem}.admin-groups-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.6rem}.admin-group-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px}.admin-group-name{flex:1;font-size:.85rem;font-weight:600;color:var(--text)}.admin-group-actions{display:flex;gap:.3rem}.admin-group-rename-form{display:flex;gap:.4rem;align-items:center;width:100%}.admin-group-input{padding:.35rem .6rem;font-size:.82rem}.admin-add-group-form{display:flex;gap:.5rem}.admin-add-group-form .editor-input{flex:1;padding:.55rem .75rem;font-size:.82rem}.admin-group-block{margin-bottom:.75rem}.admin-group-block-title{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);padding:.35rem .25rem .3rem}.admin-row-order{display:flex;flex-direction:column;gap:2px;flex-shrink:0}.order-btn{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-size:.65rem;width:22px;height:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .1s,border-color .1s}.order-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-light)}.order-btn:disabled{opacity:.25;cursor:default}.admin-row-meta-wrap{display:flex;align-items:center;gap:.6rem;margin-top:.2rem}.admin-group-select{background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--text-dim);font-family:inherit;font-size:.68rem;padding:.2rem .4rem;cursor:pointer;outline:none}.admin-toolbar{padding:1rem 1.25rem;display:flex;gap:.6rem;align-items:center;border-bottom:1px solid var(--border)}.admin-list{flex:1;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem}.admin-row{display:flex;align-items:center;gap:1rem;padding:.85rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm)}.admin-row-info{flex:1;min-width:0}.admin-row-title{font-weight:700;font-size:.9rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-row-meta{font-size:.72rem;color:var(--text-dim);margin-top:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-row-actions{display:flex;gap:.4rem;flex-shrink:0}.editor-body{flex:1;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1.25rem;padding-bottom:calc(2rem + var(--safe-bottom));overflow-y:auto}.editor-section{display:flex;flex-direction:column;gap:.4rem}.editor-row{display:flex;gap:1rem;flex-wrap:wrap}.editor-section-grow{flex:1;min-width:140px}.editor-label{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.editor-input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.7rem .9rem;color:var(--text);font-family:inherit;font-size:.88rem;outline:none;transition:border-color .2s;width:100%}.editor-input:focus{border-color:var(--accent)}.editor-input::placeholder{color:var(--text-dim)}.color-picker{display:flex;gap:.5rem;flex-wrap:wrap}.color-dot{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .1s}.color-dot.selected{border-color:var(--text);transform:scale(1.15)}.items-list{display:flex;flex-direction:column;gap:.5rem}.item-row{display:flex;align-items:center;gap:.4rem}.item-num{font-size:.7rem;color:var(--text-dim);min-width:16px;text-align:right;flex-shrink:0}.editor-items-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.items-header-row{display:flex;gap:.4rem;padding:0 0 .2rem}.items-col-label{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.items-col-num{min-width:16px}.items-col-section{flex:0 0 90px}.items-col-text{flex:1}.items-col-qty{flex:0 0 70px}.items-col-del{width:24px}.item-section-input{flex:0 0 90px;font-size:.8rem}.item-text-input{flex:1}.item-qty-input{flex:0 0 70px;font-size:.8rem}.item-delete-btn{background:none;border:none;color:var(--text-dim);font-size:.8rem;cursor:pointer;padding:.3rem;border-radius:4px;flex-shrink:0;transition:color .1s}.item-delete-btn:hover{color:var(--accent)}.editor-error{color:var(--accent);font-size:.8rem;font-weight:600}.editor-actions{display:flex;gap:.6rem;justify-content:flex-end}.btn-primary{background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;font-family:inherit;font-size:.82rem;font-weight:700;padding:.65rem 1.25rem;cursor:pointer;transition:opacity .15s}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.4;cursor:default}.btn-secondary{background:transparent;border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:inherit;font-size:.82rem;font-weight:600;padding:.65rem 1.25rem;cursor:pointer;transition:border-color .15s}.btn-secondary:hover{border-color:var(--text-dim)}.btn-danger{background:#e8363d26;border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent);font-family:inherit;font-size:.82rem;font-weight:700;padding:.65rem 1.25rem;cursor:pointer;transition:background .15s}.btn-danger:hover{background:#e8363d40}.btn-sm{font-size:.75rem;padding:.5rem .85rem}.btn-icon{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-family:inherit;font-size:.72rem;font-weight:600;padding:.35rem .65rem;cursor:pointer;white-space:nowrap;transition:border-color .15s}.btn-icon:hover{border-color:var(--border-light);color:var(--text)}.btn-icon-danger:hover{border-color:var(--accent);color:var(--accent)}.btn-reset{background:transparent;border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:inherit;font-size:.82rem;font-weight:600;padding:.7rem 1.5rem;cursor:pointer;transition:border-color .15s,color .15s}.btn-reset:hover{border-color:var(--accent);color:var(--accent)}.editor-items-header-actions{display:flex;align-items:center;gap:.85rem}.qty-toggle{display:flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.qty-toggle input{accent-color:var(--accent);cursor:pointer}.btn-import-trigger{background:none;border:none;color:var(--accent);font-family:inherit;font-size:.72rem;font-weight:700;cursor:pointer;padding:0}.import-modal{max-width:520px;width:100%}.import-hint{font-size:.78rem;color:var(--text-dim);margin-bottom:.75rem;line-height:1.5}.import-code{display:block;margin-top:.4rem;padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-family:monospace;font-size:.72rem;color:var(--text-secondary);white-space:pre}.import-textarea{width:100%;min-height:180px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;color:var(--text);font-family:monospace;font-size:.8rem;line-height:1.5;outline:none;resize:vertical;transition:border-color .2s}.import-textarea:focus{border-color:var(--accent)}.import-preview{margin-top:.5rem;font-size:.75rem;font-weight:600;color:var(--accent)}.import-mode{display:flex;gap:1.25rem;margin-top:.75rem}.import-mode-label{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-secondary);cursor:pointer}.btn-add-item{margin-top:.4rem;background:transparent;border:1px dashed var(--border-light);border-radius:var(--radius-sm);color:var(--text-dim);font-family:inherit;font-size:.82rem;font-weight:600;padding:.6rem 1rem;cursor:pointer;width:100%;transition:border-color .15s,color .15s}.btn-add-item:hover{border-color:var(--accent);color:var(--accent)}.admin-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);font-family:inherit;font-size:.75rem;font-weight:600;padding:.55rem 1rem;cursor:pointer;transition:border-color .15s,color .15s}.admin-btn:hover{border-color:var(--border-light);color:var(--text-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1.25rem}.modal{background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:1.75rem;width:100%;max-width:360px}.modal-title{font-family:Unbounded,sans-serif;font-weight:700;font-size:1rem;letter-spacing:-.01em;margin-bottom:1rem}.modal-text{font-size:.85rem;color:var(--text-secondary);line-height:1.55;margin-bottom:1.25rem}.modal-actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1rem}.pin-input{width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;color:var(--text);font-family:inherit;font-size:1.5rem;letter-spacing:.3em;text-align:center;outline:none;transition:border-color .2s}.pin-input:focus{border-color:var(--accent)}.pin-input.error{border-color:var(--accent)}.pin-error{color:var(--accent);font-size:.78rem;font-weight:600;text-align:center;margin-top:.4rem}.empty-state{text-align:center;padding:3rem 1.5rem}.empty-icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.4}.empty-text{color:var(--text-dim);font-size:.88rem;line-height:1.5}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#333;border-radius:2px}
