:root{--bg: #15110c;--surface: #ffffff;--surface-alt: #faf7f1;--surface-sunken: #f1ead9;--border: #e7e0cd;--border-strong: #d3c3a0;--text: #1c1712;--text-muted: #6e6455;--text-faint: #a89c85;--primary: #9c7c4e;--primary-hover: #7c6039;--primary-soft: #f2e9d8;--danger: #dc2626;--danger-soft: #fef2f2;--success: #16a34a;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-xs: 0 1px 2px rgba(21, 17, 12, .05);--shadow-sm: 0 1px 3px rgba(21, 17, 12, .08), 0 1px 2px rgba(21, 17, 12, .04);--shadow-md: 0 8px 24px -8px rgba(21, 17, 12, .18);--shadow-lg: 0 24px 56px -16px rgba(21, 17, 12, .32);--graph-ink: #1c1712;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Segoe UI,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=ocean-slate]{--bg: #0f1720;--surface: #ffffff;--surface-alt: #f4f7fa;--surface-sunken: #e8eef3;--border: #dbe4ec;--border-strong: #b9c9d6;--text: #16212b;--text-muted: #5b6b78;--text-faint: #93a4b0;--primary: #2f6690;--primary-hover: #244d6e;--primary-soft: #dde9f2;--danger: #dc2626;--danger-soft: #fef2f2;--success: #16a34a;--shadow-xs: 0 1px 2px rgba(15, 23, 32, .06);--shadow-sm: 0 1px 3px rgba(15, 23, 32, .1), 0 1px 2px rgba(15, 23, 32, .05);--shadow-md: 0 8px 24px -8px rgba(15, 23, 32, .2);--shadow-lg: 0 24px 56px -16px rgba(15, 23, 32, .34)}:root[data-theme=midnight]{--bg: #0a0908;--surface: #1e1b17;--surface-alt: #26221d;--surface-sunken: #17140f;--border: #3a352c;--border-strong: #4f4837;--text: #f2ece0;--text-muted: #b7ab95;--text-faint: #8a7f6c;--primary: #c9a463;--primary-hover: #e0bd7d;--primary-soft: #3a3020;--danger: #ef4444;--danger-soft: #451a1a;--success: #4ade80;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px -8px rgba(0, 0, 0, .55);--shadow-lg: 0 24px 56px -16px rgba(0, 0, 0, .65)}:root[data-theme=high-contrast]{--bg: #000000;--surface: #ffffff;--surface-alt: #f0f0f0;--surface-sunken: #e2e2e2;--border: #999999;--border-strong: #4d4d4d;--text: #000000;--text-muted: #333333;--text-faint: #595959;--primary: #6b4423;--primary-hover: #4f3119;--primary-soft: #ead9bd;--danger: #b91c1c;--danger-soft: #fee2e2;--success: #15803d;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .15);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .12);--shadow-md: 0 8px 24px -8px rgba(0, 0, 0, .3);--shadow-lg: 0 24px 56px -16px rgba(0, 0, 0, .42)}*{box-sizing:border-box}body{margin:0;background:var(--surface-alt);color:var(--text);font-size:15px;line-height:1.5}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em;color:var(--text)}a{color:var(--primary)}::selection{background:var(--primary-soft);color:var(--primary-hover)}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}button,.btn-primary,.btn-secondary{cursor:pointer;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);padding:.5rem .95rem;font-size:.875rem;font-weight:550;font-family:inherit;line-height:1.3;box-shadow:var(--shadow-xs);display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .05s ease}button:hover,.btn-secondary:hover{border-color:var(--text-faint);background:var(--surface-alt)}button:active,.btn-primary:active,.btn-secondary:active{transform:translateY(1px)}button:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible{outline:2px solid var(--primary);outline-offset:1px}button[type=submit],.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 1px 2px #9c7c4e40,0 4px 10px -4px #9c7c4e73}button[type=submit]:hover,.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--surface);color:var(--text)}input,select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.55rem .7rem;font-size:.875rem;font-family:inherit;color:var(--text);background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #9c7c4e29}.brand{display:flex;align-items:center;gap:.65rem;font-weight:700;color:var(--text)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 .65rem;flex-shrink:0;border-radius:9px;background:linear-gradient(135deg,#15110c,#2b2115 55%,#9c7c4e);color:#fff;font-weight:700;font-size:.78rem;letter-spacing:.02em;box-shadow:0 4px 10px -3px #15110c80}.brand-mark-lg{height:46px;padding:0 .9rem;border-radius:12px;font-size:.95rem}.brand-logo-img{height:16px;width:auto;display:block}.brand-logo-img-lg{height:21px}.brand-name{font-size:.98rem}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 15% 20%,rgba(156,124,78,.28),transparent 45%),radial-gradient(circle at 85% 80%,rgba(80,63,38,.3),transparent 45%),var(--bg)}.auth-card{background:var(--surface);padding:2.6rem 2.4rem 2.4rem;border-radius:var(--radius-lg);width:360px;display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;box-shadow:var(--shadow-lg)}.auth-card h1{font-size:1.3rem;margin-top:.3rem}.auth-subtitle{margin:0 0 .4rem;color:var(--text-muted);font-size:.86rem}.auth-card label{display:flex;flex-direction:column;gap:.32rem;font-size:.82rem;font-weight:600;color:var(--text-muted);width:100%}.auth-card button[type=submit]{width:100%;justify-content:center;margin-top:.3rem;padding:.65rem;font-size:.9rem}.app-shell{min-height:100vh}.app-header{display:flex;align-items:center;gap:2rem;background:var(--surface);border-bottom:1px solid var(--border);padding:.8rem 1.6rem;position:sticky;top:0;z-index:10;box-shadow:var(--shadow-xs)}.app-header nav{display:flex;gap:.3rem;flex:1}.app-header nav a{color:var(--text-muted);text-decoration:none;font-size:.87rem;font-weight:550;padding:.42rem .8rem;border-radius:999px;transition:background-color .15s ease,color .15s ease}.app-header nav a:hover{color:var(--text);background:var(--surface-alt)}.app-header nav a.active{color:var(--primary);background:var(--primary-soft)}.header-user{display:flex;align-items:center;gap:.7rem;font-size:.85rem}.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--surface-sunken);color:var(--text);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;border:1px solid var(--border);flex-shrink:0}.user-meta{display:flex;flex-direction:column;line-height:1.3;gap:.1rem}.user-name{font-weight:600;font-size:.82rem}.role-badge{align-self:flex-start;background:var(--surface-alt);border:1px solid var(--border);border-radius:999px;padding:.02rem .45rem;font-size:.64rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.app-main{max-width:1120px;margin:0 auto;padding:2.2rem 1.6rem 4rem}.back-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-muted);text-decoration:none;font-size:.83rem;font-weight:600;margin-bottom:.9rem}.back-link:hover{color:var(--primary)}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.4rem}.page-header h1{font-size:1.4rem}.page-header-actions{display:flex;gap:.6rem;align-items:center}.form-hint{color:var(--text-muted);font-size:.83rem;margin-top:.9rem}.form-hint a{color:var(--primary);font-weight:600}.page-loading{color:var(--text-muted);padding:2.5rem 0;text-align:center;font-size:.9rem}.form-error{color:var(--danger);font-size:.83rem;background:var(--danger-soft);border:1px solid #fecaca;padding:.55rem .75rem;border-radius:var(--radius-sm)}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.3rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.7rem .8rem;box-shadow:var(--shadow-xs)}.filters input,.filters select{background:var(--surface-alt)}.column-picker{position:relative}.column-picker summary{list-style:none;cursor:pointer}.column-picker summary::-webkit-details-marker{display:none}.column-picker-menu{position:absolute;top:calc(100% + .4rem);right:0;z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:.6rem .8rem;display:flex;flex-direction:column;gap:.1rem;min-width:170px}.column-picker-menu .checkbox-label{padding:.25rem 0;font-size:.85rem;font-weight:500}.filters .checkbox-label{padding-bottom:0;font-size:.85rem;font-weight:500;color:var(--text-muted)}.table-scroll{overflow-x:auto;border-radius:var(--radius-md)}.data-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-xs)}.data-table th,.data-table td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border);font-size:.86rem}.data-table th{background:var(--surface-alt);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.data-table tbody tr{transition:background-color .12s ease}.data-table tbody tr:hover{background:var(--surface-alt)}.data-table tr:last-child td{border-bottom:none}.data-table td a{color:var(--primary);text-decoration:none;font-weight:600}.data-table td a:hover{text-decoration:underline}.cell-name{max-width:260px}.cell-name a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-cell{text-align:center;color:var(--text-muted);padding:2rem;font-size:.87rem}.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;margin-top:1rem;padding:.6rem .2rem 0}.pagination-summary{color:var(--text-muted);font-size:.82rem}.pagination-controls{display:flex;align-items:center;gap:.4rem}.pagination-controls .btn-secondary{padding:.4rem .7rem;font-size:.82rem}.pagination-page{color:var(--text-muted);font-size:.82rem;padding:0 .3rem;white-space:nowrap}.pagination-size{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;color:var(--text-muted)}.pagination-size select{padding:.35rem .5rem;font-size:.82rem}.operations-cell{background:var(--surface-alt);padding:.8rem!important}.operations-table{box-shadow:none}.operations-table th,.operations-table td{padding:.5rem .8rem;font-size:.82rem}.operations-table code{font-size:.8rem;background:var(--surface-sunken);padding:.1rem .4rem;border-radius:4px}.method-badge{display:inline-block;padding:.1rem .5rem;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:.02em}.method-get{background:#dbeafe;color:#1d4ed8}.method-post{background:#dcfce7;color:#15803d}.method-put{background:#fef3c7;color:#b45309}.method-patch{background:#ffedd5;color:#c2410c}.method-delete{background:#fee2e2;color:#b91c1c}.badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.01em}.badge-type-bff{background:#f3e8ff;color:#6d28d9}.badge-type-business{background:#dbeafe;color:#1d4ed8}.badge-type-other{background:#e2e8f0;color:#334155}.badge-status-active{background:#dcfce7;color:#15803d}.badge-status-deprecated{background:#fef3c7;color:#b45309}.badge-status-expired,.badge-status-retired{background:#fee2e2;color:#b91c1c}.badge-approval-draft{background:#e0e7ff;color:#4338ca}.badge-approval-approved{background:#dcfce7;color:#15803d}.badge-approval-rejected{background:#fee2e2;color:#b91c1c}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.3rem 1.5rem;margin-bottom:1.3rem;box-shadow:var(--shadow-xs)}.approval-card{border-color:#fde68a;background:#fffbeb}.card-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.9rem}.card-header h2{font-size:1.02rem;font-weight:700}.card-form{display:flex;flex-direction:column;gap:.8rem;max-width:480px}.card-form.inline-form{flex-direction:row;align-items:center;max-width:none;margin-bottom:1.2rem}.card-form label{display:flex;flex-direction:column;gap:.32rem;font-size:.83rem;font-weight:600;color:var(--text-muted)}.form-actions{display:flex;gap:.6rem;margin-top:.2rem}.form-page{max-width:600px}.overview-card .card-header{padding-bottom:.9rem;border-bottom:1px solid var(--border);margin-bottom:1.1rem}.overview-card .card-header h2{text-transform:uppercase;font-size:1.1rem;font-weight:800;letter-spacing:.02em}.overview-grid{display:grid;grid-template-columns:minmax(160px,26%) 1fr;font-size:.88rem;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.overview-grid dt{display:flex;align-items:center;background:var(--surface-alt);color:var(--text);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.85rem 1.1rem;border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.overview-grid dd{display:flex;align-items:center;margin:0;padding:.85rem 1.1rem;border-bottom:1px solid var(--border)}.overview-grid dt:last-of-type,.overview-grid dd:last-of-type{border-bottom:none}.overview-highlight{display:inline-block;background:var(--primary-soft);color:var(--primary-hover);padding:.3rem .7rem;border-radius:6px;font-weight:600}.dependency-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.dependency-list li{display:flex;align-items:center;gap:.6rem;padding:.55rem .8rem;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.88rem}.dependency-list li>*:first-child{flex:1}.dependency-list-main{display:flex;flex-direction:column;gap:.2rem}.exception-note{color:#b45309;font-size:.76rem}.required-mark{color:var(--danger);font-weight:500;text-transform:none}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8rem}.timeline li{position:relative;border-left:2px solid var(--border);padding-left:.9rem;padding-bottom:.1rem}.timeline li:before{content:"";position:absolute;left:-5px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--primary);border:2px solid var(--surface)}.timeline-row{display:flex;justify-content:space-between;gap:.6rem;font-size:.85rem}.timeline-action{font-weight:600}.timeline-meta{color:var(--text-muted);font-size:.78rem;white-space:nowrap}.timeline-detail{color:var(--text-muted);font-size:.78rem}.admin-page{display:flex;flex-direction:column;gap:1.4rem}.admin-hero{background:linear-gradient(135deg,#15110c,#2b2115 45%,#9c7c4e);border-radius:var(--radius-lg);padding:2.2rem 2.4rem;color:#fff;box-shadow:var(--shadow-lg)}.admin-hero h1{margin:0 0 .35rem;font-size:1.65rem;color:#fff}.admin-hero p{margin:0;color:#ffffffc7;font-size:.92rem;max-width:640px}.admin-tabs{display:flex;flex-wrap:wrap;gap:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.3rem;width:fit-content;max-width:100%;box-shadow:var(--shadow-xs)}.admin-tab{border:none;background:transparent;box-shadow:none;border-radius:999px;padding:.5rem 1.15rem;font-size:.85rem;font-weight:600;color:var(--text-muted);display:flex;align-items:center;gap:.4rem;white-space:nowrap}.admin-tab:hover{color:var(--text);border-color:transparent}.admin-tab.active{background:#1c1712;color:#fff}.count-pill{background:var(--primary-soft);color:var(--primary-hover);border-radius:999px;padding:.05rem .45rem;font-size:.72rem;font-weight:700}.admin-tab .count-pill{background:#0f172a14;color:inherit;border-radius:999px;padding:.05rem .45rem;font-size:.72rem}.admin-tab.active .count-pill{background:#fff3}.admin-panel{display:flex;flex-direction:column;gap:1.2rem}.admin-form-card{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:1.2rem 1.4rem}.admin-form-card h3{margin:0 0 .9rem;font-size:.95rem}.admin-form-row{display:flex;flex-wrap:wrap;gap:.7rem;align-items:flex-end}.admin-form-row label{display:flex;flex-direction:column;gap:.3rem;font-size:.78rem;font-weight:600;color:var(--text-muted);flex:1 1 160px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem}.admin-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius-md);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.5rem;box-shadow:var(--shadow-xs);transition:box-shadow .15s ease,transform .15s ease}.admin-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.admin-card.accent-violet{border-left-color:#7c3aed}.admin-card.accent-amber{border-left-color:#d97706}.admin-card.accent-teal{border-left-color:#0d9488}.admin-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.admin-card-title{font-weight:700;font-size:.95rem}.admin-card-sub{color:var(--text-muted);font-size:.8rem}.admin-card-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.2rem}.count-badge{background:var(--primary-soft);color:var(--primary-hover);border-radius:999px;padding:.15rem .55rem;font-size:.72rem;font-weight:700}.admin-card-actions{display:flex;gap:.5rem;margin-top:.4rem;align-items:center}.admin-card-actions select{font-size:.78rem;padding:.3rem .4rem;flex:1 1 0;min-width:0}.icon-btn{border:none;background:transparent;box-shadow:none;color:var(--text-muted);padding:.2rem .4rem;font-size:.85rem}.icon-btn:hover{color:var(--danger);border-color:transparent}.pill-toggle{border-radius:999px;padding:.15rem .6rem;font-size:.72rem;background:var(--surface-alt)}.pill-toggle-on{background:#dcfce7;color:#15803d;border-color:transparent}.admin-card-editing{grid-column:1 / -1}.checkbox-label{display:flex!important;flex-direction:row!important;align-items:center;gap:.4rem;padding-bottom:.55rem}.checkbox-label input{width:auto}.checkbox-list{display:flex;flex-direction:column;gap:.1rem;max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .7rem;background:var(--surface-alt)}.search-inline{display:flex;align-items:center;gap:.4rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.4rem .6rem;margin-bottom:.5rem;color:var(--text-faint);background:var(--surface)}.search-inline input{border:none;padding:0;flex:1;box-shadow:none}.search-inline input:focus{outline:none;box-shadow:none}.checkbox-list .checkbox-label{padding:.3rem 0;font-size:.88rem;font-weight:500}.admin-empty{color:var(--text-muted);font-size:.88rem;padding:1rem 0}.list-editor{display:flex;flex-direction:column;gap:.4rem}.list-editor-row{display:flex;gap:.4rem;align-items:center}.list-editor-row input{flex:1}.list-editor-add{align-self:flex-start;font-size:.78rem;padding:.3rem .7rem}.chip-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.3rem}.chip{background:var(--surface-sunken);border:1px solid var(--border);border-radius:6px;padding:.1rem .5rem;font-size:.74rem;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.chip-kv{font-family:inherit}.chip-kv strong{color:var(--text);font-weight:600}.graph-legend-toggle{margin-bottom:.7rem;padding:.35rem .7rem;font-size:.8rem}.graph-legend{display:flex;flex-wrap:wrap;gap:1.1rem;align-items:center;margin-bottom:1rem;padding:.7rem .9rem;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-md);font-size:.82rem;color:var(--text-muted)}.graph-legend-item{display:flex;align-items:center;gap:.4rem}.graph-legend-swatch{width:14px;height:14px;border-radius:4px;display:inline-block}.graph-swatch-consumer{background:#f2efe6;border:1.5px solid #8a7a63}.graph-swatch-bff{background:#f2e9d8;border:1.5px solid #9c7c4e}.graph-swatch-business{background:#f7e8e0;border:1.5px solid #a6572f}.graph-swatch-system-internal{background:#eef1e2;border:1.5px solid #5f7a4f}.graph-swatch-system-external{background:#e9f0ef;border:1.5px solid #4f7a72}.graph-swatch-azure{background:#e5f1fb;border:1.5px solid #0078d4}.graph-legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.graph-viewport{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);height:65vh;min-height:420px;cursor:grab}.graph-viewport.panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.graph-viewport:fullscreen{height:100vh;background:var(--surface);border-radius:0}.graph-canvas{transform-origin:0 0;padding:.5rem;width:fit-content}.graph-toolbar{position:absolute;top:.7rem;right:.7rem;z-index:5;display:flex;align-items:center;gap:.15rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.25rem;box-shadow:var(--shadow-md)}.graph-toolbar-btn{border:none;background:transparent;box-shadow:none;width:28px;height:28px;padding:0;border-radius:50%;font-size:1rem;font-weight:700;line-height:1;color:var(--text);display:inline-flex;align-items:center;justify-content:center}.graph-toolbar-btn:hover{background:var(--surface-alt);border-color:transparent}.graph-toolbar-zoom{border:none;background:transparent;box-shadow:none;padding:0 .5rem;font-size:.76rem;font-weight:700;color:var(--text-muted);min-width:42px}.graph-toolbar-zoom:hover{color:var(--text);border-color:transparent}.graph-toolbar-sep{width:1px;height:18px;background:var(--border);margin:0 .15rem}.graph-col-label{font-size:11px;font-weight:700;fill:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.graph-node{fill:var(--surface);stroke-width:1.5px;filter:drop-shadow(0 1px 2px rgba(21,17,12,.06));transition:opacity .15s ease,stroke-width .15s ease,filter .15s ease}.graph-node-consumer{fill:#f2efe6;stroke:#8a7a63}.graph-node-bff{fill:#f2e9d8;stroke:#9c7c4e}.graph-node-business{fill:#f7e8e0;stroke:#a6572f}.graph-node-system-internal{fill:#eef1e2;stroke:#5f7a4f}.graph-node-system-external{fill:#e9f0ef;stroke:#4f7a72}.graph-node-azure{fill:#e5f1fb;stroke:#0078d4}.graph-node-group{cursor:pointer}.graph-node-group:hover .graph-node{filter:brightness(.97) drop-shadow(0 2px 4px rgba(21,17,12,.1))}.graph-node-open{cursor:pointer}.graph-node-open-btn{fill:var(--surface);stroke:var(--border-strong);stroke-width:1.2px;transition:fill .15s ease,stroke .15s ease}.graph-node-open:hover .graph-node-open-btn{fill:var(--primary);stroke:var(--primary)}.graph-node-open-icon{color:var(--text-muted);pointer-events:none}.graph-node-open:hover .graph-node-open-icon{color:#fff}.graph-node-label-chip{fill:var(--primary-soft);stroke:var(--primary);stroke-width:1px}.graph-node-label-chip-text{font-size:9px;font-weight:700;fill:var(--primary-hover);pointer-events:none}.graph-node-label{font-size:12.5px;font-weight:600;fill:var(--graph-ink);transition:opacity .15s ease}.graph-node-sublabel{font-size:10px;font-weight:600;fill:#0078d4;transition:opacity .15s ease}.graph-node-active{stroke-width:2.5px!important;filter:drop-shadow(0 0 5px rgba(156,124,78,.55))}.graph-edge-hit{cursor:pointer}.graph-edge-hitarea{fill:none;stroke:transparent;stroke-width:14px}.graph-edge{fill:none;stroke-width:1.6px;transition:opacity .15s ease,stroke-width .15s ease}.graph-edge-consumer{stroke:#c9bfa9}.graph-edge-dependency{stroke:#d3b98a}.graph-edge-exception{stroke:#d97706;stroke-dasharray:5 4}.graph-edge-system{stroke:#a9bd98}.graph-edge-azure{stroke:#7cc0f2}.graph-edge-active{opacity:1;stroke:var(--primary);stroke-width:2.6px;stroke-dasharray:7 5;animation:graph-edge-flow .7s linear infinite}@keyframes graph-edge-flow{to{stroke-dashoffset:-24}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#15110c80;display:flex;align-items:center;justify-content:center;z-index:100;padding:1.5rem}.modal-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:420px;max-width:100%;max-height:85vh;overflow-y:auto;padding:1.4rem 1.6rem 1.6rem}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.modal-header h2{font-size:1.05rem}.modal-body dt{text-transform:none;letter-spacing:normal}.modal-body .overview-grid dt{text-transform:none;letter-spacing:normal;font-size:.78rem}.modal-body .overview-grid{font-size:.85rem}.analytics-range{display:flex;gap:.4rem;margin-bottom:1rem}.analytics-trigger{border:none;background:transparent;box-shadow:none;color:var(--text-muted);padding:.2rem .4rem;font-size:.95rem}.analytics-trigger:hover{color:var(--primary);border-color:transparent}.analytics-trigger:disabled{opacity:.3;cursor:default}.analytics-trigger:disabled:hover{color:var(--text-muted)}.toast-stack{position:fixed;top:1.25rem;right:1.25rem;z-index:60;display:flex;flex-direction:column;gap:.6rem;width:320px;max-width:calc(100vw - 2.5rem)}.toast{display:flex;align-items:flex-start;gap:.6rem;background:var(--surface);border:1px solid var(--border-strong);border-left:3px solid var(--danger);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:.8rem .9rem;animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.toast-icon{color:var(--danger);flex-shrink:0;margin-top:.15rem}.toast-body{flex:1;min-width:0}.toast-title{font-weight:650;font-size:.9rem}.toast-sub{color:var(--text-muted);font-size:.8rem;margin-top:.15rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.toast-actions{display:flex;gap:.5rem;margin-top:.6rem}.toast-actions .btn-secondary{padding:.3rem .6rem;font-size:.78rem}.toast-close{flex-shrink:0}.toast-more{display:block;text-align:center;font-size:.82rem;font-weight:600;padding:.6rem;box-shadow:var(--shadow-md)}.admin-subheading{margin:0 0 .7rem;font-size:.95rem}.theme-picker{display:flex;flex-wrap:wrap;gap:.9rem}.theme-swatch-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:128px;padding:.6rem;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);box-shadow:none;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.theme-swatch-btn:hover{border-color:var(--border-strong)}.theme-swatch-btn.active{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.theme-swatch-btn:disabled{cursor:default;opacity:.7}.theme-swatch-preview{width:100%;height:56px;border-radius:var(--radius-sm);border:1px solid var(--border);padding:8px;display:flex;align-items:flex-end}.theme-swatch-surface{width:100%;height:60%;border-radius:4px;display:flex;align-items:flex-end;padding:4px}.theme-swatch-primary{width:40%;height:8px;border-radius:3px}.theme-swatch-label{display:flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;color:var(--text)}.logo-uploader{display:flex;align-items:center;gap:1rem}.logo-uploader-preview{width:120px;height:64px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--surface-alt);border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:.5rem}.logo-uploader-preview img{max-width:100%;max-height:100%;object-fit:contain}.logo-uploader-actions{display:flex;gap:.6rem}.logo-bg-picker{margin-top:.9rem}.logo-bg-picker-label{display:block;font-size:.78rem;font-weight:600;color:var(--text-muted);margin-bottom:.5rem}.logo-bg-swatches{display:flex;align-items:center;gap:.55rem}.logo-bg-swatch{width:28px;height:28px;padding:0;border-radius:50%;border:2px solid var(--border);box-shadow:none;cursor:pointer}.logo-bg-swatch:hover{border-color:var(--border-strong)}.logo-bg-swatch.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.logo-bg-swatch:disabled{cursor:default;opacity:.6}.logo-bg-custom{width:28px;height:28px;border-radius:50%;overflow:hidden;border:2px solid var(--border);cursor:pointer;display:inline-flex}.logo-bg-custom:hover{border-color:var(--border-strong)}.logo-bg-custom input[type=color]{width:38px;height:38px;border:none;padding:0;margin:-5px;cursor:pointer;background:none}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}button.btn-danger:hover{background:var(--danger);border-color:var(--danger);filter:brightness(.92)}.danger-zone{border:1px solid var(--danger);border-radius:var(--radius-sm);padding:1rem 1.1rem;background:var(--danger-soft)}.reset-data-form{display:flex;flex-direction:column;gap:.75rem}.reset-data-warning{display:flex;align-items:center;gap:.45rem;color:var(--danger);font-size:.85rem;font-weight:600}.reset-data-option{display:flex;gap:.6rem;align-items:flex-start;font-size:.86rem;cursor:pointer}.reset-data-option input{margin-top:.2rem}.reset-data-option>span{display:flex;flex-direction:column;gap:.15rem}.reset-data-option .form-hint{margin:0}.reset-data-password{display:flex;flex-direction:column;gap:.32rem;font-size:.83rem;font-weight:600;color:var(--text-muted)}.password-form{display:flex;flex-direction:column;gap:.75rem}.password-form label{display:flex;flex-direction:column;gap:.32rem;font-size:.83rem;font-weight:600;color:var(--text-muted)}.password-form p{margin:0;font-size:.88rem}.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.admin-stat{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.6rem;align-items:center;text-align:left;padding:.85rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-muted);box-shadow:var(--shadow-xs)}.admin-stat svg{grid-row:1 / span 2;width:34px;height:34px;padding:8px;border-radius:10px;background:var(--primary-soft);color:var(--primary)}.admin-stat-value{font-size:1.35rem;font-weight:700;color:var(--text);line-height:1.1;font-variant-numeric:tabular-nums}.admin-stat-label{font-size:.75rem;font-weight:600}.admin-stat:hover{background:var(--surface);border-color:var(--border-strong)}.admin-stat.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset,var(--shadow-xs)}.admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.6rem .7rem;box-shadow:var(--shadow-xs)}.admin-toolbar-spacer{flex:1}.admin-search{display:flex;align-items:center;gap:.45rem;flex:1 1 240px;max-width:340px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 .6rem;color:var(--text-faint)}.admin-search input{border:none;background:transparent;box-shadow:none;padding:.5rem 0;flex:1;min-width:0;outline:none}.admin-toolbar select{background:var(--surface-alt)}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);padding:2px;gap:2px}.segmented button{border:none;box-shadow:none;background:transparent;padding:.35rem .75rem;font-size:.8rem;color:var(--text-muted)}.segmented button:hover{background:var(--surface)}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.user-cell{display:flex;align-items:center;gap:.7rem;min-width:220px}.user-cell .user-avatar{width:36px;height:36px;font-size:.78rem;border:none}.user-cell-text{display:flex;flex-direction:column;min-width:0}.user-cell-name{font-weight:600;color:var(--text);display:inline-flex;align-items:center;gap:.4rem}.user-cell-email{font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis}.you-tag{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.05rem .4rem;border-radius:999px;background:var(--primary-soft);color:var(--primary)}.avatar-tint-0{background:#9c7c4e2e;color:#8a6a3d}.avatar-tint-1{background:#2f669029;color:#2f6690}.avatar-tint-2{background:#0d948829;color:#0f766e}.avatar-tint-3{background:#7c3aed24;color:#6d28d9}.avatar-tint-4{background:#d9770629;color:#b45309}.avatar-tint-5{background:#db277721;color:#be185d}:root[data-theme=midnight] .user-cell .user-avatar{filter:brightness(1.6) saturate(.9)}.role-pill,.role-select{font-size:.78rem;font-weight:600;border-radius:999px;border:1px solid transparent}.role-pill{padding:.1rem .55rem;white-space:nowrap}.role-select{padding:.3rem 1.6rem .3rem .7rem;min-width:130px;cursor:pointer}.role-select:disabled{cursor:not-allowed;opacity:.85}.role-super_admin{background:#7c3aed1f;color:#6d28d9;border-color:#7c3aed4d}.role-admin{background:#9c7c4e24;color:#7c6039;border-color:#9c7c4e59}.role-editor{background:#2f66901f;color:#2f6690;border-color:#2f66904d}.role-viewer{background:var(--surface-alt);color:var(--text-muted);border-color:var(--border)}:root[data-theme=midnight] .role-super_admin{color:#c4b5fd}:root[data-theme=midnight] .role-admin{color:#e0bd7d}:root[data-theme=midnight] .role-editor{color:#93c5fd}.status-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;padding:.18rem .6rem;border-radius:999px;white-space:nowrap}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.status-active{color:var(--success);background:#16a34a1a}.status-inactive{color:var(--text-muted);background:var(--surface-sunken)}.user-row-inactive .user-cell-name,.user-row-inactive .user-cell-email,.user-row-inactive .user-avatar{opacity:.6}.cell-date{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.actions-col,.data-table th.actions-col,.data-table td.actions-col{text-align:right}.row-actions{display:inline-flex;gap:.4rem;justify-content:flex-end}.btn-sm{padding:.32rem .65rem;font-size:.78rem;white-space:nowrap}.btn-sm-danger:not(:disabled):hover{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.btn-link{border:none;background:none;box-shadow:none;padding:0;color:var(--primary);font-weight:600;font-size:inherit;display:inline}.btn-link:hover{background:none;text-decoration:underline}.admin-empty-state{text-align:center;padding:2.5rem 1rem;color:var(--text-muted);font-size:.9rem;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-md)}.role-picker{display:flex;flex-direction:column;gap:.35rem}.role-picker-label{font-size:.83rem;font-weight:600;color:var(--text-muted)}.password-form label.role-picker-option{flex-direction:row;align-items:center;gap:.55rem;padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-weight:500}.role-picker-option.active{border-color:var(--primary);background:var(--primary-soft)}.role-picker-option .form-hint{margin:0;font-size:.76rem}@media (max-width: 720px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-search{max-width:none}.admin-toolbar-spacer{display:none}}.admin-stat-static{cursor:default}.admin-stat-static:hover{border-color:var(--border)}.admin-stat-static:active{transform:none}.admin-title-cell{display:flex;align-items:center;gap:.7rem;min-width:200px}.admin-cell-badge{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.74rem;font-weight:700;flex-shrink:0}:root[data-theme=midnight] .admin-cell-badge{filter:brightness(1.6) saturate(.9)}.admin-title-text{display:flex;flex-direction:column;min-width:0}.admin-title-main{font-weight:600;color:var(--text)}.admin-title-main a{color:var(--text)}.admin-title-sub{font-size:.8rem;color:var(--text-muted)}.admin-table .cell-muted{color:var(--text-muted);font-size:.83rem}.admin-table td{vertical-align:middle}.api-count{display:inline-block;font-size:.76rem;font-weight:700;padding:.15rem .55rem;border-radius:999px;background:var(--primary-soft);color:var(--primary-hover);white-space:nowrap;font-variant-numeric:tabular-nums}.api-count-zero{background:var(--surface-sunken);color:var(--text-faint)}.tag-pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:600;padding:.15rem .6rem;border-radius:999px;white-space:nowrap;border:1px solid transparent}button.tag-pill{box-shadow:none;cursor:pointer}button.tag-pill:hover{filter:brightness(.96)}.tag-blue{background:#2f66901f;color:#2f6690;border-color:#2f669047}.tag-teal{background:#0d94881f;color:#0f766e;border-color:#0d948847}.tag-violet{background:#7c3aed1c;color:#6d28d9;border-color:#7c3aed42}.tag-amber{background:#d977061f;color:#b45309;border-color:#d9770647}.tag-grey{background:var(--surface-alt);color:var(--text-muted);border-color:var(--border)}:root[data-theme=midnight] .tag-blue{color:#93c5fd}:root[data-theme=midnight] .tag-teal{color:#5eead4}:root[data-theme=midnight] .tag-violet{color:#c4b5fd}:root[data-theme=midnight] .tag-amber{color:#fcd34d}.chip-row-tight{margin-top:0}.admin-intro{margin:0;font-size:.85rem;color:var(--text-muted);max-width:820px}.modal-card:has(.form-modal-wide){width:560px}.password-form .checkbox-label{flex-direction:row;align-items:center;gap:.5rem;font-weight:500;color:var(--text)}@media (max-width: 720px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}}.ops-toggle{padding:.2rem .55rem;font-size:.78rem;font-weight:700;border-radius:999px;background:var(--primary-soft);color:var(--primary-hover);border-color:transparent;box-shadow:none;gap:.3rem;font-variant-numeric:tabular-nums}.ops-toggle:hover,.ops-toggle.open{background:var(--primary);border-color:var(--primary);color:#fff}.th-toggle{border:none;background:none;box-shadow:none;padding:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;gap:.25rem}.th-toggle:hover{background:none;color:var(--text)}.cell-faint{color:var(--text-faint)}.data-table tbody tr.row-expanded td{border-bottom-color:transparent}.data-table tbody tr.ops-row,.data-table tbody tr.ops-row:hover{background:var(--surface-alt)}.ops-row>td{padding:0 1rem .9rem}.ops-panel{position:sticky;left:1rem;width:min(1030px,calc(100vw - 5rem));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.ops-panel-head{font-size:.76rem;font-weight:600;color:var(--text-muted);padding:.5rem .8rem;border-bottom:1px solid var(--border);background:var(--surface-alt)}.ops-panel-head code{font-size:.74rem}.ops-table{width:100%;border-collapse:collapse;table-layout:fixed}.ops-table td{padding:.38rem .8rem;border-bottom:1px solid var(--border);font-size:.82rem;vertical-align:middle}.ops-table tr:last-child td{border-bottom:none}.ops-method{width:80px}.ops-path code{font-size:.8rem;word-break:break-all}.ops-path{width:55%}.ops-summary{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.method-options,.method-head{background:var(--surface-sunken);color:var(--text-muted)}
