:root{--bg: #F7F4EE;--sidebar-bg: #EFEBE2;--text: #1C1916;--text-muted: #A09890;--accent: #C15630;--accent-dim: rgba(193, 86, 48, .1);--border: #E3DDD4;--border-strong: #C6C0B6;--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "JetBrains Mono", "Courier New", monospace;--t: .14s ease}*,*:before,*:after{box-sizing:border-box}button,input,textarea{-webkit-tap-highlight-color:transparent;touch-action:manipulation}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}.app-root{display:flex;height:100dvh;height:-webkit-fill-available}.app-content{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.app-main{flex:1;padding:28px 40px;padding-bottom:max(28px,env(safe-area-inset-bottom,28px));overflow-y:auto;-webkit-overflow-scrolling:touch;max-width:680px;width:100%}.mobile-topbar{display:none}.sidebar{width:240px;flex-shrink:0;background:var(--sidebar-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100dvh}.sidebar-brand{padding:22px 20px 6px;font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.sidebar-section-label{padding:10px 20px 6px;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:4px}.sidebar-list{flex:1;overflow-y:auto}.sidebar-item{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:8px 20px;border:none;border-left:2px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;font-size:13px;font-family:var(--font-body);transition:color var(--t),background var(--t),border-color var(--t);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar-item:hover{color:var(--text);background:#00000008}.sidebar-item.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-dim);font-weight:500}.sidebar-shared-badge{font-size:9px;color:var(--text-muted);flex-shrink:0;margin-left:auto}.sidebar-new{padding:10px 20px;border-top:1px solid var(--border)}.sidebar-new-input{width:100%;padding:6px 0;background:transparent;border:none;border-bottom:1px solid var(--border-strong);outline:none;font-size:13px;font-family:var(--font-body);color:var(--text)}.sidebar-new-input::placeholder{color:var(--text-muted)}.sidebar-new-btn{width:100%;padding:6px 0;background:none;border:none;color:var(--text-muted);font-size:12px;font-family:var(--font-body);letter-spacing:.04em;cursor:pointer;text-align:left;transition:color var(--t)}.sidebar-new-btn:hover{color:var(--accent)}.sidebar-footer{padding:10px 20px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.sidebar-footer-btn{background:none;border:none;text-align:left;cursor:pointer;font-size:11px;font-family:var(--font-body);color:var(--text-muted);padding:3px 0;letter-spacing:.03em;transition:color var(--t)}.sidebar-footer-btn:hover{color:var(--text)}.list-header{display:flex;align-items:baseline;gap:12px;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--border)}.list-title{flex:1;margin:0;font-family:var(--font-display);font-size:30px;font-weight:600;line-height:1.15;letter-spacing:-.02em;cursor:text}.list-title-input{flex:1;font-family:var(--font-display);font-size:30px;font-weight:600;background:transparent;border:none;border-bottom:1.5px solid var(--accent);outline:none;color:var(--text);padding:0;letter-spacing:-.02em}.list-header-btn{background:none;border:1px solid var(--border);padding:3px 9px;cursor:pointer;font-size:11px;font-family:var(--font-body);color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;transition:color var(--t),border-color var(--t);flex-shrink:0}.list-header-btn:hover{color:var(--accent);border-color:var(--accent)}.list-header-delete{background:none;border:none;cursor:pointer;color:var(--border-strong);font-size:22px;line-height:1;padding:0 2px;transition:color var(--t);flex-shrink:0}.list-header-delete:hover{color:var(--accent)}.item-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:4px 0;transition:opacity var(--t);outline:none}.item-row.is-dragging{opacity:.4}.item-row.is-done{opacity:.38}.drag-handle{background:none;border:none;cursor:grab;color:var(--border-strong);font-size:11px;padding:0;flex-shrink:0;touch-action:none;line-height:1;opacity:0;transition:opacity var(--t)}.drag-handle:active{cursor:grabbing}.item-row:hover .drag-handle{opacity:1}.item-bullet{color:var(--accent);font-size:16px;flex-shrink:0;-webkit-user-select:none;user-select:none;line-height:1}.item-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:13px;height:13px;border:1.5px solid var(--border-strong);flex-shrink:0;cursor:pointer;transition:background var(--t),border-color var(--t);background:transparent;position:relative;margin:0}.item-checkbox:hover{border-color:var(--accent)}.item-checkbox:checked{background:var(--accent);border-color:var(--accent)}.item-checkbox:checked:after{content:"";position:absolute;left:3px;top:0;width:4px;height:8px;border:1.5px solid white;border-top:none;border-left:none;transform:rotate(45deg)}.item-text{flex:1;font-size:14px;font-family:var(--font-body);letter-spacing:.01em;line-height:1.55;word-break:break-word;cursor:text}.item-text.done{text-decoration:line-through;text-decoration-color:var(--text-muted);cursor:default}.item-edit-input{flex:1;background:transparent;border:none;border-bottom:1px solid var(--border-strong);outline:none;font-size:14px;font-family:var(--font-body);color:var(--text);padding:0}.item-delete-btn{background:none;border:none;cursor:pointer;color:var(--border-strong);font-size:16px;line-height:1;padding:0 2px;flex-shrink:0;visibility:hidden;transition:color var(--t)}.item-delete-btn:hover{color:var(--accent)}.item-row:hover .item-delete-btn{visibility:visible}.item-row.is-selected{background:var(--accent-dim)}.item-action-bar{display:flex;gap:6px;padding:5px 0 3px 26px;flex-basis:100%;flex-wrap:wrap}.item-action-btn{background:none;border:1px solid var(--border-strong);padding:5px 14px;font-size:12px;font-family:var(--font-body);color:var(--text-muted);cursor:pointer;letter-spacing:.03em;transition:color var(--t),border-color var(--t)}.item-action-btn:active{opacity:.7}.item-action-btn--add{color:var(--accent);border-color:var(--accent)}.add-gap{position:relative;height:10px;display:flex;align-items:center}.add-gap:after{content:"";position:absolute;left:20px;right:0;top:50%;height:1px;background:var(--accent);opacity:0;transition:opacity var(--t)}.add-gap:hover:after{opacity:.35}.add-gap-btn{position:absolute;left:0;width:18px;height:18px;background:var(--accent);color:#fff;border:none;cursor:pointer;font-size:14px;line-height:18px;text-align:center;padding:0;opacity:0;transition:opacity var(--t);flex-shrink:0;z-index:1}.add-gap:hover .add-gap-btn{opacity:1}.add-input-row{display:flex;align-items:center;gap:8px;padding:4px 0}.add-input-bullet{color:var(--accent);font-size:16px;flex-shrink:0}.add-input-field{flex:1;background:transparent;border:none;border-bottom:1px solid var(--border-strong);outline:none;font-size:14px;font-family:var(--font-body);color:var(--text);padding:0;letter-spacing:.01em}.add-input-field::placeholder{color:var(--text-muted)}.login-page{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg)}.login-card{width:340px;padding:44px 40px 40px;border:1px solid var(--border);background:var(--sidebar-bg)}.login-title{font-family:var(--font-display);font-size:34px;font-weight:700;letter-spacing:-.02em;margin:0 0 4px;color:var(--text)}.login-subtitle{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 32px}.login-label{display:block;margin-bottom:20px}.login-label-text{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.login-input{display:block;width:100%;background:transparent;border:none;border-bottom:1px solid var(--border-strong);outline:none;font-size:14px;font-family:var(--font-body);color:var(--text);padding:4px 0;transition:border-color var(--t)}.login-input:focus{border-bottom-color:var(--accent)}.login-error{font-size:12px;color:var(--accent);margin:0 0 14px;letter-spacing:.02em}.login-btn{width:100%;padding:11px 0;background:var(--accent);color:#fff;border:none;font-size:12px;font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:opacity var(--t);margin-top:8px}.login-btn:disabled{opacity:.6;cursor:default}.login-btn:not(:disabled):hover{opacity:.88}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c191680;display:flex;align-items:center;justify-content:center;z-index:100}.modal-panel{background:var(--bg);border:1px solid var(--border);padding:28px 32px;width:420px;max-width:90vw;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-title{margin:0;font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--text)}.modal-title em{font-style:italic;color:var(--accent)}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-muted);line-height:1;padding:0}.modal-close:hover{color:var(--text)}.modal-empty{font-size:13px;color:var(--text-muted);margin:0 0 16px;font-style:italic}.share-list{margin:0 0 16px;padding:0;list-style:none}.share-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.share-username{font-size:13px;font-family:var(--font-body);color:var(--text)}.share-remove-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;font-family:var(--font-body);letter-spacing:.05em;padding:2px 0}.share-remove-btn:hover{text-decoration:underline}.modal-input-row{display:flex;gap:8px}.modal-input{flex:1;padding:7px 10px;border:1px solid var(--border-strong);background:var(--bg);font-family:var(--font-body);font-size:13px;color:var(--text);outline:none}.modal-input:focus{border-color:var(--accent)}.modal-submit-btn{padding:7px 16px;background:var(--accent);color:#fff;border:none;font-family:var(--font-body);font-size:12px;letter-spacing:.08em;cursor:pointer;text-transform:uppercase}.modal-submit-btn:hover{opacity:.88}.modal-error{color:var(--accent);font-size:12px;margin:6px 0 0;font-family:var(--font-body)}.admin-panel{width:560px}.admin-table{width:100%;border-collapse:collapse;font-size:13px;font-family:var(--font-body);margin-bottom:24px}.admin-table thead tr{border-bottom:2px solid var(--border-strong)}.admin-table th{text-align:left;padding:6px 8px;font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.admin-table td{padding:7px 8px;border-bottom:1px solid var(--border);color:var(--text)}.admin-table-actions{text-align:right}.admin-inline-group{display:inline-flex;gap:4px;align-items:center}.admin-inline-input{padding:3px 7px;font-size:12px;font-family:var(--font-body);border:1px solid var(--border-strong);background:var(--bg);color:var(--text);outline:none}.admin-inline-input:focus{border-color:var(--accent)}.admin-btn{padding:3px 10px;font-size:11px;font-family:var(--font-body);letter-spacing:.05em;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);cursor:pointer}.admin-btn:hover{border-color:var(--accent);color:var(--accent)}.admin-btn--cancel{color:var(--text-muted)}.admin-btn--danger{color:var(--accent);border-color:var(--border)}.admin-btn--danger:hover{background:var(--accent-dim)}.admin-section-title{font-family:var(--font-display);font-size:14px;font-weight:600;margin:0 0 10px;color:var(--text)}.admin-create-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.admin-create-row .modal-input{flex:1;min-width:120px}.admin-checkbox-label{font-size:13px;font-family:var(--font-body);display:flex;align-items:center;gap:5px;color:var(--text);white-space:nowrap}.empty-state{padding:48px 0;text-align:center;color:var(--text-muted);font-size:13px;letter-spacing:.02em}.import-toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);font-family:var(--font-body);font-size:12px;letter-spacing:.08em;padding:8px 20px;pointer-events:none;animation:toast-in .15s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (hover: none){.item-delete-btn{visibility:visible;opacity:.45}.drag-handle{opacity:.5;font-size:16px;padding:4px 6px;touch-action:none}.add-gap{height:28px}.add-gap:after{opacity:.12}.add-gap-btn{display:none}}@media (max-width: 900px){.sidebar{width:210px}.app-main{padding:22px 24px}.list-title{font-size:26px}}@media (max-width: 640px){.sidebar{position:fixed;left:0;top:0;bottom:0;width:80vw;max-width:300px;height:100dvh;height:-webkit-fill-available;z-index:200;transform:translate(-100%);transition:transform .22s ease;box-shadow:none;padding-top:env(safe-area-inset-top,0px)}.sidebar.is-open{transform:translate(0);box-shadow:4px 0 24px #1c19162e}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:199;background:#1c191666}.sidebar-item{padding:11px 20px;font-size:14px}.sidebar-new-btn{font-size:14px;padding:10px 0}.sidebar-footer-btn{font-size:13px;padding:6px 0}.mobile-topbar{display:flex;align-items:center;gap:12px;padding:0 16px;padding-top:env(safe-area-inset-top,0px);height:calc(50px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--border);background:var(--sidebar-bg);flex-shrink:0}.mobile-menu-btn{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text);padding:4px;line-height:1;flex-shrink:0}.mobile-topbar-title{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-main{padding:16px;padding-bottom:max(80px,calc(20px + env(safe-area-inset-bottom,0px)));max-width:100%}.list-title,.list-title-input{font-size:22px}.list-header{margin-bottom:16px;padding-bottom:12px;gap:8px}.list-header-btn{padding:4px 8px;font-size:10px}.item-row{padding:6px 0;gap:10px}.item-checkbox{width:18px;height:18px}.item-checkbox:checked:after{left:4px;top:1px;width:6px;height:10px}.item-text{font-size:15px}.item-delete-btn{visibility:visible;font-size:20px;padding:0 4px;opacity:.4}.add-gap{height:28px}.add-gap-btn{display:none}.add-input-field{font-size:15px;padding:4px 0}.modal-panel{width:100%;max-width:100%;max-height:90dvh;padding:20px 18px;margin:auto 0 0;border-bottom:none}.modal-overlay{align-items:flex-end}.admin-panel{width:100%}.login-card{width:100%;max-width:360px;padding:36px 24px}}
