:root{--primary-color: #007faa;--primary-color-dark: #016080;--primary-color-light: #019fd4;--primary-color-lighter: #e3f2fd;--text-primary: #2c3e50;--text-secondary: #6c757d;--border-color: #dee2e6;--background: #f8f9fa;--card-shadow: 0 1px 3px rgba(0, 0, 0, .08);--card-shadow-hover: 0 4px 12px rgba(0, 0, 0, .12);--sidebar-width: 15rem;--header-height: 3.5rem;--spacing-xs: .5rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--touch-target-min: 2.75rem;--transition-fast: .15s ease;--transition-normal: .25s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px}@media(min-width:768px){:root{--header-height: 4rem;--spacing-md: 1.25rem;--spacing-lg: 1.75rem;--spacing-xl: 2.5rem}}@media(min-width:1024px){:root{--spacing-lg: 2rem;--spacing-xl: 3rem}}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.hide-mobile{display:none}@media(min-width:768px){.hide-mobile{display:block}}.hide-tablet-up{display:block}@media(min-width:768px){.hide-tablet-up{display:none}}.hide-desktop{display:block}@media(min-width:1024px){.hide-desktop{display:none}}app-component{display:block}#main-content{margin-left:0;margin-top:var(--header-height);min-height:calc(100vh - var(--header-height))}#content-area{padding:var(--spacing-md)}app-component .loading-container{display:flex;justify-content:center;align-items:center;height:100vh;gap:var(--spacing-md);font-size:var(--font-size-lg);color:var(--text-secondary)}app-component .spinner{border:4px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:50%;width:2.5rem;height:2.5rem;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(min-width:768px){#main-content{margin-left:var(--sidebar-width)}#content-area{padding:var(--spacing-lg)}}@media(min-width:1024px){#content-area{padding:var(--spacing-xl);max-width:87.5rem}}router-component{display:block;margin-left:0;margin-top:var(--header-height);min-height:calc(100vh - var(--header-height))}@media(min-width:768px){router-component{margin-left:var(--sidebar-width)}}header-component{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:#fff;border-bottom:1px solid var(--border-color);z-index:100}header-component .header-container{display:flex;justify-content:space-between;align-items:center;padding:0 var(--spacing-md);height:100%}header-component .logo{display:flex;align-items:center;gap:var(--spacing-sm)}header-component .logo img{height:2rem}header-component .logo h1{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}header-component .menu{display:flex;gap:var(--spacing-xs);align-items:center}header-component .menu-toggle{display:flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);background:none;border:none;cursor:pointer;padding:0;color:var(--text-primary)}header-component .menu-toggle svg{width:1.5rem;height:1.5rem}@media(min-width:768px){header-component .header-container{padding:0 var(--spacing-lg)}header-component .logo img{height:2.25rem}header-component .logo h1{font-size:var(--font-size-xl)}header-component .menu{gap:var(--spacing-sm)}header-component .menu-toggle{display:none}}@media(min-width:1024px){header-component .header-container{padding:0 var(--spacing-xl)}}button-component button{background-color:transparent;border:none;color:var(--primary-color);border-radius:16px;box-sizing:border-box;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:700;height:32px;text-transform:uppercase}button-component button:disabled{cursor:not-allowed}button-component button:focus-visible{outline-color:var(--primary-color-dark);outline-offset:2px;outline-style:solid;outline-width:2px}button-component button.primary{background-color:var(--primary-color);border:2px solid var(--primary-color);color:#fff}button-component button.primary:hover{background-color:var(--primary-color-dark);border-color:var(--primary-color-dark)}button-component button.primary:active{background-color:var(--primary-color-light);border-color:var(--primary-color-light)}button-component button.primary:disabled{background-color:var(--primary-color-lighter);border-color:var(--primary-color-lighter)}button-component button.secondary{background-color:#fff;border:2px solid var(--primary-color);color:var(--primary-color)}button-component button.secondary:hover{border-color:var(--primary-color-dark);color:var(--primary-color-dark)}button-component button.secondary:active{border-color:var(--primary-color-light);color:var(--primary-color-light)}button-component button.secondary:disabled{border-color:var(--primary-color-lighter);color:var(--primary-color-lighter)}sidebar-component{position:fixed;top:var(--header-height);left:calc(var(--sidebar-width) * -1);width:var(--sidebar-width);height:calc(100vh - var(--header-height));z-index:50;transition:left var(--transition-normal);display:block;background:#fff;border-right:1px solid var(--border-color);padding:var(--spacing-md) 0;box-shadow:2px 0 8px #0000001a}sidebar-component.active{left:0}sidebar-component .sidebar-nav{display:flex;flex-direction:column;gap:.25rem;padding:0 var(--spacing-sm)}sidebar-component .nav-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-radius:.375rem;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:var(--font-size-base);font-weight:500;text-align:left;transition:all var(--transition-fast);width:100%;min-height:var(--touch-target-min)}sidebar-component .nav-item:hover{background:var(--background);color:var(--text-primary)}sidebar-component .nav-item.active{background:var(--primary-color-lighter);color:var(--primary-color);font-weight:600}sidebar-component .nav-item .label{flex:1}sidebar-component .sidebar-overlay{display:none;position:fixed;top:var(--header-height);left:0;right:0;bottom:0;background:#00000080;z-index:40;opacity:0;transition:opacity var(--transition-normal)}sidebar-component.active .sidebar-overlay{display:block;opacity:1}@media(min-width:768px){sidebar-component{left:0;box-shadow:none}sidebar-component .sidebar-overlay{display:none!important}sidebar-component .nav-item{font-size:var(--font-size-sm)}}home-page{display:block;padding:var(--spacing-lg)}home-page .page-header{margin-bottom:var(--spacing-lg)}home-page h1{margin:0;font-size:var(--font-size-2xl);font-weight:600;color:var(--text-primary)}home-page .page-header p{margin:0;color:var(--text-secondary)}home-page .dashboard-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:var(--spacing-lg)}home-page .dashboard-card{background:#fff;border:1px solid var(--border-color);border-radius:var(--spacing-sm);padding:var(--spacing-lg);box-shadow:var(--card-shadow);cursor:pointer;transition:all .2s ease}home-page .dashboard-card:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover);border-color:var(--primary-color-light)}home-page .dashboard-card h2{margin:0;font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary)}home-page .dashboard-card p{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.6}@media(min-width:768px){home-page .page-header{margin-bottom:var(--spacing-xl)}home-page h1{font-size:var(--font-size-3xl)}}scheduled-payments-page{display:block;padding:var(--spacing-lg)}scheduled-payments-page .page-header{margin-bottom:var(--spacing-lg)}scheduled-payments-page h1{margin:0;font-size:var(--font-size-2xl);font-weight:600;color:var(--text-primary)}scheduled-payments-page .merchant-form{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:#fff;border:1px solid var(--border-color);border-radius:.5rem;box-shadow:var(--card-shadow)}scheduled-payments-page .merchant-form label{font-weight:600;color:var(--text-primary);font-size:var(--font-size-sm)}scheduled-payments-page .merchant-form input{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:.375rem;font-size:var(--font-size-base);font-family:inherit;transition:all var(--transition-fast);min-height:var(--touch-target-min)}scheduled-payments-page .merchant-form input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-color-lighter)}scheduled-payments-page .merchant-form button{width:100%;min-height:var(--touch-target-min);font-size:var(--font-size-base)}scheduled-payments-page .merchant-form button[type=submit]{background:var(--primary-color);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s}scheduled-payments-page .merchant-form button[type=submit]:hover:not(:disabled){background:var(--primary-color-dark)}scheduled-payments-page .merchant-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}scheduled-payments-page .error-box{background:#fee;border:1px solid #fcc;border-radius:.5rem;padding:var(--spacing-md);margin:var(--spacing-md) 0;color:#c00;font-size:var(--font-size-sm);font-weight:500}scheduled-payments-page .loading-message{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary);font-size:var(--font-size-base)}scheduled-payments-page .controls{margin-bottom:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}scheduled-payments-page .results-count{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500}@media(min-width:768px){scheduled-payments-page .page-header{margin-bottom:var(--spacing-xl)}scheduled-payments-page h1{font-size:var(--font-size-3xl)}scheduled-payments-page .merchant-form{flex-direction:row;align-items:center;padding:var(--spacing-lg)}scheduled-payments-page .merchant-form label{min-width:6.25rem;flex-shrink:0}scheduled-payments-page .merchant-form input{flex:1;max-width:25rem;font-size:var(--font-size-sm);padding:.625rem 1rem}scheduled-payments-page .merchant-form button{width:auto;min-height:2.25rem;font-size:var(--font-size-sm);white-space:nowrap}scheduled-payments-page .controls{flex-direction:row;justify-content:space-between;align-items:center}}empty-state{display:block}empty-state .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}empty-state .icon{font-size:64px;margin-bottom:16px;opacity:.5}empty-state .message{font-size:16px;color:var(--text-secondary);font-weight:500}payment-groups-table{display:block}payment-groups-table .table-container{display:none}payment-groups-table .cards-container{display:flex;flex-direction:column;gap:var(--spacing-md)}payment-groups-table .payment-card{background:#fff;border:1px solid var(--border-color);border-radius:.5rem;padding:var(--spacing-md);box-shadow:var(--card-shadow);transition:box-shadow var(--transition-fast)}payment-groups-table .payment-card.clickable{cursor:pointer}payment-groups-table .payment-card.clickable:hover{box-shadow:var(--card-shadow-hover)}payment-groups-table .payment-card-row{display:flex;justify-content:space-between;align-items:flex-start;padding:.5rem 0;border-bottom:1px solid var(--border-color)}payment-groups-table .payment-card-row:last-child{border-bottom:none}payment-groups-table .payment-card-label{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}payment-groups-table .payment-card-value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:500;text-align:right}@media(min-width:768px){payment-groups-table .cards-container{display:none}payment-groups-table .table-container{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}payment-groups-table .payment-groups-table{width:100%;min-width:900px;border-collapse:collapse;background:#fff;border-radius:.5rem;overflow:hidden;box-shadow:var(--card-shadow);border:1px solid var(--border-color)}payment-groups-table .payment-groups-table thead{background:var(--background)}payment-groups-table .payment-groups-table th{text-align:left;padding:.75rem 1rem;font-weight:600;font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);white-space:nowrap}payment-groups-table .payment-groups-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast)}payment-groups-table .payment-groups-table th.sortable:hover{background:#e9ecef}payment-groups-table .payment-groups-table th.sorted{color:var(--primary-color);background:var(--primary-color-lighter)}payment-groups-table .payment-groups-table .sort-icon{margin-left:.25rem;font-size:var(--font-size-xs);opacity:.5}payment-groups-table .payment-groups-table th.sorted .sort-icon{opacity:1}payment-groups-table .payment-groups-table td{padding:.875rem 1rem;border-bottom:1px solid #f0f0f0;color:var(--text-primary);font-size:var(--font-size-sm)}payment-groups-table .payment-groups-table tbody tr{transition:background-color var(--transition-fast)}payment-groups-table .payment-groups-table tbody tr:hover{background:var(--background)}payment-groups-table .payment-groups-table tbody tr.clickable{cursor:pointer}payment-groups-table .payment-groups-table tbody tr:last-child td{border-bottom:none}}@media(min-width:1024px){payment-groups-table .payment-groups-table th{padding:1rem 1.25rem}payment-groups-table .payment-groups-table td{padding:1rem 1.25rem}}.status-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:.375rem;font-size:var(--font-size-xs);font-weight:600;text-transform:capitalize;white-space:nowrap}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.deleted{background:#fee2e2;color:#991b1b}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.completed{background:#dbeafe;color:#1e40af}.status-badge.failed{background:#fee2e2;color:#991b1b}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg) 0}.pagination-button{padding:.5rem 1rem;background:#fff;border:1px solid var(--border-color);border-radius:.375rem;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);min-height:var(--touch-target-min)}.pagination-button:hover:not(:disabled){background:var(--background);border-color:var(--primary-color);color:var(--primary-color)}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.page-info{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}@media(min-width:768px){.pagination-controls{gap:var(--spacing-lg)}}results-header-component{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-radius:.5rem .5rem 0 0;flex-wrap:wrap;gap:var(--spacing-sm)}results-header-component .left-section{display:flex;align-items:center}results-header-component .results-count{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}results-header-component .per-page-section{display:flex;align-items:center;gap:var(--spacing-sm)}results-header-component .per-page-section label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}results-header-component .per-page-select{padding:.375rem .75rem;border:1px solid var(--border-color);border-radius:.375rem;font-size:var(--font-size-sm);cursor:pointer;min-height:var(--touch-target-min)}results-header-component .per-page-select:focus{outline:none;border-color:var(--primary-color)}@media(min-width:768px){results-header-component{padding:var(--spacing-sm);flex-wrap:nowrap}}search-input{display:block}search-input .search-container{position:relative;width:100%}search-input input{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:.375rem;font-size:var(--font-size-base);font-family:inherit;transition:all var(--transition-fast);background:#fff;min-height:var(--touch-target-min)}search-input input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-color-lighter)}search-input input::placeholder{color:var(--text-secondary)}@media(min-width:768px){search-input .search-container{max-width:25rem}search-input input{font-size:var(--font-size-sm);padding:.625rem 1rem}}
