.norma-external-shell{padding:38px;min-width:0;max-width:100%;letter-spacing:0}
.norma-external-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.norma-external-toolbar h2{font-size:20px;font-weight:700;margin:0;flex:1}
.norma-external-greeting{margin:0 0 20px;font-size:16px;line-height:1.5;color:#111827}
.norma-external-shell input,.norma-external-shell select,.norma-external-form input,.norma-external-form select,.norma-external-form textarea{border:1px solid #d1d5db;border-radius:6px;background:white;padding:9px 10px;min-width:0;font-size:14px;width:100%;color:#111827}
.norma-external-toolbar select{width:220px;max-width:100%}
.norma-external-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.norma-external-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#6b7280}
.norma-external-form [hidden]{display:none!important}
.norma-external-date{display:block;position:relative;min-width:0}
.norma-external-date [data-date-input]{padding-right:42px}
.norma-external-date>i{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#6b7280;pointer-events:none}
.norma-external-date .norma-external-native-date{position:absolute;right:0;top:0;width:36px;height:100%;padding:0;opacity:0;cursor:pointer}
.norma-external-date:focus-within{outline:2px solid #2563eb;outline-offset:1px;border-radius:6px}
.norma-external-form .wide{grid-column:1/-1}
.norma-external-form textarea{min-height:120px;resize:vertical;font-weight:400}
.norma-external-notes{min-height:120px;max-height:40vh;overflow:auto;padding:9px 10px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#111827;font-size:14px;line-height:1.5;font-weight:400;overflow-wrap:anywhere}
.norma-external-notes:focus{outline:2px solid #2563eb;outline-offset:1px}
.norma-external-notes ul{list-style:disc;padding-left:20px}.norma-external-notes ol{list-style:decimal;padding-left:20px}
.norma-external-password-new{display:grid;gap:16px}
.norma-external-form input[role=switch],.norma-external-hours-filter input[role=switch]{appearance:none;position:relative;width:44px;height:24px;min-height:24px;flex-shrink:0;padding:0;border:0;border-radius:12px;background:#d1d5db;cursor:pointer}
.norma-external-form input[role=switch]:before,.norma-external-hours-filter input[role=switch]:before{content:'';position:absolute;left:2px;top:2px;width:20px;height:20px;border-radius:50%;background:white;box-shadow:0 1px 2px #0002}
.norma-external-form input[role=switch]:checked,.norma-external-hours-filter input[role=switch]:checked{background:#2563eb}
.norma-external-form input[role=switch]:checked:before,.norma-external-hours-filter input[role=switch]:checked:before{left:22px}
.norma-external-form input[role=switch]:focus-visible,.norma-external-hours-filter input[role=switch]:focus-visible{outline:2px solid #111827;outline-offset:2px}
.norma-external-table{width:100%;border-collapse:collapse;font-size:13px}
.norma-external-table th,.norma-external-table td{padding:12px;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle;overflow-wrap:anywhere}
.norma-external-table th{color:#6b7280;font-size:12px;font-weight:600}
.norma-external-scroll{overflow:auto;min-width:0}
.norma-external-table button,.norma-external-shared button{color:#2563eb;text-align:left}
.norma-external-table .actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.norma-external-activities-table{table-layout:fixed;min-width:1260px}
.norma-external-activities-table .project-col{width:260px}
.norma-external-activities-table .status-col{width:80px}
.norma-external-activities-table .hours-col{width:90px}
.norma-external-activities-table .period-col{width:184px}
.norma-external-activities-table .assign-col{width:190px}
.norma-external-activities-table .timer-col{width:170px}
.norma-external-activities-table .actions-col{width:76px}
.norma-external-activities-table .actions{flex-direction:column;align-items:center;gap:8px}
.norma-external-activities-table .actions button{display:flex;align-items:center;justify-content:center;width:32px;min-height:32px}
.norma-external-table .hours-cell{text-align:center;white-space:nowrap}
.norma-external-day-grid{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));min-width:1320px;gap:8px}
.norma-external-day{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;min-height:230px;overflow:hidden}
.norma-external-day header{padding:10px;font-size:12px;background:#dcfce7;border-bottom:1px solid #d1d5db;display:grid;grid-template-columns:1fr auto;gap:4px}
.norma-external-day header>div{grid-column:1/-1}.norma-external-weekday{text-transform:capitalize;text-align:right;font-weight:600}
.norma-external-day.over header{background:#fee2e2;color:#991b1b}
.norma-external-day.unavailable{background:#d1d5db}
.norma-external-slot{position:relative;margin:8px;padding:10px 50px 10px 10px;min-height:116px;background:white;border:1px solid #d1d5db;border-radius:6px;font-size:12px;cursor:grab;overflow-wrap:anywhere}
 .norma-external-slot-actions{position:absolute;top:8px;bottom:8px;right:6px;width:36px;box-sizing:border-box;border-left:1px solid #d1d5db;padding-left:4px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;cursor:default}
.norma-external-slot-controls{display:flex;flex-direction:column;align-items:center;gap:0;width:100%}
.norma-external-slot-actions .norma-external-slot-remove,.norma-external-slot-actions .norma-external-slot-timer,.norma-external-slot-actions .norma-external-slot-submit,.norma-external-slot-actions .norma-external-slot-review,.norma-external-slot-actions .norma-external-slot-rejected{position:static;display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:6px;cursor:pointer}
.norma-external-slot-actions .norma-external-slot-remove{height:24px;min-height:24px;margin-bottom:auto;color:#6b7280}
.norma-external-slot-actions .norma-external-slot-timer{color:#16a34a}
.norma-external-slot-actions .norma-external-slot-submit{color:#2563eb}
.norma-external-slot-actions .norma-external-slot-review{color:#d97706;cursor:default}
.norma-external-slot-actions .norma-external-slot-rejected{cursor:default}
.norma-external-slot-actions .norma-external-hour-review{margin:0}
.norma-external-slot:has(.norma-external-slot-rejected){min-height:144px}
.norma-external-slot-remove:hover{background:#fee2e2;color:#b91c1c}
.norma-external-slot-timer:hover{background:#dcfce7}
.norma-external-slot-submit:hover{background:#dbeafe}
.norma-external-slot.outside{border-left:4px solid #da4b3f}
.norma-external-slot strong,.norma-external-slot small{display:block}
.norma-external-unplanned{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 20px}
.norma-external-unplanned .norma-external-slot{margin:0;width:200px}
.norma-external-info{margin-top:24px}
.norma-external-info h3{font-size:14px;font-weight:700;margin:0 0 12px}
.norma-external-stages{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#4b5563;margin-bottom:12px}
.norma-external-shared{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}
.norma-external-management{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px;margin-top:0;min-width:0;box-shadow:0 1px 2px #0000000d}
.norma-external-management h3{font-weight:700;font-size:14px;margin-bottom:12px}
.norma-external-status{font-size:12px;color:#6b7280;white-space:nowrap}
.norma-external-notifications{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;margin:0 0 20px}
.norma-external-notice{display:inline-flex;align-items:center;gap:10px;padding:5px 8px;border-radius:4px;background:#2563eb;color:#fff}
.norma-external-notice.is-change{background:#eab308;color:#111827}.norma-external-notice button{color:inherit}
.norma-external-section{background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:20px;margin-bottom:20px;min-width:0}
.norma-external-section h3{font-size:14px;font-weight:700;margin:0 0 4px}.norma-external-info h3{margin-bottom:16px}
.norma-external-info h4{font-size:14px;font-weight:700;margin:0;overflow-wrap:anywhere}
.norma-external-project-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px;margin-bottom:14px}
.norma-external-project-period{font-size:12px;color:#6b7280;white-space:nowrap}
.norma-person-heading{display:flex;gap:16px;align-items:center;min-width:0}
.norma-person-avatar{width:96px;height:96px;flex:0 0 96px;border-radius:8px;overflow:hidden;background:#f3f4f6;display:flex;align-items:center;justify-content:center;color:#9ca3af}
.norma-person-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.norma-person-identity{min-width:0;overflow-wrap:anywhere}
.norma-external-stages .is-current{font-weight:700;color:#111827}
.norma-external-subtitle{font-size:13px;color:#6b7280;margin:0 0 14px}
.norma-external-filters{display:grid;gap:8px;width:220px;max-width:100%}.norma-external-filters label{font-size:0}
.norma-external-filters input,.norma-external-filters .norma-external-date>i{font-size:14px}.norma-external-toolbar{align-items:flex-start}
.norma-external-toolbar h2{padding-top:8px}.norma-external-toolbar>button{min-height:38px}
.norma-external-unplanned{margin-bottom:0}
.norma-external-project-name{font-weight:600}
.norma-external-running{display:inline-flex;align-items:center;white-space:nowrap;border-radius:12px;padding:4px 8px;background:#dcfce7;color:#15803d;font-size:10px;font-weight:800;text-transform:uppercase;font-variant-numeric:tabular-nums}
.norma-external-overtime{color:#da4b3f;font-weight:700}
.norma-external-shell [data-service-timer],.norma-external-shell [data-stop]{font-size:16px;width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.norma-external-shell [data-running=true]{color:#da4b3f!important}
.norma-external-hour-header,.norma-external-hour-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(150px,250px) 180px 90px 76px;gap:16px;align-items:center;padding:16px 20px;font-size:13px}
.norma-external-hour-header{font-size:12px;color:#6b7280;border-bottom:1px solid #e5e7eb}
.norma-external-hour-header button{display:inline-flex;align-items:center;gap:8px;font:inherit;color:inherit;text-align:left}
.norma-external-hour-header button:hover,.norma-external-hour-header [aria-sort=ascending] button,.norma-external-hour-header [aria-sort=descending] button{color:#2563eb}
.norma-external-hour-header [role=columnheader]:nth-child(4){text-align:center}
.norma-external-hour-header i{width:10px;font-size:11px;opacity:.65}
.norma-external-table th .norma-external-sort-header{display:inline-flex;align-items:center;gap:6px;font:inherit;color:inherit;text-align:left;white-space:nowrap}
.norma-external-table th .norma-external-sort-header:hover,.norma-external-table th[aria-sort=ascending] .norma-external-sort-header,.norma-external-table th[aria-sort=descending] .norma-external-sort-header{color:#2563eb}
.norma-external-sort-header i{width:10px;font-size:11px;opacity:.65}
.norma-external-hour-review{display:inline-flex;align-items:center;justify-content:center;width:20px;flex-shrink:0;margin-left:auto;font-size:16px}
.norma-external-hour-review.is-approved{color:#16a34a}.norma-external-hour-review.is-rejected{color:#dc2626}
.norma-external-hour-row{border-left:4px solid transparent;border-bottom:1px solid #e5e7eb}.norma-external-hour-row:nth-child(odd){background:#f9fafb}
.norma-external-hour-row:hover{background:#eff6ff}.norma-external-hour-row>div{min-width:0;overflow-wrap:anywhere}
.norma-external-hour-row p{color:#6b7280;font-size:12px;white-space:pre-wrap;margin:4px 0}
.norma-external-hour-row .actions{display:flex;align-items:center;gap:12px}.norma-external-hour-row button{color:#2563eb}
.norma-external-service-tag,.norma-external-review{display:inline-flex;font-size:11px;font-weight:700;padding:3px 8px;border-radius:12px;background:#e0f2fe;color:#0284c7}
.norma-external-review.pending{background:#fef3c7;color:#92400e}.norma-external-review.approved{background:#dcfce7;color:#15803d}.norma-external-review.rejected{background:#fee2e2;color:#991b1b}
.norma-external-hours-filter{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;cursor:pointer}
.norma-external-review.invoiced{background:#dcfce7;color:#15803d}
.norma-external-hour-list .hours-cell{text-align:center}
.norma-external-review-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}
.norma-external-review-actions .norma-external-decline{background:#dc2626;color:#fff}
.norma-external-review-actions .norma-external-approve{background:#16a34a;color:#fff}
.norma-external-review-actions .norma-external-decline:hover{background:#b91c1c}.norma-external-review-actions .norma-external-approve:hover{background:#15803d}
@media(max-width:1200px){.norma-external-hour-header{display:flex;flex-wrap:wrap;gap:16px}.norma-external-hour-row{grid-template-columns:minmax(160px,1fr) 150px 180px}.norma-external-hour-row .hours-cell{text-align:left}}
@media(max-width:600px){.norma-external-section{padding:16px}.norma-external-filters{width:100%}.norma-external-hour-row{grid-template-columns:minmax(0,1fr);gap:10px;padding:16px}.norma-external-toolbar h2{flex-basis:100%}}
.norma-external-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:50vh;overflow:auto;font-size:14px}
@media(max-width:600px){.norma-external-shell{padding:16px}.norma-external-form{grid-template-columns:1fr}.norma-external-toolbar select{width:100%}.norma-external-table th,.norma-external-table td{padding:8px}.norma-external-table{min-width:530px}}

.norma-external-submit-logs{display:grid;gap:8px;margin:16px 0;max-height:36vh;overflow:auto;font-size:13px}
.norma-external-submit-logs>div{display:flex;justify-content:space-between;gap:20px;padding:10px;border-bottom:1px solid #e5e7eb}
.norma-external-form .norma-external-manual-toggle{flex-direction:row;align-items:center;gap:10px}

.norma-external-day,.norma-external-day header{transition:background-color .35s ease}
.norma-external-day.is-drag-target,.norma-external-day.is-drag-target header{background-color:#fef9c3}
@media(prefers-reduced-motion:reduce){.norma-external-day,.norma-external-day header{transition:none}}

/* The two planning views share the same allocations and hours. */
.norma-external-shell select,.norma-external-form select{appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 20 20'%3E%3Cpath fill='%236b7280' d='m5 7 5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.norma-external-notice.is-approved{background:#16a34a;color:#fff}.norma-external-notice.is-rejected{background:#dc2626;color:#fff}
.norma-external-card-project{display:block;color:#6b7280;font-size:10px;line-height:1.4;margin-bottom:3px}
.norma-external-slot{min-height:128px;padding-right:46px}.norma-external-slot-controls{gap:0}
.norma-external-slot-actions{width:30px;right:5px;padding-left:3px;justify-content:flex-start}
.norma-external-slot-actions .norma-external-slot-info,.norma-external-slot-actions .norma-external-slot-timer,.norma-external-slot-actions .norma-external-slot-submit,.norma-external-slot-actions .norma-external-slot-review,.norma-external-slot-actions .norma-external-slot-rejected{width:24px;height:24px;min-height:24px;font-size:15px;display:flex;align-items:center;justify-content:center}
.norma-external-slot-actions .norma-external-slot-remove{height:18px;min-height:18px;margin-bottom:2px;width:24px}
.norma-external-slot-info{color:#f59e0b;flex-shrink:0}.norma-external-shell [data-service-timer]{color:#16a34a}
.norma-external-card-worked{display:flex;justify-content:flex-end;margin-top:10px;min-height:32px}
.norma-external-shell input.norma-external-worked{width:48px;padding:6px;text-align:center;height:36px;font-size:13px}
.norma-external-worked[readonly]{background:#f9fafb}.norma-external-remaining{font-size:13px;margin:0 0 18px;color:#4b5563}
.norma-external-slot.is-saving,.norma-external-list-cell.is-saving{opacity:.65;cursor:progress}.norma-external-slot.is-saving button,.norma-external-list-cell.is-saving button{pointer-events:none}
.norma-external-planning-list{display:grid;grid-template-columns:minmax(300px,2fr) repeat(var(--external-days),minmax(180px,1fr));min-width:1260px;min-height:480px;grid-template-rows:auto;grid-auto-rows:minmax(66px,auto);align-content:start}
.norma-external-list-header{min-height:0;border-radius:6px 6px 0 0;margin-left:6px;background:#fff!important}
.norma-external-list-header header{font-size:11px;gap:4px;padding:10px}
.norma-external-list-labels{display:flex;justify-content:space-between;padding:10px;font-size:10px;font-weight:600;background:#fff}
.norma-external-list-name{display:flex;align-items:center;gap:12px;padding:10px 14px;font-size:12px;border-bottom:1px solid #f3f4f6;min-width:0}
.norma-external-list-name>button{width:20px;flex-shrink:0}.norma-external-list-name>button:first-child{color:#6b7280}
.norma-external-list-name>div{min-width:0;overflow-wrap:anywhere}.norma-external-list-name small{display:block;color:#6b7280;font-size:10px}.norma-external-list-name strong{text-align:left;display:block}
.norma-external-list-cell{display:flex;align-items:center;justify-content:space-around;gap:4px;padding:10px 6px;border-left:1px solid #e5e7eb;border-bottom:1px solid #f3f4f6;transition:background-color .35s ease;min-width:0}
.norma-external-list-cell>small{font-size:9px;white-space:nowrap;color:#6b7280}
.norma-external-shell [data-planned]{width:42px;height:36px;padding:5px;text-align:center;font-size:13px}
.norma-external-list-actions{display:flex;flex-direction:column;align-items:center;gap:0}
.norma-external-list-actions button,.norma-external-list-actions .norma-external-slot-review{display:flex;align-items:center;justify-content:center;min-height:22px;width:22px;font-size:14px}
.norma-external-list-actions [data-plan-submit]{color:#2563eb}.norma-external-list-actions [data-service-timer]{width:22px;min-height:22px}
.norma-external-list-filler{min-height:220px;border-left:1px solid #e5e7eb;transition:background-color .35s ease}
.norma-external-list-filler:first-child{border:0}.norma-external-list-cell.outside{box-shadow:inset 3px 0 #da4b3f}
.norma-external-list-cell.is-drag-target,.norma-external-list-filler.is-drag-target{background:#fef9c3}
.norma-external-planning-list .norma-external-running{font-size:9px;padding:4px;max-width:90px}
@media(prefers-reduced-motion:reduce){.norma-external-list-cell,.norma-external-list-filler{transition:none}}

.norma-external-shell input.norma-external-worked,.norma-external-shell input[data-planned]{appearance:textfield;-moz-appearance:textfield}
.norma-external-shell input.norma-external-worked::-webkit-inner-spin-button,.norma-external-shell input.norma-external-worked::-webkit-outer-spin-button,.norma-external-shell input[data-planned]::-webkit-inner-spin-button,.norma-external-shell input[data-planned]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.norma-external-list-cell:has([data-elapsed])>small{display:none}
.norma-external-list-actions .norma-external-slot-review{color:#d97706}

/* Match header and row control columns; leave the project side open. */
.norma-external-list-labels,.norma-external-list-cell{display:grid;grid-template-columns:42px minmax(0,1fr) 48px 22px;column-gap:4px;padding-left:6px;padding-right:6px;justify-content:normal}
.norma-external-list-labels>span:first-child{grid-column:1;justify-self:start}.norma-external-list-labels>span:nth-child(2){grid-column:3;justify-self:start}
.norma-external-list-cell>[data-planned]{grid-column:1}.norma-external-list-cell>small{grid-column:2}.norma-external-list-cell>[data-worked],.norma-external-list-cell>[data-elapsed]{grid-column:3}.norma-external-list-cell>.norma-external-list-actions{grid-column:4}
.norma-external-list-header{margin-left:0}.norma-external-list-header.is-first-day,.norma-external-list-cell.is-first-day,.norma-external-list-filler.is-first-day,.norma-external-name-filler{border-left:0}
.norma-external-list-name{position:relative;z-index:1;background:#fff}
.norma-external-planning-list .norma-external-list-cell>[data-elapsed]{font-size:8px;padding:3px 1px;min-width:0}
.norma-external-list-header{border-right:0}
