:root{--bg: #111;--surface: #1c1c1e;--surface-2: #2c2c2e;--text: #f2f2f7;--text-dim: #8e8e93;--accent: #0a84ff;--danger: #ff453a;--border: #2c2c2e;--nav-height: 60px;--badge-yulka: #ffb6c1;--badge-seryozhka: #add8e6;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;overscroll-behavior-y:none}body{background:var(--bg);color:var(--text);font:16px/1.4 -apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer;padding:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;color:inherit;font:inherit}input{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;color:var(--text);width:100%}input:focus{outline:2px solid var(--accent);outline-offset:-1px}.app{display:flex;flex-direction:column;height:100dvh;padding-top:env(safe-area-inset-top);box-sizing:border-box}.tab-content{flex:1;overflow-y:auto}.bottom-nav{display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{height:var(--nav-height);color:var(--text-dim);font-size:14px;font-weight:500;transition:color .12s}.bottom-nav button.active{color:var(--text)}.list{list-style:none;margin:0;padding:8px 12px 16px}.list-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border-radius:12px;margin-bottom:8px;user-select:none;-webkit-user-select:none;touch-action:none}.list-row.dragging{opacity:.6;box-shadow:0 8px 24px #0006}.list-row .checkbox{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:2px solid var(--text-dim);display:grid;place-items:center;transition:background .12s,border-color .12s}.list-row .checkbox:active{background:var(--accent);border-color:var(--accent)}.list-row .text{flex:1;word-break:break-word}.assignee-badge{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;color:#1c1c1e}.assignee-badge[data-assignee=yulka]{background:var(--badge-yulka)}.assignee-badge[data-assignee=seryozhka]{background:var(--badge-seryozhka)}.list-empty{padding:48px 16px;text-align:center;color:var(--text-dim)}.add-bar{display:flex;gap:8px;padding:12px 12px calc(12px + env(safe-area-inset-bottom)) 12px;background:var(--bg);border-top:1px solid var(--border);position:sticky;bottom:0}.add-bar form{display:flex;gap:8px;width:100%}.add-bar input{flex:1}.add-bar button{flex-shrink:0;width:48px;height:48px;border-radius:12px;background:var(--accent);color:#fff;font-size:20px;font-weight:500;display:grid;place-items:center}.add-bar button:disabled{background:var(--surface-2);color:var(--text-dim)}.login{display:grid;place-items:center;height:100dvh;padding:24px}.login form{width:100%;max-width:320px;display:flex;flex-direction:column;gap:12px}.login h1{margin:0 0 8px;font-size:20px;text-align:center}.login button[type=submit]{height:48px;border-radius:12px;background:var(--accent);color:#fff;font-weight:600}.login .error{color:var(--danger);font-size:14px;text-align:center;min-height:1.4em}.list-tab{display:flex;flex-direction:column;height:100%}.list-tab .list-scroll{flex:1;overflow-y:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:16px;background:#00000073;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.modal-box{width:90vw;max-width:480px;background:var(--surface);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:16px}.modal-title{margin:0;font-size:20px;font-weight:600;word-break:break-word}.modal-radios{display:flex;flex-direction:column;gap:4px}.modal-radio{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface-2);border-radius:10px;cursor:pointer}.modal-radio input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.modal-radio .dot{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:2px solid var(--text-dim);display:grid;place-items:center;transition:border-color .12s}.modal-radio.selected .dot{border-color:var(--accent)}.modal-radio.selected .dot:after{content:"";width:12px;height:12px;border-radius:50%;background:var(--accent)}.modal-radio[data-assignee=yulka] .dot{border-color:var(--badge-yulka)}.modal-radio[data-assignee=yulka].selected .dot:after{background:var(--badge-yulka)}.modal-radio[data-assignee=seryozhka] .dot{border-color:var(--badge-seryozhka)}.modal-radio[data-assignee=seryozhka].selected .dot:after{background:var(--badge-seryozhka)}.modal-save{height:48px;border-radius:12px;background:var(--accent);color:#fff;font-weight:600;font-size:16px}.expense-tab{display:flex;flex-direction:column;height:100%;padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.expense-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:8px;min-height:0}.expense-column{display:flex;flex-direction:column;background:var(--surface);border-radius:12px;padding:8px;min-height:0}.expense-column-header{margin:0 0 6px;text-align:center;font-size:14px;font-weight:600;letter-spacing:.02em;padding:4px 0;border-radius:8px;color:#1c1c1e}.expense-column[data-payer=seryozhka] .expense-column-header{background:var(--badge-seryozhka)}.expense-column[data-payer=yulka] .expense-column-header{background:var(--badge-yulka)}.expense-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.expense-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--surface-2);border-radius:10px;user-select:none;-webkit-user-select:none}.expense-row .checkbox{width:24px;height:24px;border-radius:50%;border:2px solid var(--text-dim);flex-shrink:0;margin-top:2px}.expense-row .text{display:flex;flex-direction:column;gap:2px;min-width:0}.expense-row .amount{font-variant-numeric:tabular-nums;font-size:16px}.expense-row .description{font-size:14px;color:var(--text-dim);word-break:break-word}.settlement{text-align:center;font-size:20px;font-weight:500;padding:12px 0 4px;font-variant-numeric:tabular-nums}.fab-add{position:fixed;right:16px;bottom:calc(var(--nav-height) + 16px + env(safe-area-inset-bottom));height:44px;padding:0 18px;border-radius:22px;background:var(--accent);color:#fff;font-weight:600;font-size:16px;box-shadow:0 6px 14px #0006;z-index:50}.modal-field{display:flex;flex-direction:column;gap:8px}.modal-field-label{font-size:14px;color:var(--text-dim)}.modal-radios-row{flex-direction:row}.modal-radios-row .modal-radio{flex:1;justify-content:center}.modal-save:disabled{background:var(--surface-2);color:var(--text-dim);cursor:not-allowed}.notif-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--border);font-size:14px}.notif-banner-text{flex:1;color:var(--text)}.notif-banner-actions{display:flex;gap:8px;flex-shrink:0}.notif-banner-yes,.notif-banner-later{height:32px;padding:0 14px;border-radius:8px;font-weight:500;font-size:14px}.notif-banner-yes{background:var(--accent);color:#fff}.notif-banner-later{background:var(--surface-2);color:var(--text-dim)}
