*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1rem;line-height:1.5;color:#1a1a1a;background:#f7f8fa;min-height:100vh}:focus-visible{outline:3px solid #0055cc;outline-offset:2px}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{background:#fff;border-bottom:1px solid #dde1e7;padding:0 1.5rem;height:56px;display:flex;align-items:center;gap:.75rem}.app-header__wordmark{font-size:1.125rem;font-weight:600;color:#05c;letter-spacing:-.01em;margin:0;text-decoration:none}.app-header__subtitle{font-size:.8125rem;color:#5a6a7a;border-left:1px solid #dde1e7;padding-left:.75rem;margin:0}.app-main{flex:1;padding:2rem 1.5rem;max-width:48rem;width:100%;margin:0 auto}.signin-view{display:flex;flex-direction:column;align-items:flex-start;gap:1.5rem;padding-top:2rem}.signin-view__heading{font-size:1.5rem;font-weight:600;color:#1a1a1a;margin:0}.signin-view__description{color:#3d4f61;margin:0;max-width:36rem}.signin-btn{display:inline-flex;align-items:center;gap:.625rem;background:#05c;color:#fff;border:none;border-radius:6px;padding:.625rem 1.25rem;font-size:.9375rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s ease}.signin-btn:hover{background:#04a}.signin-btn:active{background:#038}.home-view{display:flex;flex-direction:column;gap:1.5rem}.home-view__heading{font-size:1.25rem;font-weight:600;color:#1a1a1a;margin:0}.freshness-card{background:#fff;border:1px solid #dde1e7;border-radius:8px;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.freshness-card__title{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#5a6a7a;margin:0}.freshness-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.75rem 1.5rem}.freshness-item__label{font-size:.8125rem;color:#5a6a7a;margin:0 0 .125rem}.freshness-item__value{font-size:1rem;font-weight:500;color:#1a1a1a;margin:0}.freshness-item__value--muted{color:#8a96a3;font-style:italic;font-weight:400}.phase-note{background:#eef4ff;border:1px solid #b3ccf5;border-radius:6px;padding:1rem 1.25rem;font-size:.9375rem;color:#1a3c6e}.phase-note strong{display:block;font-weight:600;margin-bottom:.25rem}.loading-view{display:flex;align-items:center;gap:.75rem;color:#5a6a7a;padding-top:2rem}.spinner{width:1.25rem;height:1.25rem;border:2px solid #dde1e7;border-top-color:#05c;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.skip-link{position:absolute;top:-999px;left:0;background:#05c;color:#fff;padding:.5rem 1rem;z-index:1000;text-decoration:none;border-radius:0 0 6px}.skip-link:focus{top:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.object-picker{display:flex;flex-direction:column;gap:.75rem}.object-picker__combobox{position:relative}.object-picker__input{width:100%;padding:.5rem .75rem;border:1px solid #b3bcc8;border-radius:6px;font-size:.9375rem;background:#fff;color:#1a1a1a}.object-picker__input:focus{outline:3px solid #0055cc;outline-offset:2px;border-color:#05c}.object-picker__listbox{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #b3bcc8;border-radius:6px;box-shadow:0 4px 16px #0000001f;max-height:260px;overflow-y:auto;z-index:100;list-style:none;margin:0;padding:.25rem 0}.object-picker__option{padding:.5rem .75rem;cursor:pointer;font-size:.9375rem;color:#1a1a1a}.object-picker__option:hover,.object-picker__option[aria-selected=true]{background:#eef4ff;color:#039}.object-picker__chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.object-picker__chip{display:inline-flex;align-items:center;gap:.375rem;background:#eef4ff;border:1px solid #b3ccf5;border-radius:99px;padding:.25rem .625rem;font-size:.875rem;color:#1a3c6e}.object-picker__chip-remove{background:none;border:none;cursor:pointer;padding:0;line-height:1;font-size:1rem;color:#5a6a7a;display:flex;align-items:center}.object-picker__chip-remove:hover{color:#c0392b}.object-picker__chip--disabled{opacity:.5;pointer-events:none}.erd-canvas{display:flex;flex-direction:column;gap:.75rem;width:100%}.erd-canvas__cap-banner{background:#fff4e0;border:1px solid #f0c060;border-radius:6px;padding:.75rem 1rem;font-size:.9375rem;color:#7a4a00;role:alert}.erd-canvas__flow-wrapper{border:1px solid #dde1e7;border-radius:8px;overflow:hidden;background:#fff}.erd-canvas__diagram{display:flex;justify-content:center;padding:12px;overflow:auto}.erd-canvas__diagram svg{max-width:100%;height:auto}.path-table{width:100%;overflow-x:auto}.path-table__heading{font-size:1.125rem;font-weight:600;color:#1a1a1a;margin:0 0 1rem}.path-table__subheading{font-size:1rem;font-weight:600;color:#1a1a1a;margin:1.5rem 0 .5rem}.path-table__section-label{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#5a6a7a;margin:1rem 0 .375rem}.path-table__objects-section,.path-table__pair-block{margin-bottom:1.5rem}.path-table__pair-heading{font-size:1rem;font-weight:600;color:#1a3c6e;margin:0 0 .5rem}.path-table__warnings{background:#fff4e0;border:1px solid #f0c060;border-radius:6px;padding:.75rem 1rem;margin-bottom:1rem}.path-table__warnings ul{margin:.25rem 0 0;padding-left:1.25rem}.path-table__warnings li{font-size:.9375rem;color:#7a4a00;margin-bottom:.25rem}.path-table__disconnected{margin-top:.75rem}.path-table__badge{font-size:.75rem;color:#5a6a7a;font-style:italic}.path-table__muted{font-size:.75rem;color:#8a96a3;font-style:italic}.path-table table,.path-table__objects-section table{width:100%;border-collapse:collapse;font-size:.9375rem}.path-table th,.path-table td,.path-table__objects-section th,.path-table__objects-section td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #dde1e7}.path-table th,.path-table__objects-section th{font-weight:600;color:#3d4f61;background:#f7f8fa;font-size:.875rem}.path-table caption,.path-table__objects-section caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.disconnected-notice{background:#f8f0f0;border:1px solid #e8b4b4;border-radius:6px;padding:.75rem 1rem;font-size:.9375rem;color:#7a1a1a;margin:0}.warning-banner{background:#fff4e0;border:1px solid #f0c060;border-radius:6px;padding:.75rem 1rem;font-size:.9375rem;color:#7a4a00}
