:root { --rw-bg: #f8f7f4; --rw-surface: #fffefd; --rw-surface-muted: #f1efeb; --rw-border: #d8d2ca; --rw-border-strong: #b9afa5; --rw-text: #201e1c; --rw-muted: #6b625b; --rw-primary: #7a3e2f; --rw-primary-hover: #633126; --rw-primary-soft: #f3dfd7; --rw-success: #3f6f58; --rw-warning: #8a5f14; --rw-danger: #a33d2f; --rw-focus: rgba(122, 62, 47, .28); --rw-shadow: 0 1px 2px rgba(32, 30, 28, .08), 0 10px 24px rgba(32, 30, 28, .06); } body { background: var(--rw-bg); color: var(--rw-text); font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } .login-body { min-height: 100vh; } .login-shell { align-items: center; display: flex; min-height: 100vh; padding: 2rem 1rem; } .login-panel { background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 8px; box-shadow: var(--rw-shadow); margin: 0 auto; max-width: 420px; padding: 1.5rem; width: 100%; } .login-brand { align-items: center; border-bottom: 1px solid var(--rw-border); display: flex; gap: .85rem; margin-bottom: 1rem; padding-bottom: 1rem; } .login-mark { align-items: center; background: var(--rw-primary); border-radius: 8px; color: #fff; display: inline-flex; font-weight: 800; height: 3rem; justify-content: center; width: 3rem; } .login-brand h1 { font-size: 1.35rem; font-weight: 700; margin: 0; } .login-brand p { color: var(--rw-muted); margin: .2rem 0 0; } .login-form { display: grid; gap: 1rem; } .login-form label { color: var(--rw-muted); font-size: .875rem; font-weight: 600; } .rw-nav, .navbar { background: rgba(255, 254, 253, .96) !important; border-bottom: 1px solid var(--rw-border) !important; box-shadow: 0 1px 0 rgba(32, 30, 28, .03); } .navbar-brand { color: var(--rw-text); font-weight: 700; } .rw-nav .container { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem; } .rw-menu { align-items: center; display: flex; flex-wrap: wrap; gap: .35rem; } .rw-menu-group { position: relative; } .rw-menu-trigger { background: transparent; border: 1px solid transparent; border-radius: 999px; color: var(--rw-muted); font-size: .9rem; font-weight: 700; min-height: 2.25rem; padding: .45rem .85rem; } .rw-menu-trigger:hover, .rw-menu-trigger:focus, .rw-menu-group.open .rw-menu-trigger { background: var(--rw-surface-muted); border-color: var(--rw-border); color: var(--rw-text); } .rw-menu-panel { background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 8px; box-shadow: var(--rw-shadow); display: none; left: 0; min-width: 190px; padding: .35rem; position: absolute; top: calc(100% + .35rem); z-index: 30; } .rw-menu-group.open .rw-menu-panel { display: grid; gap: .15rem; } .rw-menu-panel .nav-link { border-radius: 8px; color: var(--rw-text); display: block; padding: .55rem .65rem !important; white-space: nowrap; } .nav-link { border-radius: 999px; color: var(--rw-muted); font-size: .9rem; padding: .45rem .75rem !important; } .nav-link:hover, .nav-link:focus { background: var(--rw-surface-muted); color: var(--rw-text); } @media (max-width: 920px) { .effective-user-focus dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rw-menu-panel { position: static; } .rw-menu-group.open .rw-menu-panel { display: grid; } .architecture-strip { grid-template-columns: 1fr; } .architecture-arrow { display: none; } } .page-title { margin-bottom: 1.5rem; } .page-title h1 { font-size: 1.7rem; font-weight: 700; margin: 0; } .page-title p { color: var(--rw-muted); margin: .35rem 0 0; } /* Keep the main task visible while moving background guidance out of the way. */ .context-summary { color: var(--rw-muted); margin: .35rem 0 0; } .explanation-details { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; margin-top: .7rem; padding: .65rem .8rem; } .explanation-details > summary { color: var(--rw-primary); cursor: pointer; font-size: .84rem; font-weight: 800; list-style-position: inside; } .explanation-details[open] > summary { border-bottom: 1px solid var(--rw-border); margin-bottom: .65rem; padding-bottom: .55rem; } .explanation-details p, .explanation-details ul, .explanation-details ol { color: var(--rw-muted); line-height: 1.55; margin: .35rem 0 0; } .explanation-details > :last-child { margin-bottom: 0; } .content-band > .explanation-details:first-child { margin-top: 0; } .explanation-details.explanation-warning { background: #fff8e8; border-color: #e7d29c; } .architecture-strip { align-items: stretch; display: grid; gap: .5rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); margin-bottom: 1rem; min-width: 0; } .architecture-step { background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 8px; min-width: 0; padding: .85rem; } .architecture-step.active { border-color: var(--rw-primary); box-shadow: inset 0 0 0 1px var(--rw-primary); } .architecture-kicker { color: var(--rw-muted); display: block; font-size: .72rem; font-weight: 800; text-transform: uppercase; } .architecture-step strong { display: block; font-size: .95rem; margin-top: .15rem; } .architecture-step p { color: var(--rw-muted); font-size: .82rem; margin: .25rem 0 0; overflow-wrap: anywhere; } .architecture-arrow { align-self: center; color: var(--rw-muted); font-weight: 800; } .rw-card, .content-band, .summary-tile { background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 8px; box-shadow: var(--rw-shadow); } .summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-bottom: 1rem; } .summary-tile { color: inherit; display: block; padding: 1rem; text-decoration: none; } .summary-tile:hover { border-color: var(--rw-border-strong); color: inherit; transform: translateY(-1px); } .summary-tile .label { color: var(--rw-muted); display: block; font-size: .875rem; } .summary-tile strong { display: block; font-size: 1.75rem; margin-top: .35rem; } .content-band { margin-bottom: 1rem; min-width: 0; padding: 1rem; } .back-link { color: var(--rw-primary); display: inline-block; font-size: .86rem; font-weight: 800; margin-bottom: .6rem; text-decoration: none; } .settings-database-link { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; } .settings-database-link h2, .settings-danger-zone h2 { font-size: 1rem; font-weight: 800; margin: .3rem 0; } .settings-database-link p { color: var(--rw-muted); margin: 0; max-width: 52rem; } .settings-danger-zone { background: #fff8e8; border-color: #e7d29c; } .settings-impact-list { color: var(--rw-muted); margin: .75rem 0 1rem; padding-left: 1.25rem; } .settings-impact-list li + li { margin-top: .3rem; } .settings-confirm-form { align-items: end; grid-template-columns: minmax(220px, 1fr) auto; max-width: 46rem; } .content-band h2, .section-heading h2 { font-size: 1rem; font-weight: 700; margin: 0; } .section-heading { align-items: center; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; } .section-subtitle { color: var(--rw-muted); font-size: .875rem; margin: .2rem 0 0; } .form-grid { align-items: end; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 1rem; min-width: 0; } .token-form { align-items: start; } .token-form .rw-btn-primary { align-self: end; } .form-grid label { color: var(--rw-muted); font-size: .875rem; font-weight: 600; } .form-hint { color: var(--rw-muted); display: block; font-size: .78rem; font-weight: 500; line-height: 1.35; margin-top: .35rem; } .form-grid .span-2 { grid-column: span 2; } .inline-form { display: inline; } .action-stack { align-items: center; display: flex; flex-wrap: wrap; gap: .4rem; } .action-stack .inline-form { display: inline-flex; } .switch-field { align-items: center; display: flex; gap: .5rem; min-height: 38px; padding-left: 2.5rem; } .token-value { display: block; margin-top: .5rem; overflow-wrap: anywhere; } .meta-row { display: flex; gap: 1rem; margin-bottom: .75rem; } .master-detail { border-bottom: 1px solid var(--rw-border); padding-bottom: 1rem; } .field-block-title { color: var(--rw-muted); font-size: .875rem; font-weight: 700; margin-bottom: .35rem; } .rule-list { display: grid; gap: .5rem; } .rule-row { display: grid; gap: .5rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto; min-width: 0; } .permission-wizard { display: grid; gap: 1rem; min-width: 0; } .wizard-progress { display: flex; flex-wrap: wrap; gap: .4rem; } .wizard-step-indicator { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 999px; color: var(--rw-muted); font-size: .82rem; font-weight: 700; min-height: 2rem; padding: .3rem .7rem; } .wizard-step-indicator.active { background: var(--rw-primary); border-color: var(--rw-primary); color: #fff; } .wizard-summary { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr)); min-width: 0; } .wizard-summary > div, .policy-preview dl > div { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; padding: .75rem; } .wizard-summary span, .policy-preview dt { color: var(--rw-muted); display: block; font-size: .78rem; font-weight: 700; } .wizard-summary strong, .policy-preview dd { display: block; margin: .25rem 0 0; overflow-wrap: anywhere; } .wizard-panel { border: 1px solid var(--rw-border); border-radius: 8px; display: none; min-width: 0; padding: 1rem; } .wizard-panel.active { display: grid; gap: 1rem; } .wizard-panel-heading { align-items: flex-start; display: flex; gap: .75rem; } .wizard-panel-heading h3 { font-size: 1rem; font-weight: 700; margin: 0; } .wizard-panel-heading p, .wizard-hint { color: var(--rw-muted); margin: .15rem 0 0; } .wizard-step-number { align-items: center; background: var(--rw-primary-soft); border-radius: 999px; color: var(--rw-primary); display: inline-flex; font-weight: 800; height: 2rem; justify-content: center; min-width: 2rem; } .wizard-actions { align-items: center; display: flex; gap: .5rem; justify-content: flex-end; } .policy-preview dl { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin: 0; } .effective-preview dl { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); margin: 0; } .effective-preview dl > div { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; min-width: 0; padding: .7rem; } .effective-preview dt { color: var(--rw-muted); font-size: .74rem; font-weight: 800; text-transform: uppercase; } .effective-preview dd { margin: .25rem 0 0; overflow-wrap: anywhere; } .token-context-preview { align-self: stretch; background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 8px; padding: .9rem; } .token-context-preview .compact-heading { gap: .5rem; margin-bottom: .75rem; } .token-context-preview .compact-heading h3 { font-size: .92rem; font-weight: 800; margin: 0; } .token-context-preview .form-hint { margin-bottom: 0; } .matrix-summary { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr)); margin-bottom: 1rem; } .matrix-summary > div { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; padding: .85rem; } .matrix-summary span { color: var(--rw-muted); display: block; font-size: .78rem; font-weight: 800; text-transform: uppercase; } .matrix-summary strong { display: block; font-size: 1.6rem; line-height: 1.1; margin-top: .25rem; } .effective-workbench { background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 8px; box-shadow: var(--rw-shadow); margin-bottom: 1rem; overflow: hidden; } .effective-tabs { background: var(--rw-surface-muted); border-bottom: 1px solid var(--rw-border); display: flex; gap: .25rem; padding: .5rem; } .effective-tab { background: transparent; border: 0; border-radius: 6px; color: var(--rw-muted); font-size: .88rem; font-weight: 800; padding: .55rem .7rem; } .effective-tab:hover, .effective-tab:focus, .effective-tab.is-active { background: var(--rw-surface); color: var(--rw-primary); } .effective-pane { min-width: 0; padding: 1rem; } .effective-user-focus { background: var(--rw-primary-soft); border: 1px solid color-mix(in srgb, var(--rw-primary) 35%, var(--rw-border)); border-radius: 8px; margin-bottom: 1rem; padding: 1rem; } .effective-user-focus-heading strong, .effective-user-focus-heading small { display: block; } .effective-user-focus-heading strong { font-size: 1.2rem; margin-top: .25rem; } .effective-user-focus-heading small { color: var(--rw-muted); margin-top: .15rem; } .effective-user-focus dl { display: grid; gap: .7rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 1rem 0; } .effective-user-focus dl > div { min-width: 0; } .effective-user-focus dt { color: var(--rw-muted); font-size: .75rem; font-weight: 800; } .effective-user-focus dd { font-size: .86rem; font-weight: 700; margin: .25rem 0 0; overflow-wrap: anywhere; } .effective-user-focus-footer { align-items: center; border-top: 1px solid var(--rw-border); display: flex; flex-wrap: wrap; font-size: .84rem; gap: .75rem; justify-content: space-between; padding-top: .75rem; } .effective-user-focus-footer a { color: var(--rw-primary); font-weight: 800; text-decoration: none; } .effective-table-detail { border-top: 1px solid var(--rw-border); padding-top: 1rem; } .setup-steps { color: var(--rw-muted); margin: 0; padding-left: 1.25rem; } .setup-steps li + li { margin-top: .25rem; } .matrix-filter { color: var(--rw-muted); font-size: .82rem; font-weight: 700; min-width: min(280px, 100%); } .matrix-list { max-width: 28rem; overflow-wrap: anywhere; } .delete-impact { color: var(--rw-text); max-width: 24rem; min-width: 14rem; overflow-wrap: anywhere; } .delete-impact div + div { margin-top: .35rem; } .delete-impact span, .delete-impact small { color: var(--rw-muted); display: block; font-size: .76rem; line-height: 1.35; } .delete-impact strong { display: block; font-weight: 800; line-height: 1.35; } .delete-confirm { align-items: center; color: var(--rw-muted); display: inline-flex; font-size: .76rem; font-weight: 700; gap: .25rem; margin: 0 .35rem .25rem 0; white-space: nowrap; } .delete-confirm.disabled { opacity: .55; } .policy-apply-flow { align-items: center; display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .75rem; } .policy-apply-flow span { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 999px; color: var(--rw-text); font-size: .82rem; font-weight: 800; min-height: 2rem; padding: .35rem .7rem; } .policy-apply-flow strong { color: var(--rw-muted); } .policy-template-preview dl { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); margin: 0; } .policy-template-preview dl > div { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; min-width: 0; padding: .7rem; } .policy-template-preview dt { color: var(--rw-muted); font-size: .74rem; font-weight: 800; text-transform: uppercase; } .policy-template-preview dd { font-weight: 700; margin: .25rem 0 0; overflow-wrap: anywhere; } .bulk-apply-summary { cursor: pointer; font-weight: 700; min-height: 2rem; } .vpd-target-controls { align-items: end; background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; display: grid; gap: .75rem; grid-template-columns: minmax(min(220px, 100%), 1.5fr) repeat(4, minmax(min(120px, 100%), 1fr)) auto auto; margin-bottom: .75rem; min-width: 0; padding: .75rem; } .vpd-target-controls label { color: var(--rw-muted); font-size: .78rem; font-weight: 700; } .vpd-support-toggle { align-items: center; display: flex; gap: .45rem; min-height: 2.2rem; } .vpd-target-count { color: var(--rw-muted); font-size: .82rem; white-space: nowrap; } .question-presets { display: flex; flex-wrap: wrap; gap: .5rem; } .question-preset { max-width: 100%; white-space: normal; text-align: left; } .checkbox-row { display: flex; flex-wrap: wrap; gap: .75rem 1rem; min-height: 2.45rem; align-items: center; } .checkbox-row .form-check { margin: 0; } .rw-btn, .btn { border-radius: 999px; font-weight: 600; min-height: 2.25rem; padding: .45rem 1rem; } .rw-btn-primary, .btn-primary { background: var(--rw-primary); border-color: var(--rw-primary); color: #fff; } .rw-btn-primary:hover, .rw-btn-primary:focus, .btn-primary:hover, .btn-primary:focus { background: var(--rw-primary-hover); border-color: var(--rw-primary-hover); color: #fff; } .rw-btn-secondary, .btn-outline-primary, .btn-outline-secondary { background: transparent; border-color: var(--rw-border-strong); color: var(--rw-primary); } .rw-btn-secondary:hover, .btn-outline-primary:hover, .btn-outline-secondary:hover { background: var(--rw-primary-soft); border-color: var(--rw-primary); color: var(--rw-primary-hover); } .btn-outline-danger { border-color: #d7b8b2; color: var(--rw-danger); } .btn-outline-danger:hover { background: #f8ded9; border-color: var(--rw-danger); color: #77291f; } .rw-field, .form-control, .form-select { background-color: #fffefd; border: 1px solid var(--rw-border); border-radius: 8px; color: var(--rw-text); min-height: 2.45rem; } .rw-field:focus, .form-control:focus, .form-select:focus { border-color: var(--rw-primary); box-shadow: 0 0 0 .2rem var(--rw-focus); } .table { --bs-table-bg: transparent; --bs-table-striped-bg: #f6f3ef; color: var(--rw-text); } .table thead th { background: var(--rw-surface-muted); border-bottom-color: var(--rw-border); color: var(--rw-muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; } .badge { border-radius: 999px; font-weight: 700; padding: .35rem .6rem; } .text-bg-success { background-color: #dcebe3 !important; color: var(--rw-success) !important; } .text-bg-warning { background-color: #f7ead0 !important; color: var(--rw-warning) !important; } .text-bg-secondary { background-color: #ece8e3 !important; color: var(--rw-muted) !important; } .alert { border-radius: 8px; border-width: 1px; } .alert-success { background: #edf6f0; border-color: #bed8c9; color: #2f5c47; } .alert-warning { background: #fff5df; border-color: #e7cfa0; color: #6f4b0f; } .alert-danger { background: #f9e5e1; border-color: #e2b8b0; color: #812e23; } .probe-exchange-grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin: 1rem 0; } .mcp-service-grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } .mcp-service-item { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; display: grid; gap: .35rem; min-height: 124px; padding: .85rem; } .mcp-service-item span { color: var(--rw-muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; } .mcp-service-item strong { font-size: .95rem; overflow-wrap: anywhere; } .mcp-service-item small { color: var(--rw-muted); line-height: 1.45; } .chat-shell { display: grid; gap: 1rem; } .chat-thread { display: grid; gap: .75rem; } .chat-message { border: 1px solid var(--rw-border); border-radius: 8px; max-width: 100%; padding: .85rem; } .chat-message strong { display: block; font-size: .82rem; margin-bottom: .45rem; text-transform: uppercase; } .chat-message p { margin: 0; } .user-message { background: #edf2f7; margin-left: auto; width: min(760px, 92%); } .assistant-message { background: var(--rw-surface-muted); width: min(920px, 100%); } .chat-form { border-top: 1px solid var(--rw-border); display: grid; gap: .75rem; padding-top: 1rem; } .chat-form-row { display: grid; gap: .75rem; grid-template-columns: minmax(180px, 1fr) minmax(120px, 180px); } .chat-form label { color: var(--rw-muted); font-size: .875rem; font-weight: 700; } .chat-debug { margin-top: .75rem; } .chat-debug summary { color: var(--rw-primary); cursor: pointer; font-weight: 700; } @media (max-width: 720px) { .chat-form-row { grid-template-columns: 1fr; } .user-message, .assistant-message { width: 100%; } } .probe-exchange { border: 1px solid var(--rw-border); border-radius: 8px; overflow: hidden; } .probe-exchange h3 { background: var(--rw-surface-muted); border-bottom: 1px solid var(--rw-border); font-size: .85rem; font-weight: 700; margin: 0; padding: .55rem .75rem; } .probe-exchange pre { background: #211f1d; color: #fbf9f7; font-size: .78rem; margin: 0; max-height: 320px; overflow: auto; padding: .75rem; white-space: pre-wrap; word-break: break-word; } .code-editor { background: #211f1d; border: 0; border-radius: 0; color: #fbf9f7; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size: .78rem; line-height: 1.45; min-height: 320px; resize: vertical; } .code-editor:focus { background: #211f1d; color: #fbf9f7; } .form-actions { align-items: center; background: var(--rw-surface-muted); border-top: 1px solid var(--rw-border); display: flex; justify-content: flex-end; padding: .55rem .75rem; } .table-pre { background: transparent; color: inherit; font-size: .78rem; margin: 0; white-space: pre-wrap; } .schema-summary { display: grid; gap: .75rem; grid-template-columns: repeat(6, minmax(0, 1fr)); } .schema-summary div { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; min-width: 0; padding: .7rem .8rem; } .schema-summary span { color: var(--rw-muted); display: block; font-size: .76rem; line-height: 1.35; } .schema-summary strong { color: var(--rw-text); display: block; font-size: .98rem; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; } .schema-preview-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); } .schema-preview-grid details { border: 1px solid var(--rw-border); border-radius: 8px; min-width: 0; } .schema-preview-grid summary { cursor: pointer; font-weight: 800; padding: .75rem .9rem; } .schema-sql-preview { background: #211f1d; border-top: 1px solid var(--rw-border); color: #fbf9f7; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size: .76rem; line-height: 1.45; margin: 0; max-height: 28rem; overflow: auto; padding: .85rem; white-space: pre-wrap; word-break: break-word; } .table-responsive > .schema-preflight-table th, .table-responsive > .schema-preflight-table td, .table-responsive > .schema-preflight-table code { overflow-wrap: anywhere; white-space: normal; } .schema-preflight-table th:nth-child(1), .schema-preflight-table td:nth-child(1), .schema-preflight-table th:nth-child(3), .schema-preflight-table td:nth-child(3), .schema-preflight-table th:nth-child(4), .schema-preflight-table td:nth-child(4) { width: 8rem; } .policy-function-button { border-radius: 8px; max-width: 100%; overflow-wrap: anywhere; text-align: left; } .policy-function-button.active, .policy-function-button[aria-expanded="true"] { background: var(--rw-accent-soft); border-color: var(--rw-accent); color: var(--rw-accent-strong); } .policy-source-cell { background: var(--rw-surface) !important; padding: 0 0 .75rem !important; } .filter-edit-grid { display: grid; gap: 1rem; } .filter-edit-form { display: grid; gap: .75rem; padding: .75rem; } .filter-detail-stack + .filter-detail-stack { border-top: 1px solid var(--rw-border); margin-top: 1rem; padding-top: 1rem; } .policy-detail-list { display: grid; grid-template-columns: minmax(120px, 34%) 1fr; margin: 0; } .policy-detail-list dt, .policy-detail-list dd { border-bottom: 1px solid var(--rw-border); margin: 0; min-width: 0; padding: .6rem .75rem; } .policy-detail-list dt { background: var(--rw-surface-muted); color: var(--rw-muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; } .policy-detail-list dd { overflow-wrap: anywhere; } .htmx-indicator { display: none; } .htmx-request .htmx-indicator, .htmx-request.htmx-indicator { display: inline-flex; } .loading-pill { align-items: center; background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 999px; color: var(--rw-muted); font-size: .78rem; font-weight: 700; gap: .4rem; min-height: 2rem; padding: .25rem .65rem; white-space: nowrap; } .loading-spinner { animation: spin .8s linear infinite; border: 2px solid var(--rw-border-strong); border-top-color: var(--rw-primary); border-radius: 999px; display: inline-block; height: .9rem; width: .9rem; } @keyframes spin { to { transform: rotate(360deg); } } .ai-answer { background: var(--rw-primary-soft); border: 1px solid var(--rw-border); border-radius: 8px; margin: 1rem 0; overflow: hidden; } .ai-answer h3 { border-bottom: 1px solid var(--rw-border); font-size: .9rem; font-weight: 700; margin: 0; padding: .6rem .8rem; } .ai-answer pre, .markdown-view { color: var(--rw-text); font-family: inherit; font-size: .95rem; margin: 0; padding: .85rem; white-space: pre-wrap; } .markdown-view { line-height: 1.6; overflow-x: auto; } .markdown-view h2, .markdown-view h3 { border: 0; color: var(--rw-text); margin: .9rem 0 .45rem; padding: 0; } .markdown-view h2:first-child, .markdown-view h3:first-child { margin-top: 0; } .markdown-view h2 { font-size: 1.05rem; } .markdown-view h3 { font-size: .98rem; } .markdown-view p { margin: .45rem 0; } .markdown-view ul, .markdown-view ol { margin: .45rem 0 .65rem 1.25rem; padding: 0; } .markdown-view code { background: rgba(49, 45, 42, .08); border: 1px solid var(--rw-border); border-radius: 4px; color: var(--rw-text); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: .88em; padding: .08rem .28rem; } .markdown-view table { background: var(--rw-surface); border-collapse: collapse; font-size: .86rem; margin: .7rem 0; min-width: 760px; width: 100%; } .markdown-view th, .markdown-view td { border: 1px solid var(--rw-border); padding: .55rem .65rem; text-align: left; vertical-align: top; } .markdown-view th { background: var(--rw-surface-muted); font-weight: 800; } .table-responsive { max-width: 100%; min-width: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; } .table-responsive > .table { margin-bottom: 0; } .table th, .table td { min-width: 0; vertical-align: top; } .table-responsive > .table th, .table-responsive > .table td { white-space: nowrap; } .table code, .table-responsive > .table code { overflow-wrap: normal; white-space: nowrap; word-break: normal; } .table-pre { max-height: 8rem; overflow: auto; white-space: pre-wrap; } @media (max-width: 920px) { .schema-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); } .schema-preview-grid { grid-template-columns: 1fr; } .architecture-strip { grid-template-columns: 1fr; } .architecture-arrow { display: none; } } @media (max-width: 640px) { .settings-confirm-form { grid-template-columns: 1fr; } .effective-tabs { overflow-x: auto; } .effective-tab { flex: 0 0 auto; } .effective-user-focus dl { grid-template-columns: 1fr; } .schema-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } main.container { max-width: 100%; min-width: 0; padding-left: .75rem; padding-right: .75rem; } .page-title { margin-bottom: 1rem; } .page-title h1 { font-size: 1.45rem; } .content-band { padding: .85rem; } .section-heading { align-items: flex-start; gap: .5rem; } .form-grid .span-2 { grid-column: span 1; } .rule-row { grid-template-columns: 1fr; } .rule-row .btn { width: 100%; } .wizard-panel { padding: .85rem; } .wizard-actions { flex-wrap: wrap; } .wizard-actions .btn { flex: 1 1 auto; } .vpd-target-controls { grid-template-columns: 1fr; } .vpd-target-count { white-space: normal; } .table-responsive > .table { min-width: 960px; } .navbar .container { align-items: flex-start; gap: .75rem; } .rw-menu { width: 100%; } .rw-menu-group { min-width: 0; } .rw-menu-trigger { padding-left: .65rem; padding-right: .65rem; } } /* Guided permission journey (#557) */ .dashboard-page { max-width: 1120px; } .dashboard-hero { align-items: end; border-bottom: 1px solid var(--rw-border); display: grid; gap: 1rem 2rem; grid-template-columns: minmax(0, 1fr) auto; margin-bottom: 1.25rem; padding: .5rem 0 1.25rem; } .dashboard-hero h1 { font-size: clamp(1.7rem, 3vw, 2.25rem); font-weight: 750; letter-spacing: -.035em; line-height: 1.2; margin: .25rem 0 0; } .dashboard-hero p { color: var(--rw-muted); margin: .5rem 0 0; } .dashboard-hero-actions { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; } .dashboard-explanation { grid-column: 1 / -1; margin-top: 0; } .dashboard-command-center { background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 12px; box-shadow: var(--rw-shadow); display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, .32fr); margin-bottom: 1.25rem; overflow: hidden; } .dashboard-primary-action { min-width: 0; padding: 1.3rem; } .dashboard-primary-action h2, .dashboard-section-heading h2 { font-size: 1.12rem; font-weight: 800; margin: .25rem 0 0; } .dashboard-primary-action > p { color: var(--rw-muted); margin: .4rem 0 1rem; } .dashboard-action-grid { display: grid; gap: .7rem; grid-template-columns: repeat(2, minmax(0, 1fr)); } .dashboard-action { align-items: center; background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; color: var(--rw-text); display: grid; gap: .65rem; grid-template-columns: auto minmax(0, 1fr) auto; min-width: 0; padding: .8rem; text-decoration: none; } .dashboard-action:hover, .dashboard-action:focus { border-color: var(--rw-primary); color: var(--rw-text); } .dashboard-action-emphasis { background: var(--rw-primary-soft); border-color: color-mix(in srgb, var(--rw-primary) 35%, var(--rw-border)); } .dashboard-action-icon { align-items: center; background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 999px; color: var(--rw-primary); display: inline-flex; font-size: .72rem; font-weight: 900; height: 2rem; justify-content: center; width: 2rem; } .dashboard-action strong, .dashboard-action small { display: block; } .dashboard-action strong { font-size: .9rem; } .dashboard-action small { color: var(--rw-muted); font-size: .78rem; line-height: 1.35; margin-top: .15rem; } .dashboard-action-arrow { color: var(--rw-primary); font-weight: 900; } .dashboard-state { background: var(--rw-surface-muted); border-left: 1px solid var(--rw-border); display: flex; flex-direction: column; padding: 1.3rem; } .dashboard-state dl { display: grid; gap: .65rem; margin: .75rem 0 auto; } .dashboard-state dl > div { align-items: baseline; display: flex; justify-content: space-between; } .dashboard-state dt { color: var(--rw-muted); font-size: .82rem; font-weight: 600; } .dashboard-state dd { font-size: 1.35rem; font-weight: 850; line-height: 1; margin: 0; } .dashboard-state > a { color: var(--rw-primary); font-size: .84rem; font-weight: 800; margin-top: 1rem; text-decoration: none; } .dashboard-workflow { margin-bottom: 1.25rem; } .dashboard-section-heading { margin-bottom: .7rem; } .workflow-steps { display: grid; gap: .6rem; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; } .workflow-steps a { border-top: 2px solid var(--rw-border-strong); color: var(--rw-text); display: grid; gap: .2rem; grid-template-columns: auto minmax(0, 1fr); padding: .65rem 0; text-decoration: none; } .workflow-steps a:hover, .workflow-steps a:focus { border-color: var(--rw-primary); color: var(--rw-primary); } .workflow-steps span { color: var(--rw-primary); font-size: .76rem; font-weight: 900; grid-row: span 2; margin-right: .1rem; } .workflow-steps strong { font-size: .88rem; } .workflow-steps small { color: var(--rw-muted); font-size: .76rem; line-height: 1.3; } .dashboard-details { background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 8px; margin-bottom: 1rem; } .dashboard-details > summary { color: var(--rw-primary); cursor: pointer; font-size: .9rem; font-weight: 800; padding: .85rem 1rem; } .dashboard-details[open] > summary { border-bottom: 1px solid var(--rw-border); } .dashboard-details-body { padding: 1rem; } .dashboard-object-list { border-top: 1px solid var(--rw-border); margin-top: 1rem; padding-top: 1rem; } .guided-hero { max-width: 920px; } .guided-hero h1 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); line-height: 1.18; margin-top: .35rem; } .guided-hero p { font-size: 1rem; line-height: 1.65; max-width: 850px; } .journey-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1rem; } .journey-card { align-items: flex-start; background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 8px; box-shadow: var(--rw-shadow); color: inherit; display: flex; gap: 1rem; min-width: 0; padding: 1.15rem; text-decoration: none; } .journey-card:hover { border-color: var(--rw-primary); color: inherit; transform: translateY(-1px); } .journey-number { align-items: center; background: var(--rw-primary-soft); border-radius: 999px; color: var(--rw-primary); display: inline-flex; flex: 0 0 2.2rem; font-weight: 800; height: 2.2rem; justify-content: center; } .journey-card h2 { font-size: 1.05rem; font-weight: 800; margin: .1rem 0 .35rem; } .journey-card p { color: var(--rw-muted); line-height: 1.5; margin: 0 0 .75rem; } .journey-card strong { color: var(--rw-primary); font-size: .88rem; } .macro-micro-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); } .macro-micro-grid > div { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; min-width: 0; padding: 1rem; } .macro-micro-grid h2, .macro-micro-grid h3 { font-size: 1rem; font-weight: 800; margin: .3rem 0 .45rem; } .macro-micro-grid p { color: var(--rw-muted); line-height: 1.55; margin: 0; } .guided-check-intro { align-items: center; display: flex; gap: 1rem; justify-content: space-between; } .guided-check-intro h2 { margin: .25rem 0 .4rem; } .guided-check-intro p { color: var(--rw-muted); margin: 0; max-width: 760px; } .probe-form { align-items: end; } .probe-submit { min-height: 2.8rem; } .empty-result-guide { color: var(--rw-muted); } .empty-result-guide ol { margin: .65rem 0 0; padding-left: 1.25rem; } .probe-result-flow { display: grid; gap: 1rem; } .probe-result-flow > .section-heading { margin-bottom: 0; } .probe-summary { color: var(--rw-text); font-size: 1rem; line-height: 1.6; margin: 0; } .result-section { border-top: 1px solid var(--rw-border); padding-top: 1rem; } .result-section h3, .next-action-card h3, .probe-exchange h3 { font-size: .92rem; font-weight: 800; margin: 0; } .result-metrics { display: grid; gap: .75rem; grid-template-columns: minmax(120px, .5fr) minmax(0, 1.5fr); } .result-metrics > div { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; padding: .8rem; } .result-metrics span { color: var(--rw-muted); display: block; font-size: .76rem; font-weight: 700; } .result-metrics strong { display: block; margin-top: .25rem; overflow-wrap: anywhere; } .next-action-card { background: var(--rw-primary-soft); border: 1px solid rgba(122, 62, 47, .2); border-radius: 8px; padding: 1rem; } .next-action-card p { line-height: 1.55; margin: .45rem 0 .8rem; } .technical-details, .advanced-details { border: 1px solid var(--rw-border); border-radius: 8px; padding: .8rem; } .technical-details > summary, .advanced-details > summary { cursor: pointer; font-weight: 800; } .issued-token-card { background: var(--rw-primary-soft); border: 1px solid rgba(122, 62, 47, .25); border-radius: 8px; box-shadow: var(--rw-shadow); margin-bottom: 1rem; padding: 1.15rem; } .issued-token-card h2 { font-size: 1.05rem; font-weight: 800; margin: .3rem 0 .65rem; } .issued-token-card .token-value { background: var(--rw-surface); border: 1px solid var(--rw-border); border-radius: 8px; padding: .75rem; } .default-vpd-form { grid-template-columns: minmax(220px, 1.2fr) minmax(260px, 1.5fr) auto; } .default-policy-summary, .protected-function-card { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; display: grid; gap: .2rem; min-width: 0; padding: .7rem .85rem; } .default-policy-summary span, .protected-function-card span { color: var(--rw-muted); font-size: .8rem; } .advanced-guidance { background: #fff8e8; border: 1px solid #e7d29c; border-radius: 8px; padding: 1rem; } .advanced-guidance h2 { margin-bottom: .6rem; } .advanced-guidance p { margin: .3rem 0 0; } .advanced-guidance ul { margin: 0; padding-left: 1.25rem; } .advanced-guidance li + li { margin-top: .45rem; } .protected-function-card { grid-template-columns: auto minmax(180px, auto) 1fr; margin-top: 1rem; } .filter-replace-form { display: grid; gap: .4rem; grid-template-columns: minmax(150px, .8fr) minmax(220px, 1fr) auto; min-width: 520px; } .column-policy-explainer { background: var(--rw-surface-muted); border: 1px solid var(--rw-border); border-radius: 8px; margin: .85rem 0; padding: .85rem; } .column-policy-explainer p { color: var(--rw-muted); line-height: 1.55; margin: .35rem 0 0; } .object-handler-explainer { display: grid; gap: .25rem; margin-bottom: .75rem; } .object-handler-explainer small { color: var(--rw-muted); } .selected-column-list { display: block; margin-top: .45rem; min-height: 1.5rem; } @media (max-width: 920px) { .dashboard-hero, .dashboard-command-center { grid-template-columns: 1fr; } .dashboard-hero-actions { justify-content: flex-start; } .dashboard-state { border-left: 0; border-top: 1px solid var(--rw-border); } .dashboard-state dl { grid-template-columns: repeat(3, minmax(0, 1fr)); } .journey-grid, .macro-micro-grid, .default-vpd-form { grid-template-columns: 1fr; } .guided-check-intro { align-items: flex-start; flex-direction: column; } .protected-function-card { grid-template-columns: 1fr; } } @media (max-width: 640px) { .dashboard-primary-action, .dashboard-state { padding: 1rem; } .dashboard-action-grid, .workflow-steps, .dashboard-state dl { grid-template-columns: 1fr; } .dashboard-hero-actions .btn { flex: 1 1 12rem; } .journey-card { padding: .9rem; } .result-metrics { grid-template-columns: 1fr; } }