body{margin:0;font-family:Segoe UI,sans-serif;background:#f6f8fb;color:#1f2937}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{max-width:1100px;margin:0 auto;padding:1rem}.hero{margin-bottom:1rem}.hero h1{margin:0}.hero-copy{color:#4b5563}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1rem}.metric-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:.75rem}.metric-card span{display:block;font-size:.85rem;color:#6b7280}.metric-card strong{font-size:1.4rem}.layout-grid{display:grid;gap:1rem}.card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem}.form-grid{display:grid;gap:.85rem}.row{display:grid;gap:.75rem}.field-group{display:grid;gap:.25rem}.field-group label{font-size:.9rem;font-weight:500;color:#374151}.field-required{color:#dc2626}.field-group input{border:1.5px solid #d1d5db;border-radius:8px;min-height:38px;padding:.45rem .6rem;font-size:.9rem;transition:border-color .15s ease,box-shadow .15s ease;outline:none}.field-group input:focus{border-color:#0ea5a5;box-shadow:0 0 0 3px #0ea5a526}.field-group--error input{border-color:#dc2626;background:#fff8f8}.field-group--error input:focus{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261f}.field-error{display:flex;align-items:flex-start;gap:.3rem;font-size:.8rem;color:#dc2626;line-height:1.4;padding-top:.1rem}.field-error:before{content:"⚠";flex-shrink:0;font-size:.75rem;margin-top:.05rem}.field-hint{font-size:.78rem;color:#6b7280;line-height:1.4}.field-hint--ok{color:#059669}.field-hint--warn{color:#d97706}.form-summary-error{margin:0;font-size:.83rem;color:#dc2626;background:#fff1f2;border:1px solid #fecaca;border-radius:6px;padding:.45rem .6rem}.api-error-box{background:#fff7ed;border:1.5px solid #fed7aa;border-radius:8px;padding:.65rem .8rem;display:grid;gap:.3rem}.api-error-box__title{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.88rem;color:#92400e}.api-error-box__icon{font-size:1rem}.api-error-box__hint{font-size:.82rem;color:#78350f;line-height:1.5}.error-banner{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;background:#fef2f2;border:1.5px solid #fca5a5;color:#991b1b;border-radius:8px;padding:.55rem .75rem;font-size:.88rem}.error-banner__icon{flex-shrink:0;font-style:normal}.error-banner span:nth-child(2){flex:1}.error-banner__dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;font-size:1.1rem;line-height:1;color:#991b1b;padding:0 .2rem;opacity:.7;transition:opacity .15s}.error-banner__dismiss:hover{opacity:1}label{display:grid;gap:.25rem;font-size:.9rem}input{border:1px solid #d1d5db;border-radius:8px;min-height:38px;padding:.45rem .6rem}.btn-primary{border:0;border-radius:8px;min-height:38px;padding:.5rem .8rem;font-weight:600;color:#fff;background:#0ea5a5;cursor:pointer;transition:background .15s}.btn-primary:hover:not(:disabled){background:#0c9191}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{border:1px solid #d1d5db;border-radius:8px;min-height:34px;background:#fff;cursor:pointer;padding:.35rem .6rem;transition:background .12s}.btn-ghost:hover:not(:disabled){background:#f9fafb}.btn-ghost:disabled{opacity:.45;cursor:not-allowed}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid #e5e7eb;padding:.55rem .25rem;font-size:.9rem;vertical-align:top}.muted{color:#6b7280;font-size:.8rem}.stacked{display:grid;gap:.2rem}.progress-bar{height:7px;border-radius:999px;background:#e5e7eb;overflow:hidden;margin-top:.3rem}.progress-bar>div{height:100%;background:#0ea5a5}.badge{text-transform:capitalize;font-size:.78rem;border:1px solid #d1d5db;border-radius:999px;padding:.15rem .4rem}.badge-active{background:#ecfeff}.badge-scheduled{background:#eff6ff}.badge-completed{background:#f3f4f6}.badge-canceled{background:#fef2f2}.badge-health{display:inline-flex;align-items:center;gap:.2rem;font-size:.72rem;font-weight:500;border-radius:999px;padding:.12rem .45rem;border:1px solid transparent;white-space:nowrap;cursor:default}.badge-health--soon{background:#e0f2fe;border-color:#7dd3fc;color:#0369a1}.badge-health--claim{background:#fef9c3;border-color:#fde047;color:#854d0e}.badge-health--ending{background:#d1fae5;border-color:#6ee7b7;color:#065f46}.badge-health--expiring{background:#fff7ed;border-color:#fdba74;color:#9a3412}.badge-health--recent-cancel{background:#ffe4e6;border-color:#fda4af;color:#9f1239}.status-cell{display:flex;flex-direction:column;gap:.3rem;align-items:flex-start}.health-badge-row{display:flex;flex-wrap:wrap;gap:.25rem}.issue-list{display:grid;gap:.6rem}.issue-item{border:1px solid #e5e7eb;border-radius:8px;padding:.7rem}.chip-row{display:flex;flex-wrap:wrap;gap:.35rem}.chip{border:1px solid #d1d5db;border-radius:999px;padding:.12rem .45rem;font-size:.75rem;background:#f9fafb}@media(min-width:920px){.layout-grid{grid-template-columns:380px 1fr}.row{grid-template-columns:1fr 1fr}}.action-cell{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.btn-edit{font-size:.8rem;color:#0369a1;border-color:#bae6fd;background:#f0f9ff}.btn-edit:hover:not(:disabled){background:#e0f2fe}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-panel{background:#fff;border-radius:14px;padding:1.5rem;width:100%;max-width:420px;box-shadow:0 20px 60px #0000002e;display:grid;gap:1rem}.modal-header{display:flex;align-items:center;justify-content:space-between}.modal-title{margin:0;font-size:1.05rem;font-weight:700;color:#111827}.modal-close{background:none;border:none;cursor:pointer;font-size:.95rem;color:#6b7280;padding:.2rem .4rem;border-radius:6px;transition:background .12s,color .12s}.modal-close:hover{background:#f3f4f6;color:#111827}.modal-stream-hint{margin:-.25rem 0 0;font-size:.82rem;color:#6b7280}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.25rem}.chart-section{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1.5rem;margin-bottom:1rem}.chart-section__title{margin:0 0 1.25rem;font-size:1.2rem;font-weight:600;color:#1f2937}.chart-container{width:100%;min-height:400px}.chart-empty-state{display:flex;align-items:center;justify-content:center;min-height:400px;background:#f9fafb;border:2px dashed #d1d5db;border-radius:10px}.chart-empty-state__content{text-align:center;max-width:320px;padding:2rem}.chart-empty-state__icon{font-size:3rem;display:block;margin-bottom:.75rem;opacity:.5}.chart-empty-state__content h3{margin:0 0 .5rem;font-size:1.1rem;color:#374151}.chart-empty-state__content p{margin:0;font-size:.9rem;color:#6b7280;line-height:1.5}@media(max-width:768px){.chart-section{padding:1rem}.chart-section__title{font-size:1rem;margin-bottom:1rem}.chart-container,.chart-empty-state{min-height:300px}.chart-empty-state__icon{font-size:2.5rem}}.hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.wallet-btn{white-space:nowrap;font-size:.88rem;padding:.4rem .85rem;min-height:36px}.wallet-status{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.wallet-address{display:flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:500;color:#1f2937;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;padding:.25rem .65rem}.wallet-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.wallet-dot--connected{background:#22c55e;box-shadow:0 0 0 2px #22c55e40}.wallet-disconnect{font-size:.82rem;padding:.25rem .55rem;min-height:30px}.wallet-error{font-size:.8rem;color:#dc2626;max-width:220px}.wallet-required-notice{margin:0;font-size:.83rem;color:#0369a1;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;padding:.45rem .6rem}.input-readonly{background:#f9fafb!important;color:#6b7280!important;cursor:default}.input-readonly:focus{border-color:#d1d5db!important;box-shadow:none!important}.recipient-dashboard{margin-top:0}.recipient-dashboard-card{display:grid;gap:1rem}.recipient-dashboard-title{margin:0;font-size:1.15rem}.recipient-dashboard-subtitle{margin:-.5rem 0 0}.recipient-dashboard-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.recipient-dashboard-section{margin-top:.5rem}.recipient-dashboard-section-title{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:#374151}.recipient-dashboard-empty,.recipient-dashboard-loading{padding:1.5rem;text-align:center;background:#f9fafb;border-radius:8px;border:1px dashed #e5e7eb}.recipient-dashboard-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem}.recipient-dashboard-error{padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b}.recipient-dashboard-error p{margin:0;font-size:.9rem}.loading-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#0ea5a5;border-radius:50%;animation:recipient-spin .7s linear infinite}@keyframes recipient-spin{to{transform:rotate(360deg)}}.truncate-address{font-family:ui-monospace,monospace;font-size:.85rem}.progress-copy{display:block;font-size:.88rem}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.skeleton{background:#e5e7eb;background-image:linear-gradient(to right,#e5e7eb,#d1d5db,#e5e7eb 40%,#e5e7eb);background-repeat:no-repeat;background-size:800px 100%;display:block;position:relative;animation:shimmer 1.5s linear infinite forwards;border-radius:6px}.skeleton-item{height:60px;width:100%;border-radius:10px;margin-bottom:.75rem}.activity-feed{display:grid;gap:.75rem}.activity-item{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:12px;transition:transform .2s ease,box-shadow .2s ease}.activity-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.activity-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#f3f4f6;border-radius:50%;font-size:1.25rem;flex-shrink:0}.activity-content{flex:1}.activity-title{font-weight:600;color:#111827;font-size:.95rem;margin:0 0 .15rem}.activity-meta{font-size:.82rem;color:#6b7280;display:flex;align-items:center;gap:.5rem}.activity-empty{text-align:center;padding:3rem 1rem;background:#f9fafb;border:2px dashed #e5e7eb;border-radius:12px;color:#6b7280}.activity-empty-icon{font-size:3rem;margin-bottom:1rem;display:block;opacity:.5}.activity-error{padding:1.5rem;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#991b1b;text-align:center}.activity-error h3{margin:0 0 .5rem;font-size:1rem}.activity-error button{margin-top:.75rem}.retry-btn{background:#991b1b;color:#fff;border:none;padding:.4rem 1rem;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.retry-btn:hover{background:#7f1d1d}.app-nav{display:flex;gap:.25rem;margin-bottom:1rem;border-bottom:1px solid #e5e7eb}.app-nav-link{padding:.5rem .75rem;font-size:.9rem;font-weight:500;color:#6b7280;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:color .15s,border-color .15s}.app-nav-link:hover{color:#374151}.app-nav-link--active{color:#0ea5a5;border-bottom-color:#0ea5a5}
