        .no-scrollbar::-webkit-scrollbar { display: none; }
        .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
        #supplier-tree-resizer { touch-action: none; }
        #supplier-tree-resizer:hover .supplier-resizer-line { background-color: #93C5FD; }
        #supplier-tree-pane, #supplier-tree { background-color: rgba(241, 241, 241, 1); }
        #left-cockpit-sidebar { height: 100vh; max-height: 100vh; }
        #customer-tree-pane { min-height: 0; height: auto; flex: 1 1 0; }
        #organization-tree { min-height: 0; overflow-y: auto; }
        #left-cockpit-sidebar:has(#supplier-tree-pane.hidden) #customer-tree-pane { flex: 1 1 0; max-height: none; }
        #left-cockpit-sidebar:has(#supplier-tree-pane.hidden) #organization-tree { flex: 1 1 0; max-height: none; }
        #supplier-tree-pane { min-height: 320px; height: 320px; flex: 0 0 320px; max-height: calc(100vh - 172px); }
        #supplier-tree { min-height: 0; overflow-y: auto; }
        body.norma-detached-planning #main-cockpit-nav,
        body.norma-detached-planning #left-cockpit-sidebar,
        body.norma-detached-planning #context-tabs-bar {
            display: none !important;
        }
        body.norma-detached-planning main {
            width: 100vw;
            height: 100vh;
        }
        body.norma-detached-planning #spa-content-target {
            min-height: 100vh;
        }
        #organization-tree .tree-project-row, #organization-tree .tree-customer-row { border-left: 5px solid transparent; }
        #organization-tree .tree-project-selected, #organization-tree .tree-customer-selected { border-left-color: #000; font-weight: 600; }
        .norma-field-attention { animation: normaFieldAttention 1.1s ease-out 1; }
        @keyframes normaFieldAttention {
            0% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0); border-color: #E5E7EB; }
            28% { box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.20); border-color: #2563EB; }
            100% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0); border-color: #E5E7EB; }
        }
        .norma-running-timer-nav {
            width: 32px;
            height: 32px;
            border-radius: 8px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: #16a34a;
            background: #dcfce7;
            border: 1px solid #bbf7d0;
            animation: normaRunningTimerPulse 1.15s ease-in-out infinite;
        }
        @keyframes normaRunningTimerPulse {
            0%, 100% { opacity: 1; transform: scale(1); }
            50% { opacity: .42; transform: scale(.94); }
        }
        .norma-feed-modal-backdrop {
            position: fixed;
            inset: 0;
            z-index: 9000;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 24px;
            background: rgba(17, 24, 39, .45);
        }
        .norma-feed-modal-backdrop.is-open { display: flex; }
        .norma-feed-modal-card {
            width: 920px;
            max-width: calc(100vw - 32px);
            min-height: 520px;
            border-radius: 12px;
            background: #fff;
            overflow: visible;
            box-shadow: 0 24px 80px rgba(15, 23, 42, .35);
            position: relative;
        }
        .norma-feed-modal-body {
            display: grid;
            grid-template-columns: minmax(0, 1fr) 260px;
            min-height: 520px;
            overflow: hidden;
            border-radius: 12px;
        }
        .norma-feed-modal-main { padding: 28px; }
        .norma-feed-modal-side {
            background: linear-gradient(180deg, #eef2ff 0%, #ccfbf1 100%);
            padding: 24px 18px;
            display: flex;
            flex-direction: column;
        }
        .norma-feed-modal-row {
            display: grid;
            grid-template-columns: 130px minmax(0, 1fr);
            gap: 12px;
            align-items: center;
            margin-bottom: 14px;
        }
        .norma-feed-modal-row.is-top {
            grid-template-columns: 130px minmax(0, 1fr) 128px 86px;
        }
        .norma-feed-modal-row label {
            color: #111827;
            font-size: 14px;
            font-weight: 500;
        }
        .norma-feed-modal-field {
            width: 100%;
            min-height: 38px;
            border: 1px solid #bfdbfe;
            border-radius: 6px;
            background: #fff;
            color: #111827;
            padding: 8px 10px;
            font-size: 13px;
            outline: none;
        }
        .norma-feed-modal-textarea { min-height: 260px; resize: vertical; }
        .norma-rich-editor { min-width: 0; width: 100%; }
        .norma-feed-modal-row.items-start { align-items: start; }
        .norma-rich-toolbar { display: flex; flex-wrap: wrap; gap: 2px; padding: 5px; border: 1px solid #e5e7eb; border-bottom: 0; border-radius: 6px 6px 0 0; background: #f9fafb; }
        .norma-rich-toolbar button { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: 0; border-radius: 4px; background: transparent; color: #4b5563; font-size: 13px; cursor: pointer; }
        .norma-rich-toolbar button:hover, .norma-rich-toolbar button[aria-pressed=true] { background: #dbeafe; color: #2563eb; }
        .norma-rich-toolbar button:focus-visible { outline: 2px solid #2563eb; outline-offset: 1px; }
        .norma-rich-editor > .norma-interaction-rich-text { border-top-left-radius: 0; border-top-right-radius: 0; }
        .norma-interaction-rich-text { max-height: 55vh; overflow-wrap: anywhere; white-space: normal; }
        .norma-interaction-rich-text p { margin: 0 0 0.75em; }
        .norma-interaction-rich-text ul { list-style: disc; padding-left: 1.5em; }
        .norma-interaction-rich-text ol { list-style: decimal; padding-left: 1.5em; }
        .norma-interaction-rich-text blockquote { border-left: 3px solid #d1d5db; padding-left: 12px; margin: 0.75em 0; }
        .norma-interaction-rich-text a { color: #2563eb; text-decoration: underline; }
        .norma-interaction-rich-text table { border-collapse: collapse; max-width: 100%; }
        .norma-interaction-rich-text th, .norma-interaction-rich-text td { border: 1px solid #d1d5db; padding: 4px 8px; }
        .norma-interaction-rich-text img { max-width: 100%; height: auto; }
        .norma-interaction-rich-text pre { white-space: pre-wrap; }
        .norma-interaction-rich-text h1, .norma-interaction-rich-text h2, .norma-interaction-rich-text h3,
        .norma-interaction-rich-text h4, .norma-interaction-rich-text h5, .norma-interaction-rich-text h6 { font-weight: 700; margin: 0.75em 0; }
        @media (max-width: 700px) {
            .norma-feed-detail-rich-modal .norma-feed-modal-card { max-height: 90vh; overflow-y: auto; }
            .norma-feed-detail-rich-modal .norma-feed-modal-body { grid-template-columns: minmax(0, 1fr); }
            .norma-feed-detail-rich-modal .norma-feed-modal-main { padding: 16px; min-width: 0; }
            .norma-feed-detail-rich-modal .norma-feed-modal-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
            .norma-feed-detail-rich-modal .norma-feed-modal-row.is-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .norma-feed-detail-rich-modal .norma-feed-modal-row.is-top > label,
            .norma-feed-detail-rich-modal .norma-feed-modal-row.is-top > select { grid-column: 1 / -1; }
            .norma-feed-detail-rich-modal .norma-feed-modal-side { padding: 16px; gap: 16px; }
        }
        .norma-feed-modal-email-fields,
        .norma-feed-modal-phone-field,
        .norma-feed-modal-online-field,
        .norma-feed-modal-send-button {
            display: none;
        }
        .norma-feed-modal-backdrop.is-email .norma-feed-modal-email-fields,
        .norma-feed-modal-backdrop.is-phone .norma-feed-modal-phone-field,
        .norma-feed-modal-backdrop.is-meeting .norma-feed-modal-online-field {
            display: grid;
        }
        .norma-feed-modal-email-fields {
            row-gap: 16px;
            margin-bottom: 14px;
        }
        .norma-feed-modal-email-fields .norma-feed-modal-row {
            margin-bottom: 0;
        }
        .norma-feed-modal-backdrop.is-email .norma-feed-modal-send-button {
            display: inline-flex;
        }
        .norma-feed-modal-approve-button {
            display: none;
        }
        .norma-feed-modal-chip {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            min-height: 38px;
            margin-bottom: 12px;
            border-radius: 999px;
            background: #fff;
            color: #111827;
            padding: 8px 12px;
            font-size: 11px;
            font-weight: 400;
            box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
        }
        .norma-feed-modal-card .activity-switch {
            position: relative;
            display: inline-flex;
            width: 44px;
            height: 24px;
            border-radius: 999px;
            background: #e5e7eb;
            transition: background .16s ease;
        }
        .norma-feed-modal-card .activity-switch::after {
            content: "";
            position: absolute;
            top: 3px;
            left: 3px;
            width: 18px;
            height: 18px;
            border-radius: 999px;
            background: #fff;
            box-shadow: 0 1px 2px rgba(15, 23, 42, .18);
            transition: transform .16s ease;
        }
        .norma-feed-modal-card input:checked + .activity-switch {
            background: #16a34a;
        }
        .norma-feed-modal-card input:checked + .activity-switch::after {
            transform: translateX(20px);
        }
        .norma-feed-link-picker {
            position: fixed;
            inset: 0;
            z-index: 5;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 24px;
            background: rgba(17, 24, 39, .28);
        }
        .norma-feed-link-picker.is-open { display: flex; }
        .norma-feed-link-picker-card {
            width: 620px;
            max-width: 100%;
            min-height: 600px;
            overflow: hidden;
            border: 1px solid #bfdbfe;
            border-radius: 10px;
            background: #fff;
            box-shadow: 0 18px 50px rgba(15, 23, 42, .28);
        }
        .norma-feed-link-type,
        .norma-feed-link-result {
            display: block;
            width: 100%;
            border-radius: 6px;
            text-align: left;
        }
        .norma-feed-link-type { padding: 8px 10px; color: #4b5563; font-size: 14px; }
        .norma-feed-link-type:hover,
        .norma-feed-link-type.is-active { background: #eff6ff; color: #111827; font-weight: 800; }
        .norma-feed-link-result { padding: 8px 10px; color: #374151; font-size: 14px; }
        .norma-feed-link-result:hover,
        .norma-feed-link-result.is-selected { background: #dbeafe; color: #1d4ed8; font-weight: 800; }
        .norma-feed-link-search { padding-left: 36px !important; }
        #activity-feed-context-button {
            background: #16a34a;
        }
        #activity-feed-context-button:hover {
            background: #15803d;
        }

/* Keep all cockpit columns in the viewport; their content scrolls inside. */
body:has(#norma-cockpit-frame) { height: 100vh; height: 100dvh; min-height: 0; overflow: hidden; }
#norma-cockpit-frame { height: 100vh; height: 100dvh; min-height: 0; overflow: hidden; }
#norma-cockpit-frame > main { min-width: 0; min-height: 0; overflow: hidden; }
#norma-cockpit-frame > #left-cockpit-sidebar { height: 100%; max-height: 100%; min-height: 0; }
#norma-cockpit-frame > #main-cockpit-nav { height: 100%; min-height: 0; overflow-y: auto; }
#norma-cockpit-frame #spa-content-target { min-height: 0; flex: 1 1 0; overflow: auto; }
