.ReactCrop{position:relative;display:inline-block;cursor:crosshair;overflow:hidden;max-width:100%}.ReactCrop:focus{outline:none}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__image{display:block;max-width:100%;-ms-touch-action:none;touch-action:none}.ReactCrop__crop-selection{position:absolute;top:0;left:0;-webkit-transform:translate3d(0,0,0);transform:translateZ(0);-webkit-box-sizing:border-box;box-sizing:border-box;cursor:move;-webkit-box-shadow:0 0 0 9999em rgba(0,0,0,.5);box-shadow:0 0 0 9999em #00000080;-ms-touch-action:none;touch-action:none;border:1px solid;border-image-source:url(data:image/gif;base64,R0lGODlhCgAKAJECAAAAAP///////wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEI5RDc5MTFDNkE2MTFFM0JCMDZEODI2QTI4MzJBOTIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEI5RDc5MTBDNkE2MTFFM0JCMDZEODI2QTI4MzJBOTIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4MDgzQzNDMjA5MzREQ0ZDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAyODAxMTc0MDcyMDY4MTE4MDgzQzNDMjA5MzREQ0ZDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQoAAgAsAAAAAAoACgAAAhWEERkn7W3ei7KlagMWF/dKgYeyGAUAIfkEBQoAAgAsAAAAAAoACgAAAg+UYwLJ7RnQm7QmsCyVKhUAIfkEBQoAAgAsAAAAAAoACgAAAhCUYgLJHdiinNSAVfOEKoUCACH5BAUKAAIALAAAAAAKAAoAAAIRVISAdusPo3RAzYtjaMIaUQAAIfkEBQoAAgAsAAAAAAoACgAAAg+MDiem7Q8bSLFaG5il6xQAIfkEBQoAAgAsAAAAAAoACgAAAg+UYRLJ7QnQm7SmsCyVKhUAIfkEBQoAAgAsAAAAAAoACgAAAhCUYBLJDdiinNSEVfOEKoECACH5BAUKAAIALAAAAAAKAAoAAAIRFISBdusPo3RBzYsjaMIaUQAAOw==);border-image-slice:1;border-image-repeat:repeat}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%;-webkit-box-shadow:0px 0px 1px 1px white,0 0 0 9999em rgba(0,0,0,.5);box-shadow:0 0 1px 1px #fff,0 0 0 9999em #00000080}.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333%;left:calc(100% / 3)}.ReactCrop__rule-of-thirds-vt:after{left:66.6666%;left:calc(100% / 3 * 2)}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333%;top:calc(100% / 3)}.ReactCrop__rule-of-thirds-hz:after{top:66.6666%;top:calc(100% / 3 * 2)}.ReactCrop__drag-handle{position:absolute}.ReactCrop__drag-handle:after{position:absolute;content:"";display:block;width:10px;height:10px;background-color:#0003;border:1px solid rgba(255,255,255,.7);-webkit-box-sizing:border-box;box-sizing:border-box;outline:1px solid transparent}.ReactCrop .ord-nw{top:0;left:0;margin-top:-5px;margin-left:-5px;cursor:nw-resize}.ReactCrop .ord-nw:after{top:0;left:0}.ReactCrop .ord-n{top:0;left:50%;margin-top:-5px;margin-left:-5px;cursor:n-resize}.ReactCrop .ord-n:after{top:0}.ReactCrop .ord-ne{top:0;right:0;margin-top:-5px;margin-right:-5px;cursor:ne-resize}.ReactCrop .ord-ne:after{top:0;right:0}.ReactCrop .ord-e{top:50%;right:0;margin-top:-5px;margin-right:-5px;cursor:e-resize}.ReactCrop .ord-e:after{right:0}.ReactCrop .ord-se{bottom:0;right:0;margin-bottom:-5px;margin-right:-5px;cursor:se-resize}.ReactCrop .ord-se:after{bottom:0;right:0}.ReactCrop .ord-s{bottom:0;left:50%;margin-bottom:-5px;margin-left:-5px;cursor:s-resize}.ReactCrop .ord-s:after{bottom:0}.ReactCrop .ord-sw{bottom:0;left:0;margin-bottom:-5px;margin-left:-5px;cursor:sw-resize}.ReactCrop .ord-sw:after{bottom:0;left:0}.ReactCrop .ord-w{top:50%;left:0;margin-top:-5px;margin-left:-5px;cursor:w-resize}.ReactCrop .ord-w:after{left:0}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:6px;margin-top:-3px}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:6px;height:100%;margin-right:-3px}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:6px;margin-bottom:-3px}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:6px;height:100%;margin-left:-3px}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:24px;height:24px}}:root{--color-primary: #599DC2;--color-primary-fg: #ffffff;--color-secondary: #2f3447;--color-secondary-fg: #ffffff;--color-logo-bg: #ffffff;--color-bg: #f4f5f7;--color-surface: #ffffff;--color-border: #e5e7eb;--color-text: #111827;--color-text-muted: #6b7280;--color-text-faint: #9ca3af;--color-danger: #dc2626;--color-success: #16a34a;--color-warning: #d97706;--ui-radius: 14px;--sidebar-w: 248px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#d8dade;color:var(--color-text);-webkit-font-smoothing:antialiased}.app{display:flex;min-height:calc(100vh - 41px);max-width:1440px;margin:0 auto;background:var(--color-bg);box-shadow:0 0 0 1px #0000000a}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:sticky;top:41px;height:calc(100vh - 41px)}.sidebar-logo{margin:16px;height:150px;border-radius:var(--ui-radius);background:var(--color-logo-bg);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.sidebar-logo:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--color-primary)}.sidebar-logo .logo-img{max-width:80%;max-height:60%;width:auto;height:auto;object-fit:contain}.nav{flex:1;padding:6px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-section{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-faint);padding:14px 10px 6px}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;color:var(--color-text-muted);font-size:13.5px;font-weight:600;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:inherit;position:relative;text-decoration:none}.nav-item svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;flex-shrink:0}.nav-item:hover{background:var(--color-bg);color:var(--color-text)}.nav-item.active{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.nav-item.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;background:var(--color-primary);border-radius:0 3px 3px 0}.nav-badge{margin-left:auto;background:var(--color-primary);color:var(--color-primary-fg);font-size:10px;font-weight:800;padding:1px 7px;border-radius:100px}.sidebar-footer{border-top:1px solid var(--color-border);padding:12px;display:flex;flex-direction:column;gap:8px}.user-chip{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:9px}.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--color-secondary);color:var(--color-secondary-fg);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}.user-meta{min-width:0}.user-name{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:10.5px;color:var(--color-text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.logout-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.logout-btn:hover{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 35%,var(--color-border))}.profile-btn{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;text-align:left;text-decoration:none}.profile-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.profile-btn:hover{color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));background:var(--color-bg)}.content{flex:1;min-width:0;display:flex;flex-direction:column}.pagehead{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:41px;z-index:5}.pagehead h1{margin:0;font-size:21px;font-weight:800;letter-spacing:-.5px}.pagehead .sub{font-size:12.5px;color:var(--color-text-muted);margin-top:2px}.pagehead-actions{display:flex;align-items:center;gap:10px}.screen-body{padding:24px 28px 40px}.screen[hidden]{display:none}.btn{display:inline-flex;align-items:center;gap:7px;border-radius:10px;padding:9px 15px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;border:1px solid transparent;letter-spacing:-.2px}.btn:disabled{opacity:.55;cursor:default}.btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.1}.btn-primary{background:var(--color-primary);color:var(--color-primary-fg);box-shadow:0 1px 3px color-mix(in srgb,var(--color-primary) 30%,transparent)}.btn-primary:hover:not(:disabled){filter:brightness(.94)}.btn-ghost{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-ghost:hover:not(:disabled){background:var(--color-bg)}.btn-danger{background:var(--color-danger);color:#fff;box-shadow:none}.btn-danger:hover:not(:disabled){filter:brightness(.94)}.btn-danger-ghost{background:var(--color-surface);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 30%,var(--color-border))}.btn-danger-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--color-danger) 8%,var(--color-surface))}.btn-sm{padding:6px 11px;font-size:12px;border-radius:8px}.btn-block{width:100%;justify-content:center}.stat-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--color-text-faint);margin:6px 0 12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:26px}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--ui-radius);padding:16px 17px;display:flex;flex-direction:column;gap:10px}.stat-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.stat-icon svg{width:19px;height:19px;stroke:var(--color-primary);fill:none;stroke-width:1.9}.stat-value{font-size:28px;font-weight:800;letter-spacing:-.6px;line-height:1}.stat-label{font-size:12.5px;color:var(--color-text-muted);font-weight:500}.account-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px}@media (max-width: 900px){.account-grid{grid-template-columns:1fr}}.account-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--ui-radius);padding:18px 20px;position:relative;overflow:hidden}.account-card.standing-ok{border-left:4px solid var(--color-success)}.account-card.standing-warn{border-left:4px solid var(--color-warning)}.account-card.standing-overdue{border-left:4px solid var(--color-danger)}.account-card .card-title{font-size:13px;font-weight:700;color:var(--color-text-muted);margin-bottom:14px}.pay-row{display:flex;gap:36px}.pay-item .pay-label{font-size:11.5px;color:var(--color-text-faint);font-weight:600;margin-bottom:4px;display:flex;align-items:center;gap:6px}.pay-item .pay-label svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}.pay-item .pay-value{font-size:18px;font-weight:700;letter-spacing:-.3px}.badge-status{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 10px;border-radius:100px}.badge-status.ok{background:color-mix(in srgb,var(--color-success) 14%,transparent);color:var(--color-success)}.badge-status.warn{background:color-mix(in srgb,var(--color-warning) 16%,transparent);color:var(--color-warning)}.balance-value{font-size:20px;font-weight:800;letter-spacing:-.4px}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.search{flex:1;min-width:220px;max-width:360px;position:relative}.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:var(--color-text-faint);fill:none;stroke-width:2}.search input{width:100%;padding:9px 12px 9px 36px;border-radius:10px;border:1px solid var(--color-border);font:inherit;font-size:13px;background:var(--color-surface)}.search input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.toolbar-spacer{flex:1}.toggle-pill{display:inline-flex;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:3px;gap:2px}.toggle-pill button{border:none;background:transparent;font:inherit;font-size:12px;font-weight:600;color:var(--color-text-muted);padding:6px 12px;border-radius:7px;cursor:pointer}.toggle-pill button.active{background:var(--color-primary);color:var(--color-primary-fg)}.table-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--ui-radius);overflow:hidden}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-faint);padding:13px 18px;border-bottom:1px solid var(--color-border);white-space:nowrap;-webkit-user-select:none;user-select:none}thead th.sortable{cursor:pointer}thead th .sort{display:inline-flex;vertical-align:middle;margin-left:4px}thead th svg{width:12px;height:12px;stroke:var(--color-text-faint);fill:none;stroke-width:2.2}tbody td{padding:13px 18px;font-size:13.5px;border-bottom:1px solid var(--color-border);color:var(--color-text)}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--color-bg)}.cell-name{font-weight:600}.cell-muted{color:var(--color-text-muted)}.cell-account{font-variant-numeric:tabular-nums;letter-spacing:.02em}.rel-tag{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:100px;background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.rel-tag.rel-link{cursor:pointer}.rel-tag.rel-link:hover{background:color-mix(in srgb,var(--color-primary) 12%,transparent);border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));color:var(--color-primary)}.rel-tag.rel-empty{color:var(--color-text-faint);border-style:dashed;background:transparent}.row-actions{display:flex;gap:6px;justify-content:flex-end}.icon-btn{width:30px;height:30px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-muted)}.icon-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.icon-btn:hover{background:var(--color-bg);color:var(--color-text)}.icon-btn.danger:hover{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 35%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 7%,var(--color-surface))}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-top:1px solid var(--color-border);gap:16px}.table-footer .count{font-size:12.5px;color:var(--color-text-muted)}.table-footer-right{display:flex;align-items:center;gap:16px}.page-size{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--color-text-muted);font-weight:600}.page-size .selectbox{width:auto;padding:6px 28px 6px 10px;font-size:12.5px;border-radius:8px;cursor:pointer}.pager button[disabled]{opacity:.45;cursor:default}.pager{display:flex;gap:4px}.pager button{min-width:30px;height:30px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);font:inherit;font-size:12.5px;font-weight:600;color:var(--color-text-muted);cursor:pointer;padding:0 8px}.pager button.active{background:var(--color-primary);color:var(--color-primary-fg);border-color:var(--color-primary)}.tip{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--color-text-faint)}.tip svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 10px;border-radius:100px;white-space:nowrap}.badge.published,.badge.sent{background:color-mix(in srgb,var(--color-success) 14%,transparent);color:var(--color-success)}.badge.draft{background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge.expired,.badge.unpublished{background:color-mix(in srgb,var(--color-warning) 16%,transparent);color:var(--color-warning)}.thumb-cell{width:40px;height:40px;border-radius:8px;background:var(--color-bg);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-text-faint)}.thumb-cell svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--ui-radius);padding:26px 28px;max-width:980px}.form-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px 32px}@media (max-width: 820px){.form-cols{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.field.span2{grid-column:1 / -1}.field-label{font-size:12.5px;font-weight:700;color:var(--color-text)}.field-label .opt{color:var(--color-text-faint);font-weight:500}.input,.textarea,.selectbox{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--color-border);font:inherit;font-size:13.5px;background:var(--color-surface);color:var(--color-text)}.textarea{resize:vertical;min-height:84px;line-height:1.5}.input:focus,.textarea:focus,.selectbox:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.input[readonly]{background:var(--color-bg);color:var(--color-text-muted)}.input.invalid,.textarea.invalid,.selectbox.invalid{border-color:var(--color-danger)}.char-count{font-size:11px;color:var(--color-text-faint);align-self:flex-end}.field-hint{font-size:11.5px;color:var(--color-text-muted);line-height:1.5}.field-hint.with-info{display:flex;align-items:flex-start;gap:7px}.field-error{font-size:11.5px;color:var(--color-danger);font-weight:600}.info-tip{position:relative;display:inline-flex;flex-shrink:0;cursor:help;color:var(--color-primary);margin-top:1px}.info-tip .info-ico{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.info-tip:hover .info-ico,.info-tip:focus .info-ico{filter:brightness(.9)}.info-pop{position:absolute;left:0;top:calc(100% + 8px);z-index:50;width:330px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 16px 40px #0000002e;padding:14px 16px;color:var(--color-text);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease;pointer-events:none}.info-tip:hover .info-pop,.info-tip:focus .info-pop,.info-tip:focus-within .info-pop{opacity:1;visibility:visible;transform:translateY(0)}.info-pop strong{display:block;font-size:12.5px;font-weight:800;margin-bottom:8px;color:var(--color-text)}.info-pop ol{margin:0;padding-left:18px;font-size:12px;line-height:1.55;color:var(--color-text-muted)}.info-pop ol li{margin-bottom:3px}.info-pop ol li b{color:var(--color-text);font-weight:700}.info-pop .info-sub{display:block;margin-top:9px;font-size:11.5px;color:var(--color-text-muted)}.info-pop .info-note{display:block;margin-top:9px;font-size:11.5px;color:var(--color-warning);font-weight:600}.radio-pills{display:inline-flex;gap:6px}.radio-pills label{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:9px;border:1px solid var(--color-border);font-size:13px;font-weight:600;color:var(--color-text-muted);cursor:pointer;background:var(--color-surface)}.radio-pills label.sel{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary)}.color-field{display:flex;align-items:center;gap:10px}.color-swatch{width:38px;height:38px;border-radius:9px;border:1px solid var(--color-border);flex-shrink:0}.color-field .input{font-family:ui-monospace,Menlo,monospace;letter-spacing:.03em}.cp-field{position:relative}.cp-pop{position:absolute;top:100%;left:0;margin-top:6px;z-index:60;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 12px 32px #0f172a29;padding:12px;display:none;width:240px}.cp-pop.open{display:block}.cp-grid{display:grid;grid-template-columns:repeat(8,22px);gap:6px;margin-bottom:10px}.cp-cell{width:22px;height:22px;border-radius:6px;cursor:pointer;border:1px solid rgba(15,23,42,.12);transition:transform .1s}.cp-cell:hover{transform:scale(1.15)}.cp-custom{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted);border-top:1px solid var(--color-border);padding-top:10px}.cp-custom input[type=color]{width:36px;height:26px;border:1px solid var(--color-border);border-radius:6px;padding:1px;background:var(--color-surface);cursor:pointer}.cp-field .color-swatch{cursor:pointer}.app-preview{border:1px solid var(--color-border);border-radius:12px;overflow:hidden;max-width:280px;margin-bottom:8px}.ap-logo{min-height:84px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-bottom:4px solid transparent}.ap-body{background:#f4f5f7;padding:16px;display:flex;justify-content:center;border-top:1px solid var(--color-border)}.ap-btn{border:none;border-radius:9px;padding:9px 18px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:default}.ap-nav{display:flex;justify-content:space-around;padding:11px 6px;font-size:10.5px;font-weight:600}.color-input{width:46px;height:38px;padding:2px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface);cursor:pointer;flex-shrink:0}.color-input::-webkit-color-swatch-wrapper{padding:0}.color-input::-webkit-color-swatch{border:none;border-radius:6px}.color-hex{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;color:var(--color-text-muted);letter-spacing:.03em}.datetime-field{display:flex;gap:8px}.datetime-field .input[type=date]{flex:1;min-width:0}.time-select{width:116px;flex:none}.upload-row{display:flex;gap:18px;align-items:flex-start}.upload-thumb{width:104px;height:104px;border-radius:12px;border:1px dashed var(--color-border);background:var(--color-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-faint);overflow:hidden}.upload-thumb svg{width:30px;height:30px;stroke:currentColor;fill:none;stroke-width:1.5}.upload-side{display:flex;flex-direction:column;gap:10px}.upload-buttons{display:flex;gap:8px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding-top:20px;border-top:1px solid var(--color-border)}.form-footer .left,.form-footer .right{display:flex;gap:10px}.attend-strip{display:flex;gap:22px;padding:12px 16px;background:var(--color-bg);border-radius:10px;margin-bottom:22px}.attend-strip .num{font-size:19px;font-weight:800}.attend-strip .lbl{font-size:11px;color:var(--color-text-muted);font-weight:600}.recip-builder{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}@media (max-width: 760px){.recip-builder{grid-template-columns:1fr}}.recip-pane{border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);display:flex;flex-direction:column;overflow:hidden;min-height:360px}.recip-pane-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-bottom:1px solid var(--color-border)}.recip-pane-title{font-size:13px;font-weight:700}.recip-pane-title .muted{color:var(--color-text-muted);font-weight:600}.recip-pane-head .toggle-pill,.recip-pane-head .toggle-pill button{flex:1}.link-clear{border:none;background:none;font:inherit;font-size:12px;font-weight:700;color:var(--color-primary);cursor:pointer;padding:0}.link-clear:disabled{color:var(--color-text-faint);cursor:default}.recip-search-wrap{padding:11px 12px 2px}.recip-search-wrap .search{max-width:none;min-width:0}.recip-search-wrap .search input{padding-top:8px;padding-bottom:8px}.recip-everyone{display:flex;align-items:center;gap:10px;margin:11px 12px 0;padding:9px 11px;border-radius:10px;border:1px dashed color-mix(in srgb,var(--color-primary) 40%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 6%,transparent);cursor:pointer;font:inherit;text-align:left}.recip-everyone:hover{background:color-mix(in srgb,var(--color-primary) 11%,transparent)}.recip-everyone .ravatar{background:var(--color-primary);color:var(--color-primary-fg);border-radius:9px}.recip-everyone .opt-name{font-size:13px;font-weight:700}.recip-everyone .opt-sub{font-size:11.5px;color:var(--color-text-muted)}.recip-everyone .row-toggle{margin-left:auto}.recip-everyone.sel{border-style:solid;border-color:var(--color-success);background:color-mix(in srgb,var(--color-success) 9%,transparent)}.recip-list{flex:1;overflow-y:auto;max-height:320px;padding:8px;display:flex;flex-direction:column;gap:2px}.recip-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;cursor:pointer}.recip-row:hover{background:var(--color-bg)}.ravatar{width:32px;height:32px;border-radius:50%;background:var(--color-secondary);color:var(--color-secondary-fg);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}.recip-row.is-group .ravatar,.recip-row.is-all .ravatar{background:color-mix(in srgb,var(--color-primary) 16%,transparent);color:var(--color-primary);border-radius:9px}.ravatar svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}.recip-row .opt-main{flex:1;min-width:0}.recip-row .opt-name{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recip-row .opt-sub{font-size:11.5px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-toggle{width:27px;height:27px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-faint);flex-shrink:0}.row-toggle svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.5}.recip-row:hover .row-toggle{color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border))}.recip-row.sel{background:color-mix(in srgb,var(--color-success) 7%,transparent)}.recip-row.sel .row-toggle,.recip-everyone.sel .row-toggle{background:var(--color-success);border-color:var(--color-success);color:#fff}.recip-row.sel:hover .row-toggle{background:var(--color-danger);border-color:var(--color-danger)}.recip-row.locked{cursor:default}.recip-row.locked:hover{background:color-mix(in srgb,var(--color-success) 7%,transparent)}.recip-row.locked:hover .row-toggle{background:var(--color-success);border-color:var(--color-success);color:#fff}.selected-list .recip-row{cursor:default}.selected-list .recip-row:hover{background:var(--color-bg)}.recip-remove{width:27px;height:27px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;flex-shrink:0}.recip-remove svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4}.recip-remove:hover{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 40%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 8%,var(--color-surface))}.recip-count-pill{font-size:11px;font-weight:700;color:var(--color-text-muted);margin-left:6px}.recip-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px 16px;text-align:center;color:var(--color-text-faint)}.recip-empty svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.7}.recip-empty span{font-size:12.5px;color:var(--color-text-muted)}.recip-summary-bar{padding:11px 14px;border-top:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted);display:flex;align-items:center;gap:7px;background:var(--color-bg)}.recip-summary-bar svg{width:14px;height:14px;stroke:var(--color-primary);fill:none;stroke-width:2;flex-shrink:0}.recip-summary-bar b{color:var(--color-text);font-weight:700}.mv-meta{display:flex;align-items:center;gap:12px;margin-bottom:4px}.mv-date{font-size:12.5px;color:var(--color-text-muted)}.mv-section{padding:18px 0;border-bottom:1px solid var(--color-border)}.mv-section:last-child{border-bottom:none;padding-bottom:0}.mv-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-faint);margin-bottom:10px;display:flex;align-items:baseline;gap:8px}.mv-reach{text-transform:none;letter-spacing:0;font-weight:600;color:var(--color-text-muted);font-size:11.5px}.mv-recips{display:flex;flex-wrap:wrap;gap:8px}.mv-recip{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 6px;border-radius:100px;font-size:12.5px;font-weight:600;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text)}.mv-recip.is-group,.mv-recip.is-all{background:color-mix(in srgb,var(--color-primary) 10%,transparent);border-color:color-mix(in srgb,var(--color-primary) 28%,var(--color-border))}.mv-recip .ravatar{width:24px;height:24px;font-size:9.5px}.mv-recip.is-group .ravatar,.mv-recip.is-all .ravatar{background:color-mix(in srgb,var(--color-primary) 16%,transparent);color:var(--color-primary);border-radius:7px}.mv-recip .ravatar svg{width:13px;height:13px}.mv-recip .mv-count{color:var(--color-text-faint);font-weight:700;font-size:11px}.mv-title{font-size:16px;font-weight:700;letter-spacing:-.2px}.mv-text{font-size:13.5px;color:var(--color-text);line-height:1.6;white-space:pre-wrap}.ms{position:relative}.ms-control{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:44px;padding:7px 10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);cursor:text}.ms-control.focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.ms-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 5px 4px 9px;border-radius:8px;font-size:12.5px;font-weight:600;background:color-mix(in srgb,var(--color-primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 30%,var(--color-border));color:var(--color-primary)}.ms-chip .chip-count{opacity:.65;font-weight:700;font-size:11px}.ms-chip button{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;border:none;background:transparent;color:inherit;cursor:pointer;opacity:.6;padding:0}.ms-chip button:hover{opacity:1;background:color-mix(in srgb,currentColor 18%,transparent)}.ms-chip button svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.8}.ms-input{flex:1;min-width:130px;border:none;outline:none;background:transparent;font:inherit;font-size:13.5px;padding:4px 2px;color:var(--color-text)}.ms-dropdown{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 16px 40px #00000021;max-height:260px;overflow-y:auto;padding:6px}.ms-dropdown[hidden]{display:none}.ms-option{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer}.ms-option:hover,.ms-option.active{background:var(--color-bg)}.ms-option .ravatar{background:color-mix(in srgb,var(--color-primary) 16%,transparent);color:var(--color-primary);border-radius:9px}.ms-option .opt-main{flex:1;min-width:0}.ms-option .opt-name{font-size:13.5px;font-weight:600}.ms-option .opt-sub{font-size:11.5px;color:var(--color-text-muted)}.ms-option .opt-add{font-size:16px;font-weight:700;color:var(--color-primary);opacity:0}.ms-option:hover .opt-add{opacity:1}.ms-empty{padding:14px;text-align:center;font-size:12.5px;color:var(--color-text-muted)}.cal-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;align-items:start}@media (max-width: 980px){.cal-layout{grid-template-columns:1fr}}.cal-card,.agenda-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--ui-radius);overflow:hidden}.cal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--color-border)}.cal-month{font-size:15px;font-weight:800;letter-spacing:-.3px}.cal-nav{display:flex;gap:6px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-dow{text-align:center;font-size:10.5px;font-weight:700;color:var(--color-text-faint);padding:10px 0 6px;text-transform:uppercase}.cal-cell{aspect-ratio:1 / .86;border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);padding:6px 7px;font-size:12px;color:var(--color-text);position:relative;cursor:pointer}.cal-cell:nth-child(7n+1){border-left:none}.cal-cell.muted{color:var(--color-text-faint);background:var(--color-bg)}.cal-cell.today .daynum{background:var(--color-primary);color:var(--color-primary-fg);border-radius:50%;padding:1px 5px}.cal-cell.sel{background:color-mix(in srgb,var(--color-primary) 9%,transparent);box-shadow:inset 0 0 0 2px var(--color-primary)}.cal-dots{display:flex;gap:3px;flex-wrap:wrap;margin-top:6px}.cal-dot{width:6px;height:6px;border-radius:50%}.cal-marks{display:flex;margin-top:6px}.cal-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:14px;padding:0 5px;border-radius:100px;line-height:1;background:color-mix(in srgb,var(--color-primary) 18%,transparent);color:var(--color-primary);font-size:9px;font-weight:800}.agenda-card{display:flex;flex-direction:column;max-height:560px}.agenda-head{padding:16px 18px;border-bottom:1px solid var(--color-border);font-weight:800;font-size:14px;display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-shrink:0}.agenda-count{font-size:12px;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.agenda-scroll{overflow-y:auto;overscroll-behavior:contain}.agenda-empty{padding:22px 18px;font-size:13px;color:var(--color-text-muted)}.agenda-item{display:flex;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-border);cursor:pointer}.agenda-item:last-child{border-bottom:none}.agenda-item:hover{background:var(--color-bg)}.agenda-accent{width:4px;border-radius:4px;flex-shrink:0}.agenda-title{font-size:13.5px;font-weight:700}.agenda-meta{font-size:12px;color:var(--color-text-muted);margin-top:3px;display:flex;gap:12px;flex-wrap:wrap}.agenda-meta span{display:inline-flex;align-items:center;gap:5px}.agenda-meta svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}.balance-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:20px}.tx-table{table-layout:fixed}.tx-table td,.tx-table th{white-space:nowrap}.tx-table td.tx-desc{white-space:normal}.tx-table col.tx-date{width:132px}.tx-table col.tx-type{width:100px}.tx-table col.tx-method{width:138px}.tx-table col.tx-amt{width:106px}.tx-table col.tx-opts{width:84px}.num-debit{color:var(--color-danger);font-weight:600;text-align:right}.num-credit{color:var(--color-success);font-weight:600;text-align:right}td.num,th.num{text-align:right}.login-stage{min-height:calc(100vh - 41px);display:flex;align-items:center;justify-content:center;background:var(--color-bg);padding:24px}.login-card{width:400px;max-width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--ui-radius);padding:34px 32px;box-shadow:0 12px 40px #0000000f}.login-logo{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:26px}.login-logo .logo-img{width:208px;max-width:70%;height:auto;object-fit:contain}.login-logo .s{font-size:12.5px;color:var(--color-text-muted)}.login-card .field{margin-bottom:16px}.link-muted{font-size:12.5px;color:var(--color-primary);font-weight:600;text-decoration:none;cursor:pointer;background:none;border:none;font-family:inherit;padding:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182773;display:flex;align-items:center;justify-content:center;z-index:200}.modal-backdrop[hidden]{display:none}.modal{background:var(--color-surface);border-radius:var(--ui-radius);width:420px;max-width:90vw;overflow:hidden;box-shadow:0 20px 50px #00000040}.modal-icon-wrap{display:flex;justify-content:center;padding:26px 0 8px}.modal-icon{width:52px;height:52px;border-radius:50%;background:color-mix(in srgb,var(--color-danger) 12%,transparent);display:flex;align-items:center;justify-content:center}.modal-icon svg{width:25px;height:25px;stroke:var(--color-danger);fill:none;stroke-width:2}.modal-body{padding:4px 26px 8px;text-align:center}.modal-body h3{margin:0 0 8px;font-size:17px;font-weight:800;letter-spacing:-.3px}.modal-body p{margin:0;font-size:13.5px;color:var(--color-text-muted);line-height:1.55}.modal-body .warn-note{margin-top:10px;font-size:12px;color:var(--color-warning);font-weight:600}.modal-actions{display:flex;gap:10px;padding:20px 26px 24px}.modal-actions .btn{flex:1;justify-content:center}.modal-icon.ok{background:color-mix(in srgb,var(--color-success, #059669) 12%,transparent)}.modal-icon.ok svg{stroke:var(--color-success, #059669)}.modal-icon.warn{background:color-mix(in srgb,var(--color-warning) 14%,transparent)}.modal-icon.warn svg{stroke:var(--color-warning)}.modal.wide{width:520px}.reach-pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.reach-pill svg{width:12px;height:12px;fill:none;stroke-width:2.6}.reach-on{background:color-mix(in srgb,var(--color-success, #059669) 12%,transparent);color:var(--color-success, #059669)}.reach-on svg{stroke:var(--color-success, #059669)}.reach-off{background:#f3f4f6;color:var(--color-text-muted)}.reach-off svg{stroke:var(--color-text-muted)}.reach-blocked{background:color-mix(in srgb,var(--color-warning) 14%,transparent);color:var(--color-warning)}.reach-blocked svg{stroke:var(--color-warning)}.import-drop{border:2px dashed var(--color-border);border-radius:var(--ui-radius);padding:40px 24px;text-align:center;background:#fafbfc}.import-drop svg{width:38px;height:38px;stroke:var(--color-text-faint);fill:none;stroke-width:1.6}.import-drop-title{font-size:15px;font-weight:700;margin-top:12px}.import-drop-sub{font-size:12.5px;color:var(--color-text-muted);margin-top:5px;line-height:1.5}.import-cols{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}.import-col{font-size:11.5px;font-weight:600;background:#fff;border:1px solid var(--color-border);border-radius:6px;padding:4px 9px;color:var(--color-text-muted)}.import-col.req{border-color:color-mix(in srgb,var(--color-primary) 40%,var(--color-border));color:var(--color-primary)}.import-stats{display:flex;gap:10px;margin:18px 0 4px}.import-stat{flex:1;background:#fff;border:1px solid var(--color-border);border-radius:10px;padding:12px 14px;text-align:center}.import-stat-num{font-size:22px;font-weight:800;letter-spacing:-.5px}.import-stat-num.bad{color:var(--color-warning)}.import-stat-label{font-size:11px;color:var(--color-text-muted);margin-top:2px}.import-progress{height:6px;border-radius:3px;background:#eef0f3;overflow:hidden;margin-top:6px}.import-progress-bar{height:100%;background:var(--color-primary)}.split-card{display:flex;gap:12px}.split-half{flex:1;border:1px solid var(--color-border);border-radius:10px;padding:16px;background:#fff}.split-half.paid{border-color:color-mix(in srgb,var(--color-warning) 40%,var(--color-border));background:color-mix(in srgb,var(--color-warning) 4%,#fff)}.split-count{font-size:26px;font-weight:800;letter-spacing:-.6px}.split-label{font-size:12.5px;font-weight:600;margin-top:2px}.split-cost{font-size:12px;color:var(--color-text-muted);margin-top:6px}.split-cost strong{color:var(--color-text)}.split-free{color:var(--color-success, #059669);font-weight:700}.check-row{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.5;margin-top:9px;cursor:pointer}.check-row input{margin-top:2px;flex-shrink:0}.storage-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--ui-radius);padding:16px 18px;margin-bottom:20px;max-width:600px}.storage-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.storage-head-right{display:flex;align-items:center;gap:12px}.storage-upgrade{padding:5px 10px;font-size:11.5px}.storage-upgrade svg{width:13px;height:13px}.storage-upgrade[hidden]{display:none}.storage-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--color-text-faint)}.storage-num{font-size:13px;color:var(--color-text-muted)}.storage-num strong{color:var(--color-text);font-weight:700}.storage-track{height:8px;border-radius:100px;background:var(--color-bg);overflow:hidden}.storage-fill{height:100%;border-radius:100px;background:var(--color-primary)}.storage-fill.warn{background:var(--color-warning)}.storage-foot{margin-top:8px;font-size:11.5px;color:var(--color-text-muted)}.dropzone{border:1.5px dashed color-mix(in srgb,var(--color-primary) 40%,var(--color-border));border-radius:var(--ui-radius);background:color-mix(in srgb,var(--color-primary) 4%,var(--color-surface));padding:26px 20px;text-align:center;cursor:pointer;margin-bottom:20px;transition:background .12s,border-color .12s}.dropzone:hover{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface));border-color:var(--color-primary)}.dropzone .dz-ic{width:34px;height:34px;stroke:var(--color-primary);fill:none;stroke-width:1.8;margin-bottom:8px}.dropzone .dz-title{font-size:14px;font-weight:700;color:var(--color-text)}.dropzone .dz-link{color:var(--color-primary)}.dropzone .dz-sub{margin-top:4px;font-size:12px;color:var(--color-text-muted)}.name-link{font-weight:600;cursor:pointer;color:var(--color-text)}.name-link:hover{color:var(--color-primary);text-decoration:underline}.file-cell{display:inline-flex;align-items:center;gap:10px}.file-ic{flex:none;width:30px;height:30px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;letter-spacing:.02em;color:#fff}.file-ic.pdf{background:#dc2626}.file-ic.word{background:#2563eb}.file-ic.excel{background:#16a34a}.file-ic.other{background:var(--color-text-faint)}.type-pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:100px;background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.tc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-border)}.tc-title{font-size:14px;font-weight:800;letter-spacing:-.2px}.tc-head .search{min-width:0;max-width:220px;flex:0 1 220px}.tc-head .search input{padding-top:7px;padding-bottom:7px}.mobile-url-row{display:flex;align-items:flex-start;gap:14px}.mobile-url-col{display:flex;flex-direction:column;gap:6px}.mobile-url-line{display:flex;align-items:center;gap:10px}.mobile-url-text{font-size:13.5px;font-weight:400;color:var(--color-text);word-break:break-all}.mobile-url-qr{width:80px;height:80px;display:block;flex-shrink:0;border:1px solid var(--color-border);border-radius:10px;padding:6px;background:#fff}.qr-block{display:flex;align-items:center;gap:12px}.copy-qr-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:9px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}.copy-qr-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.copy-qr-btn:hover{background:var(--color-bg);color:var(--color-text)}.copy-qr-btn.copied,.icon-btn.copied{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 40%,var(--color-border));background:color-mix(in srgb,var(--color-success) 8%,var(--color-surface))}.app{min-height:100vh;max-width:none;box-shadow:none}.sidebar{top:0;height:100vh}.pagehead{top:0}.login-stage{min-height:100vh}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.spinner{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:spin .6s linear infinite;vertical-align:-3px}.spinner.lg{width:30px;height:30px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.toast-stack{position:fixed;top:18px;right:18px;z-index:400;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 36px))}.toast{display:flex;align-items:flex-start;gap:10px;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-text-muted);border-radius:12px;box-shadow:0 12px 32px #0f172a29;padding:12px 14px;animation:toast-in .16s ease}.toast.success{border-left-color:var(--color-success)}.toast.error{border-left-color:var(--color-danger)}.toast.info{border-left-color:var(--color-primary)}.toast .toast-ic{flex-shrink:0;margin-top:1px}.toast .toast-ic svg{width:17px;height:17px;fill:none;stroke-width:2.2}.toast.success .toast-ic svg{stroke:var(--color-success)}.toast.error .toast-ic svg{stroke:var(--color-danger)}.toast.info .toast-ic svg{stroke:var(--color-primary)}.toast .toast-body{flex:1;min-width:0}.toast .toast-title{font-size:13px;font-weight:700;color:var(--color-text)}.toast .toast-msg{font-size:12.5px;color:var(--color-text-muted);line-height:1.45;margin-top:2px;word-break:break-word}.toast .toast-close{flex-shrink:0;border:none;background:none;cursor:pointer;color:var(--color-text-faint);padding:2px;line-height:0}.toast .toast-close svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4}.toast .toast-close:hover{color:var(--color-text)}@keyframes toast-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.combo{position:relative}.combo-control{display:flex;align-items:center;gap:8px;min-height:42px;padding:7px 10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);cursor:text}.combo-control.focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.combo-control svg.combo-search-ic{width:16px;height:16px;stroke:var(--color-text-faint);fill:none;stroke-width:2;flex-shrink:0}.combo-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font:inherit;font-size:13.5px;color:var(--color-text)}.combo-clear{border:none;background:none;cursor:pointer;color:var(--color-text-faint);padding:2px;line-height:0}.combo-clear svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4}.combo-clear:hover{color:var(--color-text)}.combo-dropdown{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 16px 40px #00000021;max-height:300px;overflow-y:auto;padding:6px;overscroll-behavior:contain}.combo-dropdown[hidden]{display:none}.combo-option{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;cursor:pointer}.combo-option:hover,.combo-option.active{background:var(--color-bg)}.combo-option .opt-name{font-size:13.5px;font-weight:600}.combo-option .opt-sub{font-size:11.5px;color:var(--color-text-muted)}.combo-empty{padding:14px;text-align:center;font-size:12.5px;color:var(--color-text-muted)}.otp-boxes{display:flex;gap:8px;justify-content:center}.otp-box{width:44px;height:52px;text-align:center;font-size:20px;font-weight:700;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text);font-variant-numeric:tabular-nums}.otp-box:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.placeholder-panel{background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--ui-radius);padding:46px 32px;text-align:center;max-width:640px}.placeholder-panel .ph-ic{width:44px;height:44px;border-radius:12px;margin:0 auto 14px;background:color-mix(in srgb,var(--color-primary) 12%,transparent);display:flex;align-items:center;justify-content:center}.placeholder-panel .ph-ic svg{width:22px;height:22px;stroke:var(--color-primary);fill:none;stroke-width:1.9}.placeholder-panel h2{margin:0 0 8px;font-size:18px;font-weight:800;letter-spacing:-.3px}.placeholder-panel p{margin:0 auto;max-width:440px;font-size:13.5px;color:var(--color-text-muted);line-height:1.6}.form-alert{display:flex;align-items:flex-start;gap:9px;padding:11px 13px;border-radius:10px;margin-bottom:16px;background:color-mix(in srgb,var(--color-danger) 8%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-danger) 30%,var(--color-border))}.form-alert svg{width:16px;height:16px;stroke:var(--color-danger);fill:none;stroke-width:2.2;flex-shrink:0;margin-top:1px}.form-alert span{font-size:12.5px;color:var(--color-danger);font-weight:600;line-height:1.45}.recip-row.removing .opt-sub,.recip-row.removing .row-toggle{color:var(--color-danger)}.recip-subhead{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-faint);padding:8px 4px 4px}.recip-subhead:first-child{padding-top:2px}.recip-pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 0 2px;border-top:1px solid var(--color-border);margin-top:4px;font-size:12px;color:var(--color-text-muted)}.recip-pager button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-surface);cursor:pointer;color:var(--color-text-muted)}.recip-pager button:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.recip-pager button:disabled{opacity:.4;cursor:default}.recip-pager button svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2}.badge.queued,.badge.sending{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.badge.failed{background:color-mix(in srgb,var(--color-danger) 13%,transparent);color:var(--color-danger)}.recip-summary-bar.is-loading{color:var(--color-text-faint)}.thumb-cell img{width:100%;height:100%;object-fit:cover;border-radius:8px}.upload-thumb img{width:100%;height:100%;object-fit:cover;border-radius:12px}.crop-stage{padding:4px 26px 12px;display:flex;justify-content:center}.crop-stage .ReactCrop{max-width:100%}.crop-stage .ReactCrop__image{max-height:60vh}.doc-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg);font-size:13px;font-weight:600;color:var(--color-text);text-decoration:none;max-width:100%}.doc-chip:hover{background:var(--color-surface);border-color:var(--color-primary)}.doc-chip svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}.admin-dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}@media (max-width: 1100px){.admin-dash-grid{grid-template-columns:1fr}}.badge-status.overdue{background:color-mix(in srgb,var(--color-danger) 13%,transparent);color:var(--color-danger)}.badge-status.suspended{background:color-mix(in srgb,var(--color-text-muted) 14%,transparent);color:var(--color-text-muted)}.cell-name-tagged{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.dropzone.dragover{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));border-color:var(--color-primary)}.import-drop{cursor:pointer}.import-drop.dragover{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface));border-color:var(--color-primary)}.import-running{display:flex;align-items:center;gap:14px;padding:30px 8px}.import-running-name{font-size:14px;font-weight:700;color:var(--color-text)}.import-running-sub{font-size:12.5px;color:var(--color-text-muted);margin-top:3px;line-height:1.5}.stat-card.clickable{cursor:pointer;text-align:left;width:100%;font:inherit;transition:border-color .12s ease,box-shadow .12s ease}.stat-card.clickable:hover{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border))}.stat-card.clickable.active{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary) inset}.stat-caption{font-size:12px;color:var(--color-text-muted)}.suspend-stage{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg);padding:24px}.suspend-card{width:440px;max-width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--ui-radius);padding:34px 30px 28px;text-align:center;box-shadow:0 10px 30px #0000000f}.suspend-icon{width:56px;height:56px;margin:0 auto 18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--color-warning) 14%,transparent)}.suspend-icon svg{width:27px;height:27px;stroke:var(--color-warning);fill:none;stroke-width:2}.suspend-title{font-size:19px;font-weight:800;letter-spacing:-.3px;margin:0 0 10px;color:var(--color-text)}.suspend-message{font-size:14px;line-height:1.6;color:var(--color-text-muted);margin:0 0 24px}.suspend-amount{font-size:14px;color:var(--color-text)}.suspend-amount b{color:var(--color-danger)}
