:root{--cudly-primary:#2563eb;--cudly-primary-hover:#1d4ed8;--cudly-primary-fg:#fff;--cudly-bg:#f5f7fa;--cudly-surface:#fff;--cudly-surface-muted:#f8f9fa;--cudly-border:#e5e7eb;--cudly-border-strong:#d1d5db;--cudly-text:#111827;--cudly-text-muted:#6b7280;--cudly-text-subtle:#9ca3af;--cudly-success:#34a853;--cudly-success-bg:#e8f5e9;--cudly-success-fg:#2e7d32;--cudly-warn:#fbbc04;--cudly-warn-bg:#fff3e0;--cudly-warn-fg:#e65100;--cudly-error:#ea4335;--cudly-error-bg:#fce8e6;--cudly-error-fg:#c5221f;--cudly-info:#2563eb;--cudly-info-bg:#eff6ff;--cudly-font-base:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--cudly-fs-xs:0.75rem;--cudly-fs-sm:0.875rem;--cudly-fs-md:1rem;--cudly-fs-lg:1.125rem;--cudly-fs-xl:1.375rem;--cudly-fs-2xl:1.75rem;--cudly-fs-3xl:2.25rem;--cudly-fw-regular:400;--cudly-fw-medium:500;--cudly-fw-semibold:600;--cudly-fw-bold:700;--cudly-lh-tight:1.2;--cudly-lh-normal:1.5;--cudly-sp-1:0.25rem;--cudly-sp-2:0.5rem;--cudly-sp-3:0.75rem;--cudly-sp-4:1rem;--cudly-sp-5:1.5rem;--cudly-sp-6:2rem;--cudly-sp-7:2.5rem;--cudly-sp-8:3rem;--cudly-r-sm:4px;--cudly-r-md:8px;--cudly-r-lg:12px;--cudly-r-full:9999px;--cudly-shadow-sm:0 1px 2px rgba(15,23,42,.04);--cudly-shadow-md:0 2px 6px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);--cudly-shadow-lg:0 8px 24px rgba(15,23,42,.08);--cudly-topbar-h:56px;--cudly-sidebar-w:232px;--cudly-sidebar-w-collapsed:64px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--cudly-bg);color:var(--cudly-text);font-family:var(--cudly-font-base)}.hidden{display:none!important}.text-muted{color:var(--cudly-text-subtle);font-size:.85rem}.cursor-pointer{cursor:pointer}.ml-xs{margin-left:4px}.savings{color:var(--cudly-success)}.error{background:var(--cudly-error-bg);border-radius:4px;color:var(--cudly-error);padding:1rem}.empty{background:var(--cudly-surface-muted);border-radius:var(--cudly-r-md);color:var(--cudly-text-muted);margin:var(--cudly-sp-3) 0;padding:var(--cudly-sp-5) var(--cudly-sp-4);text-align:center}.page-hero h1,.page-hero h2{color:var(--cudly-text);font-size:var(--cudly-fs-2xl);font-weight:var(--cudly-fw-bold);line-height:var(--cudly-lh-tight);margin-bottom:var(--cudly-sp-2)}.page-hero .page-hero-description{color:var(--cudly-text-muted);font-size:var(--cudly-fs-md);line-height:var(--cudly-lh-normal);margin:0}.page-hero{margin-bottom:var(--cudly-sp-5)}.empty-state{background:var(--cudly-surface);border:1px solid var(--cudly-border);border-radius:var(--cudly-r-md);box-shadow:var(--cudly-shadow-sm);color:var(--cudly-text-muted);padding:var(--cudly-sp-6) var(--cudly-sp-5);text-align:center}.empty-state h3{color:var(--cudly-text);font-size:var(--cudly-fs-lg);font-weight:var(--cudly-fw-semibold);margin-bottom:var(--cudly-sp-2)}.empty-state p{line-height:var(--cudly-lh-normal);margin:0 auto;max-width:560px}.empty-state.hidden{display:none}.help-text{font-size:.875rem;margin-bottom:.75rem}.help-text,.loading{color:var(--cudly-text-muted)}.loading{padding:2rem;text-align:center}.loading.hidden{display:none}.skeleton{animation:cudly-shimmer 1.6s ease-in-out infinite;background:linear-gradient(90deg,var(--cudly-surface-muted) 0,var(--cudly-border) 50%,var(--cudly-surface-muted) 100%);background-size:200% 100%;border-radius:var(--cudly-r-sm);display:block}.skeleton-group{display:flex;flex-direction:column;gap:var(--cudly-sp-3)}.skeleton-tile{min-height:6rem;padding:var(--cudly-sp-4)}.skeleton-tile .skeleton{margin-bottom:var(--cudly-sp-2)}.skeleton-tile .skeleton:last-child{margin-bottom:0}@keyframes cudly-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none;background:var(--cudly-surface-muted)}}.error-message{background:var(--cudly-error-bg);border:1px solid var(--cudly-error);border-radius:4px;color:var(--cudly-error-fg);margin-top:1rem;padding:1rem}.error-message.hidden{display:none}.field-error{color:var(--cudly-error-fg);display:block;font-size:.85em;margin-top:.25rem}.field-error.hidden{display:none}[aria-invalid=true]{border-color:var(--cudly-error);outline-color:var(--cudly-error)}.success-message{background:var(--cudly-success-bg);border:1px solid var(--cudly-success);border-radius:4px;color:var(--cudly-success-fg);margin-top:1rem;padding:1rem}.success-message.hidden{display:none}.warning-message{background:var(--cudly-warn-bg);border:1px solid var(--cudly-warn);border-radius:4px;color:var(--cudly-warn-fg);margin-bottom:1rem;margin-top:1rem;padding:1rem}.warning-message.hidden{display:none}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.admin-only{display:none}.admin-only.visible{display:revert}.requires-purchases{display:none}.requires-purchases.visible{display:revert}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.skip-to-main{background:var(--cudly-primary);border-radius:var(--cudly-r-md);color:var(--cudly-primary-fg);font-weight:var(--cudly-fw-semibold);left:var(--cudly-sp-2);padding:var(--cudly-sp-2) var(--cudly-sp-4);position:absolute;text-decoration:none;top:var(--cudly-sp-2);transform:translateY(-200%);transition:transform .15s ease;z-index:200}.skip-to-main:focus{transform:translateY(0)}.app-shell{background:var(--cudly-bg);display:flex;flex-direction:column;min-height:100vh}.app-topbar{height:var(--cudly-topbar-h);padding:0 var(--cudly-sp-5);position:sticky;top:0;z-index:50}.app-topbar-brand{align-items:center;display:flex;gap:var(--cudly-sp-2)}.app-logo-mark{align-items:center;color:var(--cudly-primary-fg);display:inline-flex}.app-logo{height:24px;width:24px}.app-body{display:flex;flex:1;min-height:calc(100vh - var(--cudly-topbar-h))}.app-sidebar{background:var(--cudly-surface);border-right:1px solid var(--cudly-border);display:flex;flex-direction:column;flex-shrink:0;gap:var(--cudly-sp-2);padding:var(--cudly-sp-3) var(--cudly-sp-2);transition:width .2s ease;width:var(--cudly-sidebar-w)}.app-sidebar.collapsed{width:var(--cudly-sidebar-w-collapsed)}.app-sidebar.collapsed .sidebar-label{display:none}.app-sidebar-toggle{align-items:center;align-self:flex-start;background:transparent;border:none;border-radius:var(--cudly-r-md);color:var(--cudly-text-muted);cursor:pointer;display:inline-flex;margin-bottom:var(--cudly-sp-2);padding:var(--cudly-sp-2) var(--cudly-sp-3)}.app-sidebar-toggle:hover{background:var(--cudly-surface-muted);color:var(--cudly-text)}.app-sidebar-nav{align-items:stretch;background:transparent;border-bottom:none;display:flex;flex-direction:column;gap:2px;margin:0;max-width:none;padding:0}.app-sidebar-nav .tab-btn{align-items:center;background:transparent;border:none;border-radius:var(--cudly-r-md);cursor:pointer;display:flex;font-size:var(--cudly-fs-sm);font-weight:var(--cudly-fw-medium);gap:var(--cudly-sp-3);padding:var(--cudly-sp-2) var(--cudly-sp-3);text-align:left;text-decoration:none;transition:background-color .15s,color .15s;width:100%}.app-sidebar-nav .tab-btn,.app-sidebar-nav .tab-btn:visited{color:var(--cudly-text-muted)}.app-sidebar-nav .tab-btn:hover{background:var(--cudly-surface-muted);color:var(--cudly-text)}.app-sidebar-nav .tab-btn:focus-visible,.app-sidebar-toggle:focus-visible{outline:2px solid var(--cudly-primary);outline-offset:2px}.app-sidebar-nav .tab-btn.active{background:var(--cudly-info-bg);color:var(--cudly-primary)}.app-sidebar-nav .tab-btn .sidebar-icon{flex-shrink:0}.app-sidebar-nav .tab-btn .sidebar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-main{flex:1;margin:0;max-width:none;min-width:0;padding:var(--cudly-sp-5)}@media (max-width:900px){.app-sidebar{width:var(--cudly-sidebar-w-collapsed)}.app-sidebar .sidebar-label{display:none}}header{align-items:center;background:linear-gradient(135deg,var(--cudly-primary) 0,var(--cudly-primary-hover) 100%);color:var(--cudly-primary-fg);display:flex;justify-content:space-between;padding:var(--cudly-sp-3) var(--cudly-sp-5)}header h1{font-size:var(--cudly-fs-lg);font-weight:var(--cudly-fw-semibold)}#user-info{align-items:center;display:flex;gap:1rem}#user-email{border-radius:4px;font-size:.9rem;opacity:.9;padding:.3rem .6rem;transition:background-color .2s,opacity .2s}#user-email:hover{background:hsla(0,0%,100%,.15);opacity:1}#logout-btn{background:transparent;border:1px solid hsla(0,0%,100%,.5);border-radius:var(--cudly-r-sm);color:var(--cudly-primary-fg);cursor:pointer;font-size:.85rem;padding:var(--cudly-sp-2) var(--cudly-sp-3);transition:background-color .2s,border-color .2s}#logout-btn:hover{background:hsla(0,0%,100%,.1);border-color:#fff}.header-link{border-radius:var(--cudly-r-sm);color:var(--cudly-primary-fg);font-size:var(--cudly-fs-sm);padding:var(--cudly-sp-2) var(--cudly-sp-3);text-decoration:none;transition:background-color .2s}.header-link:hover{background:hsla(0,0%,100%,.1)}main{margin:0 auto;max-width:1600px;padding:2rem}#summary{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:2rem}footer{background:var(--cudly-surface-muted);border-top:1px solid var(--cudly-border);margin-top:2rem;padding:1.5rem 2rem;text-align:center}footer a{color:var(--cudly-primary);font-size:.9rem;text-decoration:none}footer a:hover{text-decoration:underline}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.section-header-actions{align-items:center;display:flex;gap:.5rem}.app-topbar-filters{align-items:center;display:flex;gap:var(--cudly-sp-3);margin-left:auto;margin-right:var(--cudly-sp-4)}.card{background:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);padding:1.5rem}.kpi-tile{align-items:end;border:1px solid var(--cudly-border);border-radius:var(--cudly-r-md);box-shadow:var(--cudly-shadow-sm);display:grid;gap:var(--cudly-sp-1) var(--cudly-sp-3);grid-template-areas:"title title" "value spark" "detail spark";grid-template-columns:1fr auto;padding:var(--cudly-sp-4)}.card.kpi-tile h3{color:var(--cudly-text-muted);font-size:var(--cudly-fs-sm);font-weight:var(--cudly-fw-medium);grid-area:title;letter-spacing:.01em;margin-bottom:0}.kpi-tile-value{color:var(--cudly-text);font-size:var(--cudly-fs-2xl);grid-area:value;line-height:var(--cudly-lh-tight);margin:0}.kpi-tile-value.savings{color:var(--cudly-success)}.kpi-tile-detail{color:var(--cudly-text-muted);font-size:var(--cudly-fs-xs);grid-area:detail;margin:0}.kpi-tile-spark{color:var(--cudly-primary);grid-area:spark;height:24px;opacity:.65;width:80px}.kpi-tile{transition:transform .15s ease,box-shadow .15s ease}.kpi-tile:hover{box-shadow:var(--cudly-shadow-md);transform:translateY(-1px)}.kpi-tile[data-kpi=savings] .kpi-tile-spark,.kpi-tile[data-kpi=ytd] .kpi-tile-spark{color:var(--cudly-success)}.card h3{color:var(--cudly-text-muted);font-size:.875rem;margin-bottom:.5rem}.card .value{font-size:1.75rem;font-weight:700}.card .monthly{font-size:.9rem}.card .detail,.card .monthly{color:var(--cudly-text-muted);margin-top:.25rem}.card .detail{font-size:.85rem}.tab-content>.card+.card{margin-top:1rem}button{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:background .2s}button,button:hover{background:var(--cudly-text-muted)}button.primary{background:var(--cudly-primary)}button.primary:hover{background:var(--cudly-primary-hover)}button.success{background:var(--cudly-success)}button.success:hover{background:#2d9048}button.danger{background:var(--cudly-error)}button.danger:hover{background:#d33426}.btn-secondary{background:var(--cudly-bg);border:1px solid var(--cudly-border-strong);color:var(--cudly-text)}.btn-secondary:hover{background:#e8e8e8;border-color:#bbb}.btn{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:background .2s}.btn,.btn:hover{background:var(--cudly-text-muted)}.btn-small{background:#fff;border:1px solid var(--cudly-border-strong);border-radius:4px;color:var(--cudly-text);cursor:pointer;font-size:.85rem;margin-right:.25rem;padding:.25rem .5rem}.btn-small:hover{background:#e8e8e8;border-color:#bbb}.btn-small.primary{background:var(--cudly-primary);border-color:var(--cudly-primary);color:#fff}.btn-small.primary:hover{background:var(--cudly-primary-hover);border-color:var(--cudly-primary-hover)}.btn-small.success{background:var(--cudly-success);border-color:var(--cudly-success);color:#fff}.btn-small.success:hover{background:#2d9048;border-color:#2d9048}.btn-small.warning{background:var(--cudly-warn);border-color:var(--cudly-warn);color:var(--cudly-text)}.btn-small.warning:hover{background:#f9a825;border-color:#f9a825}.btn-small.danger{background:var(--cudly-error-bg);border-color:var(--cudly-error);color:var(--cudly-error-fg)}.btn-small.danger:hover{background:var(--cudly-error);color:#fff}.btn-primary{background:var(--cudly-primary);border:1px solid var(--cudly-primary);color:#fff}.btn-primary:hover{background:var(--cudly-primary-hover);border-color:var(--cudly-primary-hover)}.btn-destructive{background:var(--cudly-error);border:1px solid var(--cudly-error);color:#fff}.btn-destructive:hover{background:var(--cudly-error-fg);border-color:var(--cudly-error-fg)}.btn-tertiary{background:transparent;border:none;color:var(--cudly-primary);padding:.5rem .75rem;text-decoration:none}.btn-tertiary:hover{background:var(--cudly-info-bg);text-decoration:underline}.toast-container{bottom:1rem;display:flex;flex-direction:column;gap:.5rem;max-width:400px;pointer-events:none;position:fixed;right:1rem;z-index:2100}.toast{align-items:start;animation:toast-enter .18s ease-out;background:#fff;border-left:4px solid var(--cudly-text-muted);border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.18);color:#222;display:grid;font-size:.9rem;gap:.5rem;grid-template-columns:auto 1fr auto auto;padding:.75rem 1rem;pointer-events:auto;transition:opacity .18s ease-out,transform .18s ease-out}.toast--leaving{opacity:0;transform:translateX(12px)}.toast--success{border-left-color:var(--cudly-success-fg)}.toast--info{border-left-color:var(--cudly-primary)}.toast--warning{border-left-color:var(--cudly-warn-fg)}.toast--error{border-left-color:var(--cudly-error-fg)}.toast-icon{font-size:1.1rem;font-weight:700;line-height:1.2}.toast--success .toast-icon{color:var(--cudly-success-fg)}.toast--info .toast-icon{color:var(--cudly-primary)}.toast--warning .toast-icon{color:var(--cudly-warn-fg)}.toast--error .toast-icon{color:var(--cudly-error-fg)}.toast-message{line-height:1.35;word-break:break-word}.toast-actions{display:flex;gap:.25rem}.toast-close{align-self:start;background:transparent;border:none;color:var(--cudly-text-muted);cursor:pointer;font-size:1.1rem;line-height:1;padding:0 .25rem}.toast-close:hover{color:#222}@keyframes toast-enter{0%{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.btn-download{cursor:pointer}.btn-download .download-icon{color:var(--cudly-primary);font-weight:700;margin-right:.4rem}.util-green:before{content:"▲ "}.util-yellow:before{content:"■ "}.util-red:before{content:"▼ "}.settings-savebar{background:#fff;border-top:1px solid transparent;bottom:0;margin-top:1rem;padding:1rem;position:sticky;transition:box-shadow .2s,border-color .2s}.settings-savebar.dirty{border-top-color:var(--cudly-border);box-shadow:0 -4px 12px rgba(0,0,0,.08)}.settings-savebar.dirty:before{background:#fff3cd;border-radius:12px;color:#856404;content:"Unsaved changes";display:inline-block;font-size:.8rem;margin-right:.75rem;padding:.25rem .6rem;vertical-align:middle}.tab-btn.has-unsaved:after{background:var(--cudly-error);border-radius:50%;content:"";display:inline-block;height:8px;margin-left:.5rem;vertical-align:middle;width:8px}.trend-range-toggle{display:flex;gap:.25rem}.trend-range.active{background:var(--cudly-primary);border-color:var(--cudly-primary);color:#fff}.accounts-overview{display:flex;flex-wrap:wrap;gap:.75rem;margin:0 0 1rem}.accounts-overview-chip{align-items:baseline;appearance:none;background:var(--cudly-surface);border:1px solid var(--cudly-border-strong);border-radius:8px;color:var(--cudly-text);cursor:pointer;display:flex;gap:.5rem;line-height:1.2;min-width:100px;padding:.5rem .85rem;transition:background .15s,border-color .15s}.accounts-overview-chip:hover{background:var(--cudly-bg);border-color:#4a90e2}.accounts-overview-chip-count{color:var(--cudly-primary);font-size:1.4rem;font-weight:700}.accounts-overview-chip-label{color:var(--cudly-text-muted);font-size:.85rem}.status-chip-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0 .25rem}.status-chip{appearance:none;background:var(--cudly-surface);border:1px solid var(--cudly-border-strong);border-radius:999px;color:var(--cudly-text);cursor:pointer;font-size:.85rem;line-height:1.2;padding:.3rem .75rem}.status-chip:hover{background:var(--cudly-bg)}.status-chip.active{background:var(--cudly-info-bg);border-color:#4a90e2;color:#1a56c4;font-weight:600}.accounts-table{border-collapse:collapse;margin-top:.5rem;width:100%}.accounts-table td,.accounts-table th{border-bottom:1px solid var(--cudly-border);padding:.5rem .75rem;text-align:left;vertical-align:middle}.accounts-table th{background:#fafafa;color:var(--cudly-text-muted);font-size:.85rem;font-weight:500}.account-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem}.account-actions-spacer{border-left:1px solid var(--cudly-border);display:inline-block;height:1.4rem;margin:0 .25rem;width:1.25rem}.accounts-empty{color:var(--cudly-text-muted);font-style:italic;margin:.5rem 0}th.sortable{cursor:pointer;user-select:none}th.sortable:hover{background:var(--cudly-bg)}th.sortable .sort-indicator{color:#bbb;font-size:.75em;margin-left:.35rem}th.sortable .sort-indicator.active{color:var(--cudly-primary)}th .column-filter-btn{background:transparent;border:0;color:#bbb;cursor:pointer;font-size:.85em;line-height:1;margin-left:.35rem;padding:0 .25rem}th .column-filter-btn:hover{color:var(--cudly-primary)}th .column-filter-btn.active{color:var(--cudly-primary);font-weight:700}.column-filter-popover{background:var(--cudly-surface);border:1px solid var(--cudly-border-strong);border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15);max-height:400px;max-width:320px;min-width:220px;overflow-y:auto;padding:.75rem;z-index:1000}.column-filter-popover .column-filter-heading{font-size:.9rem;font-weight:600;margin:0 0 .5rem}.column-filter-popover .column-filter-all{align-items:center;border-bottom:1px solid var(--cudly-border);display:flex;font-weight:500;gap:.5rem;margin-bottom:.5rem;padding:.25rem 0}.column-filter-popover .column-filter-list{max-height:240px;overflow-y:auto}.column-filter-popover .column-filter-item{align-items:center;display:flex;gap:.5rem;padding:.2rem 0}.column-filter-popover .column-filter-numeric-label{color:var(--cudly-text-muted);display:flex;flex-direction:column;font-size:.85em;gap:.25rem}.column-filter-popover .column-filter-numeric-input{border:1px solid var(--cudly-border-strong);border-radius:3px;font-size:.9rem;padding:.35rem .5rem}.column-filter-popover .column-filter-error{color:#d32f2f;font-size:.8em;margin-top:.25rem;min-height:1em}.column-filter-popover .column-filter-footer{border-top:1px solid var(--cudly-border);display:flex;justify-content:flex-end;margin-top:.5rem;padding-top:.5rem}.column-filter-popover .column-filter-clear{background:transparent;border:1px solid var(--cudly-border-strong);border-radius:3px;cursor:pointer;font-size:.85em;padding:.3rem .6rem}.recommendations-filter-status{align-items:center;color:var(--cudly-text-muted);display:flex;font-size:.85em;gap:.75rem;padding:.4rem 0}.recommendations-filter-status .cost-period-selector-wrapper{align-items:center;display:inline-flex;gap:.4rem;white-space:nowrap}.recommendations-filter-status .cost-period-selector-label{color:var(--cudly-text-muted)}.recommendations-filter-status .cost-period-select{font-size:.85em;line-height:1.2;padding:.25rem .6rem}.recommendations-filter-status .clear-filters{background:var(--cudly-info-bg);border:1px solid #a9c7f5;border-radius:3px;color:var(--cudly-primary);cursor:pointer;font-size:.85em;padding:.25rem .6rem}:root{--action-box-height:80px}.recommendations-action-box{align-items:center;background:var(--cudly-surface);border-radius:var(--cudly-r-md) var(--cudly-r-md) 0 0;border-top:1px solid var(--cudly-border);bottom:0;box-shadow:var(--cudly-shadow-md);box-sizing:border-box;display:flex;gap:var(--cudly-sp-4);height:var(--action-box-height);padding:var(--cudly-sp-3) var(--cudly-sp-4);position:sticky;z-index:10}.recommendations-action-box .recommendations-action-summary{color:var(--cudly-text-muted);font-size:var(--cudly-fs-sm);margin-right:auto}.context-drawer{background:var(--cudly-surface);border-left:1px solid var(--cudly-border);bottom:0;box-shadow:var(--cudly-shadow-lg);overflow-y:auto;padding:var(--cudly-sp-5);position:fixed;right:0;top:var(--cudly-topbar-h);transform:translateX(100%);transition:transform .2s ease;width:320px;z-index:20}.context-drawer.open{transform:translateX(0)}.recommendations-action-box label{align-items:center;display:flex;font-size:.9em;gap:.4rem}#recommendations-list{padding-bottom:var(--action-box-height)}tr.recommendation-row{cursor:pointer}tr.recommendation-row:hover{background:#f8f9fb}.recommendations-filter-status .expand-all-toggle{background:transparent;border:1px solid var(--cudly-border-strong);border-radius:3px;color:var(--cudly-text-muted);cursor:pointer;font-size:.85em;padding:.25rem .6rem}.recommendations-filter-status .expand-all-toggle:hover{border-color:var(--cudly-primary);color:var(--cudly-primary)}.recommendations-filter-status .column-visibility-btn{background:transparent;border:1px solid var(--cudly-border-strong);border-radius:3px;color:var(--cudly-text-muted);cursor:pointer;font-size:.85em;padding:.25rem .6rem}.recommendations-filter-status .column-visibility-btn:hover{border-color:var(--cudly-primary);color:var(--cudly-primary)}.recommendations-filter-status .column-visibility-btn[aria-pressed=true]{background:var(--cudly-info-bg);border-color:#a9c7f5;color:var(--cudly-primary)}.recommendations-filter-status .sort-hidden-note{color:var(--cudly-text-muted);font-size:.82em;font-style:italic}.column-visibility-popover{background:var(--cudly-surface);border:1px solid var(--cudly-border-strong);border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.13);max-height:360px;min-width:180px;overflow-y:auto;padding:.6rem .75rem;position:absolute;z-index:1200}.column-visibility-popover .column-visibility-title{color:#444;font-size:.8em;font-weight:600;letter-spacing:.04em;margin:0 0 .4rem;text-transform:uppercase}.column-visibility-popover .column-visibility-row{align-items:center;cursor:pointer;display:flex;font-size:.88em;gap:.5rem;padding:.25rem 0;white-space:nowrap}.column-visibility-popover .column-visibility-row:hover{color:var(--cudly-primary)}.rec-range-banner{background:var(--cudly-info-bg);border-radius:4px;color:#444;font-size:.88em;margin-bottom:.5rem;padding:.4rem .75rem}.info-banner{background:var(--cudly-info-bg,#eaf4ff);border-left:3px solid var(--accent,#4a9eff);border-radius:0 4px 4px 0;color:#333;font-size:.9em;margin-bottom:.75rem;padding:.5rem .75rem}tr.rec-cell-summary-row{background:#f3f6fb;cursor:default}tr.rec-cell-summary-row:hover{background:#eaf0fb}.rec-cell-summary-content{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.rec-cell-chevron{align-items:center;background:transparent;border:none;border-radius:4px;color:var(--cudly-text-muted);cursor:pointer;display:inline-flex;font-size:1.5em;justify-content:center;line-height:1;min-height:32px;min-width:32px;padding:6px;transition:background .15s,color .15s}.rec-cell-chevron:focus-visible,.rec-cell-chevron:hover{background:var(--cudly-info-bg,#eaf0fb);color:var(--cudly-primary);outline:none}.rec-cell-identity{font-size:.9em;font-weight:500}.rec-cell-range,.rec-variants-count{color:var(--cudly-text-muted);font-size:.85em}tr.rec-variant-row td:not(.checkbox-col){background:#fafbfe;font-size:.88em;padding-left:2rem}tr.rec-variant-row:hover td:not(.checkbox-col){background:#f0f4fc}.modal-confirm-backdrop{align-items:center;background:rgba(0,0,0,.45);display:flex;inset:0;justify-content:center;position:fixed;z-index:2000}.modal-confirm{background:#fff;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:480px;min-width:320px;padding:1.5rem;position:relative}.modal-confirm-close{background:none;border:none;color:var(--cudly-text-muted);cursor:pointer;font-size:1.5rem;line-height:1;padding:0 .25rem;position:absolute;right:.75rem;top:.5rem}.modal-confirm-close:hover{color:var(--cudly-primary)}.modal-confirm-title{color:#222;font-size:1.1rem;margin:0 1.5rem .75rem 0}.modal-confirm-body{color:#444;font-size:.95rem;line-height:1.5;margin-bottom:1.25rem}.modal-confirm-actions{display:flex;gap:.5rem;justify-content:flex-end}.modal-confirm:has(.approval-details){max-width:min(1100px,95vw);min-width:min(720px,95vw)}.approval-details{display:flex;flex-direction:column;gap:1rem}.approval-details-fallback{color:#444;font-size:.95rem;line-height:1.5;margin:0}.approval-details-header{background:var(--cudly-surface-2,#f6f8fa);border:1px solid var(--cudly-border,#e1e4e8);border-radius:6px;display:grid;gap:.5rem 1rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));padding:.75rem 1rem}.approval-details-stat{display:flex;flex-direction:column;gap:.15rem}.approval-details-stat-label{color:var(--cudly-text-muted,#6a737d);font-size:.78rem;letter-spacing:.03em;text-transform:uppercase}.approval-details-stat-value{color:#222;font-size:1rem;font-weight:600}.approval-details-table-wrap{border:1px solid var(--cudly-border,#e1e4e8);border-radius:6px;max-height:50vh;overflow-x:auto}.approval-details-table{border-collapse:collapse;font-size:.85rem;width:100%}.approval-details-table td,.approval-details-table th{border-bottom:1px solid var(--cudly-border,#eef0f2);padding:.45rem .65rem;text-align:left;white-space:nowrap}.approval-details-table thead th{background:var(--cudly-surface-2,#f6f8fa);color:var(--cudly-text-muted,#444);font-size:.78rem;font-weight:600;letter-spacing:.02em;position:sticky;text-transform:uppercase;top:0}.approval-details-table tbody tr:last-child td{border-bottom:none}.approval-details-table td.num,.approval-details-table th.num{font-variant-numeric:tabular-nums;text-align:right}.provider-badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .5rem}.provider-badge.aws{background:#f90;color:#232f3e}.provider-badge.azure{background:#0078d4;color:#fff}.provider-badge.gcp{background:#4285f4;color:#fff}.service-badge{background:var(--cudly-info-bg);border-radius:4px;color:var(--cudly-primary);display:inline-block;font-size:.75rem;padding:.2rem .5rem}.status-badge{border-radius:12px;font-size:.8rem;font-weight:600;padding:.25rem .75rem}.status-badge.active{background:var(--cudly-success-bg);color:#137333}.status-badge.paused{background:#ffe0b2;color:#e65100}.status-badge.disabled{background:var(--cudly-bg);color:var(--cudly-text-muted)}.cost-chip{background:#f0f2f5;border-radius:12px;color:var(--cudly-text);display:inline-block;font-family:var(--mono-font,ui-monospace,monospace);font-size:.78rem;margin-right:.25rem;padding:.2rem .55rem}.exchange-running-total{color:var(--cudly-text-muted);font-size:.9rem;font-style:italic}.recommendations-toolbar{display:flex;justify-content:flex-end;margin:.5rem 0}.recommendations-toolbar:empty{display:none}.lookback-control{align-items:center;display:inline-flex;gap:.4rem}.info-icon,.lookback-control{color:var(--cudly-text-muted);font-size:.85rem}.info-icon{cursor:help;display:inline-block;position:relative}.info-icon:hover{color:var(--cudly-primary)}.info-icon .tooltip-text{background-color:var(--cudly-text);border-radius:6px;bottom:125%;box-shadow:0 2px 8px rgba(0,0,0,.2);color:var(--cudly-surface);font-size:.8rem;font-weight:400;left:50%;line-height:1.4;opacity:0;padding:.75rem;position:absolute;text-align:left;transform:translateX(-50%);transition:opacity .2s,visibility .2s;visibility:hidden;white-space:normal;width:250px;z-index:1000}.info-icon .tooltip-text:after{border-color:var(--cudly-text) transparent transparent transparent;border-style:solid;border-width:6px;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.info-icon:hover .tooltip-text{opacity:1;visibility:visible}.role-badge{background:hsla(0,0%,100%,.18);border-radius:999px;color:hsla(0,0%,100%,.95);font-size:.75rem;font-weight:600;letter-spacing:.02em;margin-left:.4rem;padding:.15rem .5rem;text-transform:lowercase}.badge-admin{background:var(--cudly-info-bg);color:var(--cudly-primary)}.badge-admin,.badge-user{border-radius:4px;display:inline-block;font-size:.8rem;font-weight:600;padding:.2rem .5rem}.badge-user{background:var(--cudly-border);color:var(--cudly-text-muted)}.badge-readonly{background:var(--cudly-bg);border-radius:4px;color:#999;padding:.2rem .5rem}.badge,.badge-readonly{display:inline-block;font-size:.8rem;font-weight:600}.badge{border-radius:999px;letter-spacing:.01em;padding:.2rem .55rem}.badge-success{background:var(--cudly-success-bg);color:#137333}.badge-warning{background:#fef7e0;color:#8a6d0c}.badge-danger{background:var(--cudly-error-bg);color:var(--cudly-error-fg)}.badge-muted{background:var(--cudly-border);color:var(--cudly-text-muted)}.badge-info{background:var(--cudly-info-bg);color:var(--cudly-primary)}.history-approver{color:var(--cudly-text-muted);font-size:.78rem;line-height:1.25;margin-top:.35rem}.history-approver strong{color:var(--cudly-text);font-weight:600}.status-badge.completed{background:var(--cudly-success-bg);color:#137333}.status-badge.pending{background:var(--cudly-info-bg);color:var(--cudly-primary)}.status-badge.failed{background:var(--cudly-error-bg);color:var(--cudly-error-fg)}.status-badge.running{background:#ffe0b2;color:#e65100}.copy-btn{background:none;border:none;border-radius:4px;cursor:pointer;padding:.25rem;transition:background .2s}.copy-btn:hover{background:var(--cudly-border)}.copy-btn .copy-icon{font-size:1rem}.copy-btn.copied{color:#4caf50}.input-with-copy{align-items:center;display:inline-flex;gap:.25rem;width:100%}.input-with-copy .code-block,.input-with-copy input[type=text]{background:var(--cudly-bg);color:var(--cudly-text);flex:1}.input-with-copy .code-block{border:1px solid var(--cudly-border-strong);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.4;margin:0;max-height:240px;overflow:auto;padding:.5rem .75rem;white-space:pre-wrap;word-break:break-word}.trust-policy-section{margin-top:.75rem}.trust-policy-section #account-aws-iam-console-link{display:inline-block;margin-top:.5rem}.cli-command{align-items:center;background:#f8f9fa;border:1px solid var(--cudly-border);border-radius:4px;display:flex;gap:.5rem;padding:.5rem .75rem}.cli-command code{background:none;color:var(--cudly-text);flex:1;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;padding:0}.cli-alternative{border-top:1px solid var(--cudly-border);margin-top:1.5rem;padding-top:1rem}.cli-alternative p{color:var(--cudly-text-muted);font-size:.85rem;margin-bottom:.5rem}.chip-select-root{display:inline-block;position:relative}.chip-select{align-items:center;background:var(--cudly-surface);border:1px solid var(--cudly-border-strong);border-radius:var(--cudly-r-full);color:var(--cudly-text);cursor:pointer;display:inline-flex;font-size:var(--cudly-fs-sm);gap:var(--cudly-sp-2);padding:.4rem .9rem;transition:border-color .15s,box-shadow .15s,background-color .15s}.chip-select:hover{border-color:var(--cudly-primary)}.chip-select:focus-visible{border-color:var(--cudly-primary);box-shadow:0 0 0 3px var(--cudly-info-bg);outline:none}.chip-select[aria-expanded=true]{background:var(--cudly-info-bg);border-color:var(--cudly-primary)}.chip-select-label{color:var(--cudly-text-muted)}.chip-select-value{font-weight:var(--cudly-fw-medium)}.chip-select-caret{transition:transform .15s ease}.chip-select[aria-expanded=true] .chip-select-caret{transform:rotate(180deg)}.chip-select-menu{background:var(--cudly-surface);border:1px solid var(--cudly-border);border-radius:var(--cudly-r-md);box-shadow:var(--cudly-shadow-lg);left:0;max-height:320px;max-width:320px;min-width:200px;overflow-y:auto;padding:var(--cudly-sp-1);position:absolute;top:calc(100% + var(--cudly-sp-1));z-index:60}.chip-select-menu.chip-select-menu-up{bottom:calc(100% + var(--cudly-sp-1));top:auto}.chip-select-search{border:1px solid var(--cudly-border);border-radius:var(--cudly-r-sm);box-sizing:border-box;font-size:var(--cudly-fs-sm);margin-bottom:var(--cudly-sp-1);padding:var(--cudly-sp-2) var(--cudly-sp-3);width:100%}.chip-select-search:focus-visible{border-color:var(--cudly-primary);box-shadow:0 0 0 2px var(--cudly-info-bg);outline:none}.chip-select-options{list-style:none;margin:0;padding:0}.chip-select-option{border-radius:var(--cudly-r-sm);color:var(--cudly-text);cursor:pointer;font-size:var(--cudly-fs-sm);padding:var(--cudly-sp-2) var(--cudly-sp-3);user-select:none}.chip-select-option.active,.chip-select-option:hover{background:var(--cudly-info-bg);color:var(--cudly-primary)}.chip-select-option.current{font-weight:var(--cudly-fw-semibold)}.chip-select-option.current:after{color:var(--cudly-primary);content:"✓";float:right}.chip-select-empty{color:var(--cudly-text-muted);font-size:var(--cudly-fs-sm);font-style:italic;padding:var(--cudly-sp-3);text-align:center}select{background:#fff;border:1px solid var(--cudly-border-strong);border-radius:4px;font-size:.9rem;padding:.5rem}label{color:var(--cudly-text);display:block;font-weight:500;margin-bottom:.5rem}.controls-bar{gap:var(--cudly-sp-3);justify-content:space-between;margin-bottom:var(--cudly-sp-4);padding:0}.controls-bar,.filter-group{align-items:center;display:flex;flex-wrap:wrap}.filter-group{gap:1rem}.filter-group label{align-items:center;color:var(--cudly-text-muted);display:flex;font-size:.9rem;gap:.5rem}#history-controls input[type=date],#history-controls select,.controls-bar>input,.controls-bar>label>input,.controls-bar>label>select,.controls-bar>select,.date-range-picker input[type=date],.date-range-picker input[type=text],.date-range-picker select,.filter-group input,.filter-group select{background:var(--cudly-surface);border:1px solid var(--cudly-border-strong);border-radius:var(--cudly-r-full);color:var(--cudly-text);cursor:pointer;font-size:var(--cudly-fs-sm);padding:.4rem .9rem;transition:border-color .15s,background-color .15s,box-shadow .15s}#history-controls input[type=date]:hover,#history-controls select:hover,.controls-bar>input:hover,.controls-bar>label>input:hover,.controls-bar>label>select:hover,.controls-bar>select:hover,.date-range-picker input[type=date]:hover,.date-range-picker input[type=text]:hover,.date-range-picker select:hover,.filter-group input:hover,.filter-group select:hover{border-color:var(--cudly-primary)}#history-controls input[type=date]:focus-visible,#history-controls select:focus-visible,.controls-bar>input:focus-visible,.controls-bar>label>input:focus-visible,.controls-bar>label>select:focus-visible,.controls-bar>select:focus-visible,.date-range-picker input[type=date]:focus-visible,.date-range-picker input[type=text]:focus-visible,.date-range-picker select:focus-visible,.filter-group input:focus-visible,.filter-group select:focus-visible{border-color:var(--cudly-primary);box-shadow:0 0 0 3px var(--cudly-info-bg);outline:none}#history-controls input[type=date]::-webkit-calendar-picker-indicator,.date-range-picker input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.55;transition:opacity .15s}#history-controls input[type=date]:focus-visible::-webkit-calendar-picker-indicator,#history-controls input[type=date]:hover::-webkit-calendar-picker-indicator,.date-range-picker input[type=date]:focus-visible::-webkit-calendar-picker-indicator,.date-range-picker input[type=date]:hover::-webkit-calendar-picker-indicator{opacity:1}.action-group{display:flex;gap:.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--cudly-border-strong);border-radius:4px;padding:.5rem;width:100%}.form-help{color:var(--cudly-text-muted);font-size:.8rem;margin-top:.25rem}.toggle-label{display:inline-block;height:26px;position:relative;width:50px}.toggle-label input{height:0;opacity:0;width:0}.slider{background-color:var(--cudly-border-strong);border-radius:26px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.3s}.slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:20px;left:3px;width:20px}input:checked+.slider{background-color:var(--cudly-success)}input:checked+.slider:before{transform:translateX(24px)}.form-section{border-bottom:1px solid var(--cudly-border);margin-bottom:1.5rem;padding-bottom:1rem}.form-section:last-of-type{border-bottom:none}.form-section h3{color:var(--cudly-primary);font-size:1rem;margin-bottom:1rem}.form-row{display:flex;gap:1rem}.form-row label{flex:1}.date-range-picker{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1rem}.date-range-picker label{align-items:center;color:var(--cudly-text-muted);display:flex;font-size:.9rem;gap:.5rem}.date-range-picker input[type=date],.date-range-picker select{border:1px solid var(--cudly-border-strong);border-radius:4px;font-size:.9rem;padding:.5rem}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input[type=password],.password-input-wrapper input[type=text]{border:1px solid var(--cudly-border-strong);border-radius:4px;font-size:.9rem;margin-top:.25rem;padding:.5rem 2.5rem .5rem .5rem;width:100%}.toggle-password{align-items:center;background:none;border:none;color:var(--cudly-text-muted);cursor:pointer;display:flex;justify-content:center;padding:.25rem;position:absolute;right:.5rem;top:50%;transform:translateY(-50%);transition:color .2s}.toggle-password:hover{color:var(--cudly-primary)}.toggle-password:focus{border-radius:4px;outline:2px solid var(--cudly-primary);outline-offset:2px}.eye-icon{height:20px;width:20px}.password-requirements{background:var(--cudly-surface-muted);border:1px solid #dee2e6;border-radius:4px;font-size:.875rem;margin:.75rem 0 1rem;padding:.75rem}.requirement{align-items:center;display:flex;margin:.4rem 0;transition:all .2s ease}.requirement .req-icon{border-radius:50%;display:inline-block;font-size:.75rem;font-weight:700;height:1.25rem;line-height:1.25rem;margin-right:.5rem;text-align:center;width:1.25rem}.requirement.unmet{color:var(--cudly-text-muted)}.requirement.unmet .req-icon{color:var(--cudly-text-subtle)}.requirement.met{color:var(--cudly-success-fg)}.requirement.met .req-icon{background:var(--cudly-success-bg);color:var(--cudly-success)}.checkbox-col{text-align:center;width:40px}.checkbox-col input[type=checkbox]{cursor:pointer;height:18px;width:18px}tr.selected{background:var(--cudly-info-bg)!important}table{background:var(--cudly-surface);border-collapse:collapse;border-radius:var(--cudly-r-md);box-shadow:0 2px 4px rgba(0,0,0,.1);overflow:visible;width:100%}td,th{border-bottom:1px solid var(--cudly-border);font-size:.9rem;padding:.75rem;text-align:left}th{background:var(--cudly-surface-muted);font-weight:600}tr:hover{background:#f1f3f4}tr.high-savings{border-left:3px solid var(--cudly-success)}tr.medium-savings{border-left:3px solid var(--cudly-warn)}tr.history-row-highlight{animation:history-row-flash 1.2s ease-out 1;background:#fff8c4}tr.history-row-highlight:hover{background:#fff3a0}@keyframes history-row-flash{0%{background:#fff080}50%{background:#fff8c4}to{background:#fff8c4}}#history-summary,#recommendations-summary{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}#planned-purchases-header{border-top:1px solid var(--cudly-border);margin-top:2rem;padding-top:2rem}#planned-purchases-header h2{margin-bottom:.5rem}#planned-purchases-header .help-text{color:var(--cudly-text-muted);font-size:.9rem;margin-bottom:1rem}.planned-purchases-table{background:var(--cudly-surface);border-collapse:collapse;border-radius:var(--cudly-r-md);box-shadow:0 2px 4px rgba(0,0,0,.1);overflow:hidden;width:100%}.planned-purchases-table td,.planned-purchases-table th{border-bottom:1px solid var(--cudly-border);padding:.75rem 1rem;text-align:left}.planned-purchases-table th{color:var(--cudly-text-muted);font-size:.85rem;font-weight:600}.planned-purchases-table tbody tr:hover,.planned-purchases-table th{background:var(--cudly-surface-muted)}.planned-purchase-row .plan-name{display:block;font-weight:500}.planned-purchase-row .step-info{color:var(--cudly-text-muted);font-size:.8rem}.planned-purchase-row .actions{white-space:nowrap}.status-pending{color:#856404}.status-paused{color:#9e9e9e}.status-running{color:var(--cudly-primary)}.status-completed{color:var(--cudly-success)}.status-failed{color:var(--cudly-error)}.planned-purchases-table .status-badge{border-radius:4px;font-size:.8rem;font-weight:500;padding:.25rem .5rem;text-transform:capitalize}.planned-purchases-table .status-badge.status-pending{background:#fef3cd;color:#856404}.planned-purchases-table .status-badge.status-paused{background:#e9ecef;color:#495057}.planned-purchases-table .status-badge.status-running{background:#cce5ff;color:#004085}.planned-purchases-table .status-badge.status-completed{background:#d4edda;color:#155724}.planned-purchases-table .status-badge.status-failed{background:#f8d7da;color:#721c24}.modal{align-items:center;background:rgba(0,0,0,.5);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal.hidden{display:none}.modal-content{background:#fff;border-radius:8px;max-height:90vh;max-width:90%;overflow-y:auto;padding:2rem;width:500px}.modal-wide{max-width:95vw;width:800px}.modal-content h2{color:var(--cudly-text);margin-bottom:1.5rem}.modal-content label{color:var(--cudly-text);display:block;margin-bottom:1rem}.modal-content input[type=email],.modal-content input[type=number],.modal-content input[type=text],.modal-content select,.modal-content textarea{border:1px solid var(--cudly-border-strong);border-radius:4px;font-size:.9rem;margin-top:.25rem;padding:.5rem;width:100%}.modal-content textarea{min-height:80px;resize:vertical}.modal-buttons{border-top:1px solid var(--cudly-border);display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem}.modal-description{color:var(--cudly-text-muted);font-size:.9rem;margin-bottom:1rem}.modal-overlay{align-items:center;background:rgba(0,0,0,.5);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-hint{background:var(--cudly-surface-muted);border-radius:4px;font-size:.9rem;margin-bottom:1.5rem;padding:1rem}.modal-hint a{color:var(--cudly-primary);font-weight:500;text-decoration:none}.modal-hint a:hover{text-decoration:underline}.modal-content h4{color:var(--cudly-text);font-size:.95rem;margin:0 0 .75rem}.prereq-section{background:#f0f7ff;border:1px solid #b3d4fc;border-radius:6px;margin-bottom:1.5rem;padding:1rem}.prereq-section h4{color:var(--cudly-primary);font-size:.95rem;margin:0 0 .5rem}.prereq-description{color:var(--cudly-text-muted);font-size:.85rem;margin-bottom:.75rem}.prereq-section .cli-command{margin-bottom:.5rem}.prereq-section .cli-command code{font-size:.8rem;word-break:break-all}.prereq-hint{color:var(--cudly-text-muted);font-size:.8rem;font-style:italic;margin-bottom:0;margin-top:.75rem}.purchase-modal-commits{border:1px solid var(--cudly-border);border-radius:4px;margin-bottom:1rem;max-height:55vh;overflow-y:auto}.purchase-modal-table thead th{background:var(--cudly-surface-muted);position:sticky;top:0;z-index:1}.purchase-modal-table tfoot tr{background:#f0f4ff;bottom:0;position:sticky;z-index:1}.purchase-modal-totals td{border-top:2px solid #c5d3f0;font-size:.85rem}.purchase-modal-include-label{color:var(--cudly-text-muted);display:block;font-size:.8rem;margin-top:2px}.purchase-modal-resource-type{color:var(--cudly-text-muted);font-size:.85em}.archera-cta{color:#888;font-size:.82rem;line-height:1.4;margin-bottom:0;margin-top:.75rem}.archera-cta-link{background:none;border:none;color:#1a73e8;cursor:pointer;font-family:inherit;font-size:inherit;line-height:inherit;padding:0;text-decoration:underline}.archera-cta-link:hover{background:none;color:#1557b0}#archera-page-container{background:#fff;inset:0;overflow-y:auto;position:fixed;z-index:1100}.archera-page-inner{margin:0 auto;max-width:720px;padding:2rem 1.5rem 3rem}.archera-page-inner h1{color:#333;font-size:1.6rem;margin:1rem 0 1.25rem}.archera-page-inner h2{color:#444;font-size:1.1rem;margin:1.5rem 0 .5rem}.archera-page-lead{color:#555;font-size:1rem;line-height:1.6;margin-bottom:1rem}.archera-page-inner section{margin-bottom:1.25rem}.archera-page-inner ol,.archera-page-inner ul{color:#555;line-height:1.7;padding-left:1.5rem}.archera-steps{margin-bottom:1.25rem}.archera-steps li{margin-bottom:.5rem}.archera-page-crosslink{margin-bottom:.5rem;margin-top:1.5rem}.archera-page-back{background:none;border:none;color:#555;cursor:pointer;font-family:inherit;font-size:.9rem;padding:0;text-decoration:underline}.archera-page-back:hover{background:none;color:#333}.archera-signup-block{background:#f0f7ff;border:1px solid #b3d4fc;border-radius:6px;margin-top:2rem;padding:1.25rem 1.5rem;text-align:center}.archera-signup-btn{background:#1a73e8;border-radius:4px;color:#fff;display:inline-block;font-size:1rem;font-weight:500;padding:.65rem 1.5rem;text-decoration:none;transition:background .2s}.archera-signup-btn:hover{background:#1557b0;color:#fff;text-decoration:none}.archera-signup-note{color:#888;font-size:.8rem;margin-top:.75rem}#archera-offer-modal-container{align-items:center;display:flex;inset:0;justify-content:center;position:fixed;z-index:1050}.archera-offer-backdrop{background:rgba(0,0,0,.45);inset:0;position:absolute}.archera-offer-panel{background:#fff;border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.25);max-height:90vh;max-width:440px;overflow-y:auto;padding:1.5rem 1.75rem;position:relative;width:calc(100% - 2rem)}.archera-offer-title{color:#222;font-size:1.15rem;line-height:1.35;margin:0 0 .6rem}.archera-offer-lead{color:#444;font-size:.92rem;line-height:1.5;margin:0 0 .75rem}.archera-offer-disclosure{color:#777;font-size:.82rem;font-style:italic;margin:0 0 1rem}.archera-offer-actions{align-items:center;display:flex;gap:.6rem;justify-content:flex-end;margin:.25rem 0 0}.archera-offer-skip{background:#fff;border:1px solid #d0d7de;border-radius:4px;color:#444;cursor:pointer;font-family:inherit;font-size:.92rem;padding:.55rem 1rem}.archera-offer-skip:hover{background:#f4f5f7;color:#222}.archera-offer-signup{background:#1a73e8;border-radius:4px;color:#fff;display:inline-block;font-size:.92rem;font-weight:500;padding:.55rem 1.1rem;text-decoration:none;transition:background .2s}.archera-offer-signup:hover{background:#1557b0;color:#fff;text-decoration:none}.archera-offer-learnmore{font-size:.85rem;margin:0 0 1rem}.archera-offer-learnmore-summary{align-items:center;color:#1a73e8;cursor:pointer;display:flex;font-size:.85rem;gap:.5em;justify-content:space-between;list-style:none;padding:.25rem 0;user-select:none}.archera-offer-learnmore-summary::-webkit-details-marker{display:none}.archera-offer-learnmore-summary:after{color:#888;content:"▸";display:inline-block;transition:transform .15s ease}.archera-offer-learnmore[open]>.archera-offer-learnmore-summary:after{transform:rotate(90deg)}.archera-offer-learnmore-summary:hover{color:#1557b0}.archera-offer-learnmore-body{border-top:1px solid #e0e3e8;color:#444;font-size:.9rem;margin-top:.5rem;padding:.5rem 0 0}.archera-offer-learnmore .archera-page-inner{max-width:none;padding:.5rem 0 0}.tabs{background:#fff;border-bottom:2px solid var(--cudly-border);display:flex;margin:0 auto;max-width:1600px;padding:0 2rem}.tab-btn{background:none;border:none;border-bottom:3px solid transparent;border-radius:0;color:var(--cudly-text-muted);cursor:pointer;font-size:1rem;padding:1rem 1.5rem}.tab-btn:hover{background:var(--cudly-bg);color:var(--cudly-primary)}.tab-btn.active{border-bottom-color:var(--cudly-primary);color:var(--cudly-primary);font-weight:600}.tab-content{display:none}.tab-content.active{display:block}.chart-section{margin-bottom:2rem}.chart-section h3{color:var(--cudly-text);margin-bottom:1rem}.chart-section canvas{max-height:300px;min-height:280px}#savings-by-service-chart{max-height:600px;min-height:560px}.chart-section .empty{align-items:center;display:flex;justify-content:center;min-height:200px}.chart-container{margin-top:1rem;min-height:250px;position:relative;width:100%}.stats-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1rem}.stat-card{background:var(--cudly-surface-muted);border-radius:var(--cudly-r-md);padding:var(--cudly-sp-4);text-align:center}.stat-card h4{color:var(--cudly-text-muted);font-size:var(--cudly-fs-xs);margin-bottom:var(--cudly-sp-2)}.stat-value{color:var(--cudly-primary);font-size:var(--cudly-fs-xl);font-weight:var(--cudly-fw-bold)}.stat-unit-context{color:var(--cudly-text-muted);font-size:.85rem;margin-top:.25rem}#plans-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}#plans-header h2{margin:0}.plan-card{background:var(--cudly-surface);border-radius:var(--cudly-r-md);box-shadow:var(--cudly-shadow-sm);margin-bottom:1rem;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.plan-card:hover{box-shadow:var(--cudly-shadow-md);transform:translateY(-1px)}.plan-header{align-items:center;background:var(--cudly-surface-muted);border-bottom:1px solid var(--cudly-border);display:flex;justify-content:space-between;padding:1rem 1.5rem}.plan-header h3{color:var(--cudly-text);margin:0}.plan-status{align-items:center;display:flex;gap:.5rem}.plan-body{padding:1.5rem}.plan-details{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1rem}.plan-detail{display:flex;flex-direction:column}.plan-detail-label{color:var(--cudly-text-muted);font-size:.8rem;margin-bottom:.25rem}.plan-detail-value{color:var(--cudly-text);font-weight:600}.plan-actions{border-top:1px solid var(--cudly-border);display:flex;gap:.5rem;padding-top:1rem}#upcoming-purchases{margin-top:2rem}#upcoming-purchases h2{margin-bottom:1rem}.upcoming-card{align-items:center;background:var(--cudly-surface);border-left:4px solid var(--cudly-primary);border-radius:var(--cudly-r-md);box-shadow:var(--cudly-shadow-sm);display:flex;justify-content:space-between;margin-bottom:var(--cudly-sp-3);padding:var(--cudly-sp-4) var(--cudly-sp-5);transition:transform .15s ease,box-shadow .15s ease}.upcoming-card:hover{box-shadow:var(--cudly-shadow-md);transform:translateY(-1px)}.upcoming-info{align-items:center;display:flex;gap:2rem}.upcoming-date{min-width:80px;text-align:center}.upcoming-date .day{color:var(--cudly-primary);font-size:1.5rem;font-weight:700}.upcoming-date .month{color:var(--cudly-text-muted);font-size:.8rem}.upcoming-details h4{color:var(--cudly-text);margin:0 0 .25rem}.upcoming-details p{color:var(--cudly-text-muted);font-size:.9rem;margin:0}.upcoming-savings{text-align:right}.upcoming-savings .amount{color:var(--cudly-success);font-size:1.25rem;font-weight:700}.upcoming-savings .label{color:var(--cudly-text-muted);font-size:.8rem}.ramp-options{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:.5rem}.ramp-option{border:2px solid var(--cudly-border-strong);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;padding:1rem;transition:all .2s}.ramp-option:hover{border-color:var(--cudly-primary)}.ramp-option input[type=radio]{display:none}.ramp-option:has(input:checked){background:var(--cudly-info-bg);border-color:var(--cudly-primary)}.ramp-label{color:var(--cudly-text);font-weight:600;margin-bottom:.25rem}.ramp-desc{color:var(--cudly-text-muted);font-size:.8rem}#custom-ramp-config{background:var(--cudly-surface-muted);border-radius:8px;margin-top:1rem;padding:1rem}.inventory-subnav,.settings-tabs{border-bottom:2px solid var(--cudly-border);display:flex;margin-bottom:1.5rem}.sub-tab-btn{background:none;border:none;border-bottom:3px solid transparent;border-radius:0;color:var(--cudly-text-muted);cursor:pointer;font-size:.9rem;padding:.65rem 1.25rem;transition:color .15s}.sub-tab-btn:hover{background:var(--cudly-bg);color:var(--cudly-primary)}.sub-tab-btn.active{border-bottom-color:var(--cudly-primary);color:var(--cudly-primary);font-weight:600}.sub-tab-btn:focus-visible{border-radius:var(--cudly-r-sm);outline:2px solid var(--cudly-primary);outline-offset:-2px}#accounts-section h2,#purchasing-panel h2,#settings-section h2,#users-section h2{color:var(--cudly-text);margin-bottom:.5rem}.settings-description{color:var(--cudly-text-muted);margin-bottom:1.5rem}.settings-form{display:block}.settings-form.hidden{display:none}.settings-category{border:1px solid var(--cudly-border);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.settings-category legend{color:var(--cudly-primary);font-size:1.1rem;font-weight:600;padding:0 .5rem}.setting-row{align-items:center;border-bottom:1px solid var(--cudly-border);display:flex;justify-content:space-between;padding:1rem 0}.setting-row:last-child{border-bottom:none}.setting-info{align-items:center;display:flex;flex:1;gap:.5rem}.setting-info .label-like,.setting-info label{color:var(--cudly-text);font-weight:500;margin:0}.setting-input{align-items:center;display:flex;gap:1rem}.setting-input input[type=email],.setting-input input[type=number],.setting-input input[type=text],.setting-input select{border:1px solid var(--cudly-border-strong);border-radius:4px;font-size:.9rem;min-width:200px;padding:.5rem}.setting-input input[type=number]{min-width:100px}.credential-status{background:var(--cudly-bg);border-radius:4px;color:var(--cudly-text-muted);font-size:.9rem;padding:.25rem .75rem}.credential-status.configured{background:var(--cudly-success-bg);color:#137333}.settings-buttons{border-top:1px solid var(--cudly-border);display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1rem}.setting-row.sub-setting{border-left:2px solid var(--cudly-border);margin-left:2rem;padding-left:1rem}.settings-help{color:var(--cudly-text-muted);font-size:.85rem;font-style:italic;margin-bottom:1rem}.subsection-title{border-bottom:1px solid var(--cudly-border);color:var(--cudly-text);font-size:.95rem;font-weight:600;margin:1.5rem 0 1rem;padding-bottom:.5rem}.provider-settings{background:var(--cudly-surface-muted)}.provider-settings.hidden{display:none}.provider-settings legend{align-items:center;display:flex;gap:.5rem}.service-defaults-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.service-default-card{background:#fff;border:1px solid var(--cudly-border);border-radius:8px;padding:1rem}.service-default-card h5{color:var(--cudly-text);font-size:.9rem;font-weight:600;margin:0 0 .75rem}.service-default-card .service-default-hint{color:var(--cudly-text-muted);font-size:.75rem;line-height:1.3;margin:-.5rem 0 .75rem}.service-default-card label{align-items:center;color:var(--cudly-text-muted);display:flex;font-size:.85rem;gap:.5rem;margin-bottom:.5rem}.service-default-card label:last-child{margin-bottom:0}.service-default-card select{border:1px solid var(--cudly-border-strong);border-radius:4px;flex:1;font-size:.85rem;padding:.35rem}.fieldset-save-bar{border-top:1px solid var(--cudly-border);display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem}input.dirty,select.dirty{background-color:#fff8e1!important;border-color:#f4a261!important;box-shadow:0 0 0 2px rgba(244,162,97,.25)}.setting-input.dirty{background-color:#fff8e1;border-radius:4px;outline:2px solid #f4a261;outline-offset:2px;padding:2px 8px}.federation-section{background:#f0f7ff;border:1px solid #c8dff8;border-radius:8px;margin-top:1.5rem;padding:1rem}.federation-hint{color:var(--cudly-text-muted);font-size:.85rem;margin:0 0 .75rem}.federation-accounts{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.target-cloud-row{align-items:center;border-bottom:1px solid var(--cudly-border);display:flex;gap:.5rem;padding:1rem 0}.target-cloud-row label{color:var(--cudly-text);font-weight:500;margin:0}.target-cloud-pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:.5rem}.target-cloud-pills .target-cloud-pill{background:#f4f8fd;border:1px solid #c8d6ea;color:#355273;font-weight:500;min-width:4.5rem}.target-cloud-pills .target-cloud-pill.selected,.target-cloud-pills .target-cloud-pill[aria-pressed=true]{background:var(--cudly-primary-hover);border-color:var(--cudly-primary-hover);color:#fff}.federation-format-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.federation-format-buttons .btn-multiline{align-items:flex-start;display:inline-flex;flex:1 1 11rem;flex-direction:column;line-height:1.2;padding:.5rem .75rem;text-align:left}.federation-format-buttons .btn-multiline .label{font-weight:600}.federation-format-buttons .btn-multiline .sublabel{font-size:.72rem;font-weight:400;margin-top:.15rem;opacity:.72}.federation-account-row{align-items:center;background:#fff;border:1px solid #dce8f8;border-radius:6px;display:flex;gap:1rem;justify-content:space-between;padding:.5rem .75rem}.self-account-banner{border-left:3px solid var(--accent,#4a9eff);margin-bottom:8px;padding:8px 12px}.federation-account-info{align-items:baseline;display:flex;gap:.5rem;min-width:0}.federation-account-name{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.federation-account-id{color:var(--cudly-text-muted);font-size:.8rem;white-space:nowrap}.federation-account-actions{display:flex;flex-shrink:0;gap:.5rem}.federation-empty{color:var(--cudly-text-muted);font-size:.85rem;font-style:italic;margin:0;padding:.5rem 0}.provider-disabled{pointer-events:none}.provider-disabled>:not(.provider-disabled-banner){opacity:.5}.provider-disabled-banner{background:#fff3cd;border:1px solid #ffecb5;border-radius:4px;color:#664d03;display:none;font-size:.9rem;margin-bottom:.75rem;padding:.5rem .75rem;pointer-events:auto}.provider-disabled .provider-disabled-banner{display:block}.group-card{background:#fff;border:1px solid var(--cudly-border);border-radius:8px;margin-bottom:1rem;padding:1.25rem}.group-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.75rem}.group-card-header h4{margin:0 0 .25rem}.group-card-header .group-description{color:var(--cudly-text-muted);font-size:.85rem;margin:0}.group-card-actions{align-items:center;display:flex;flex-shrink:0;gap:.5rem}.permission-badge{background:var(--cudly-info-bg);border-radius:4px;color:var(--cudly-primary);font-family:monospace;margin:.15rem;padding:.2rem .5rem}.member-pill,.permission-badge{display:inline-block;font-size:.8rem}.member-pill{background:var(--cudly-border);border-radius:10px;color:var(--cudly-text-muted);margin:.1rem;padding:.15rem .4rem}.group-members{border-top:1px solid var(--cudly-border);margin-top:.75rem;padding-top:.75rem}.permission-matrix{border-collapse:collapse;font-size:.85rem;width:100%}.permission-matrix td,.permission-matrix th{border:1px solid var(--cudly-border);padding:.4rem .6rem;text-align:center}.permission-matrix th{background:var(--cudly-bg);font-weight:600}.permission-matrix td:first-child{font-family:monospace;text-align:left}.permission-matrix .has-perm{color:#137333;font-weight:600}.permission-matrix .no-perm{color:var(--cudly-border-strong)}.user-expand-btn{background:none;border:none;color:var(--cudly-text-muted);cursor:pointer;font-size:.9rem;padding:.2rem .4rem}.user-expand-btn:hover{color:var(--cudly-primary)}.user-expand-row.hidden{display:none}.user-expand-panel{background:var(--cudly-surface-muted);border-bottom:1px solid var(--cudly-border);border-top:1px solid var(--cudly-border);padding:1rem 1.25rem}.expand-panel-body{display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.expand-panel-groups h5,.expand-panel-perms h5{color:var(--cudly-text);font-size:.85rem;font-weight:600;margin:0 0 .5rem}.group-checkbox-list{display:flex;flex-direction:column;gap:.35rem}.group-checkbox-label{align-items:center;cursor:pointer;display:flex;font-size:.85rem;gap:.5rem;padding:.15rem 0}.group-checkbox-label:hover{color:var(--cudly-primary)}.perm-badge-list{display:flex;flex-wrap:wrap;gap:.25rem}@media (max-width:800px){.expand-panel-body{grid-template-columns:1fr}}.modal-header-row{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.modal-header-row h2{margin:0}.modal-close{background:none;border:none;color:var(--cudly-text-muted);cursor:pointer;font-size:1.5rem;line-height:1;padding:0 .25rem}.modal-close:hover{color:var(--cudly-primary)}.perm-preview{background:var(--cudly-surface-muted);display:flex;flex-wrap:wrap;gap:.25rem;min-height:2rem}.dup-accounts-list,.perm-preview{border:1px solid var(--cudly-border);border-radius:4px;padding:.5rem}.dup-accounts-list{background:var(--cudly-surface);margin-top:.5rem;max-height:200px;overflow-y:auto}.dup-accounts-list label{align-items:center;cursor:pointer;display:flex;font-size:.85rem;gap:.5rem;margin:0;padding:.25rem 0}.dup-account-hidden{display:none}.dup-empty{color:var(--cudly-text-muted);font-size:.85rem;font-style:italic;margin:0;padding:.5rem}.override-coverage-input{width:5em}tr.override-disabled{opacity:.55}[role=button],a,button{-webkit-tap-highlight-color:transparent}[role=button]:active,a:active,button:active{opacity:.85}.app-topbar{padding-top:max(0px,env(safe-area-inset-top))}.app-shell{padding-bottom:env(safe-area-inset-bottom)}@media (pointer:coarse){.btn,[role=button],button,input[type=button],input[type=checkbox],input[type=radio],input[type=reset],input[type=submit],select{min-height:44px;min-width:44px}input[type=checkbox],input[type=radio]{min-height:unset;min-width:unset}label:has(>input[type=checkbox]),label:has(>input[type=radio]){align-items:center;display:flex;min-height:44px}}.hamburger{align-items:center;background:transparent;border:none;border-radius:var(--cudly-r-md);color:var(--cudly-primary-fg);cursor:pointer;display:none;flex-shrink:0;justify-content:center;margin-right:var(--cudly-sp-2);padding:var(--cudly-sp-2)}.hamburger:focus-visible{outline:2px solid hsla(0,0%,100%,.8);outline-offset:2px}.sidebar-overlay{background:rgba(0,0,0,.4);display:none;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .25s ease;z-index:99}body.sidebar-open{overflow:hidden}@media (max-width:768px){header{gap:1rem}.controls-bar,header{flex-direction:column}.filter-group{width:100%}table{display:block;overflow-x:auto}.modal-content{width:95%}.tabs{padding:0 1rem}.tab-btn{font-size:.9rem;padding:.75rem 1rem;white-space:nowrap}#user-info{flex-wrap:wrap;justify-content:center}.form-row{flex-direction:column}.ramp-options{grid-template-columns:1fr}.upcoming-card{gap:1rem}.upcoming-card,.upcoming-info{align-items:flex-start;flex-direction:column}.upcoming-info{gap:.5rem}.plan-details{grid-template-columns:1fr 1fr}.hamburger{display:inline-flex}.app-topbar-filters{flex-wrap:wrap;row-gap:var(--cudly-sp-2)}.app-sidebar{box-shadow:2px 0 8px rgba(0,0,0,.15);height:100%;left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform .25s ease;width:var(--cudly-sidebar-w);z-index:100}.app-sidebar .sidebar-label{display:inline}.app-sidebar-toggle{display:none}.sidebar-overlay{display:block}body.sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}body.sidebar-open .app-sidebar{transform:translateX(0)}}@media (max-width:1200px){.planned-purchases-table{display:block;overflow-x:auto}}@media (max-width:1100px){.tabs{flex-wrap:wrap;row-gap:.25rem}.tab-btn{font-size:.95rem;padding:.875rem 1.25rem;white-space:nowrap}}