.arub-plugin-shell {
	--arub-green: #177b62;
	--arub-green-dark: #105b49;
	--arub-green-pale: #eaf6f1;
	--arub-ink: #183c34;
	--arub-muted: #62766f;
	--arub-line: #cddfd8;
	--arub-paper: #fff;
	--arub-warm: #fff9ef;
	--arub-danger: #b8323e;
	color: var(--arub-ink);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.45;
	margin: 1.5rem auto;
	max-width: 1160px;
	container-type: inline-size;
}

.arub-plugin-shell--content { max-width: 920px; }
.arub-plugin-shell *, .arub-plugin-shell *::before, .arub-plugin-shell *::after { box-sizing: border-box; }
.arub-plugin-shell button, .arub-plugin-shell input, .arub-plugin-shell select, .arub-plugin-shell textarea { font: inherit; }
.arub-plugin-shell button { cursor: pointer; }
.arub-plugin-shell button:disabled { cursor: not-allowed; opacity: .55; }

.arub-app {
	background: #f4f8f6;
	border: 1px solid var(--arub-line);
	border-radius: 26px;
	box-shadow: 0 18px 60px rgba(21, 68, 57, .12);
	overflow: hidden;
}

.arub-app-header {
	align-items: center;
	background: linear-gradient(125deg, #124f42, #177b62 62%, #258e74);
	color: #fff;
	display: flex;
	justify-content: space-between;
	padding: 28px 34px 26px;
}

.arub-app-header h1 { color: #fff; font-size: clamp(1.7rem, 4vw, 2.65rem); letter-spacing: -.045em; line-height: 1; margin: .28rem 0 .5rem; }
.arub-app-header p { color: rgba(255, 255, 255, .82); font-size: .9rem; margin: 0; }
.arub-kicker { color: #bfe8da; font-size: .72rem; font-weight: 850; letter-spacing: .16em; }
.arub-area-pill { background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .24); border-radius: 16px; display: grid; gap: 2px; max-width: 250px; padding: 12px 16px; }
.arub-area-pill small { color: #bfe8da; font-size: .68rem; text-transform: uppercase; }
.arub-area-pill b { color: #fff; font-size: .92rem; }

.arub-steps { background: #fff; border-bottom: 1px solid var(--arub-line); display: grid; grid-template-columns: repeat(6, 1fr); padding: 0 22px; }
.arub-step { align-items: center; background: none; border: 0; border-bottom: 3px solid transparent; color: var(--arub-muted); display: flex; font-size: .77rem; font-weight: 750; gap: 7px; justify-content: center; padding: 15px 6px 13px; }
.arub-step span { align-items: center; background: #e9efec; border-radius: 50%; display: inline-flex; font-size: .68rem; height: 22px; justify-content: center; width: 22px; }
.arub-step:hover { color: var(--arub-green); }
.arub-step.is-active { border-color: var(--arub-green); color: var(--arub-green-dark); }
.arub-step.is-active span { background: var(--arub-green); color: #fff; }

.arub-workspace { padding: 25px; }
.arub-panel { background: var(--arub-paper); border: 1px solid var(--arub-line); border-radius: 20px; padding: clamp(20px, 4vw, 34px); }
.arub-panel--matrix { padding-left: 22px; padding-right: 22px; }
.arub-section-heading { align-items: flex-start; display: flex; gap: 18px; justify-content: space-between; margin-bottom: 24px; }
.arub-section-heading h2 { color: var(--arub-ink); font-size: clamp(1.35rem, 3vw, 1.85rem); letter-spacing: -.035em; margin: 2px 0 6px; }
.arub-section-heading p { color: var(--arub-muted); margin: 0; max-width: 720px; }
.arub-eyebrow { color: var(--arub-green); font-size: .68rem; font-weight: 850; letter-spacing: .14em; }
.arub-official-badge, .arub-ready, .arub-count { background: var(--arub-green-pale); border: 1px solid #b5ddcf; border-radius: 999px; color: var(--arub-green-dark); display: inline-block; font-size: .7rem; font-weight: 800; padding: 6px 10px; white-space: nowrap; }

.arub-form-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.arub-form-grid label, .arub-add-box > label { color: var(--arub-ink); display: grid; font-size: .8rem; font-weight: 800; gap: 6px; }
.arub-form-grid small { color: var(--arub-muted); font-weight: 500; }
.arub-field-wide { grid-column: 1 / -1; }
.arub-plugin-shell input[type="text"], .arub-plugin-shell input[type="number"], .arub-plugin-shell input[type="search"], .arub-plugin-shell select, .arub-plugin-shell textarea {
	background: #fff;
	border: 1px solid #bcd1ca;
	border-radius: 10px;
	color: var(--arub-ink);
	min-height: 42px;
	padding: 9px 11px;
	width: 100%;
}
.arub-plugin-shell textarea { line-height: 1.4; resize: vertical; }
.arub-plugin-shell input:focus, .arub-plugin-shell select:focus, .arub-plugin-shell textarea:focus, .arub-plugin-shell button:focus-visible, .arub-matrix-scroll:focus-visible { box-shadow: 0 0 0 3px rgba(23, 123, 98, .22); outline: 2px solid var(--arub-green); outline-offset: 1px; }

.arub-split-notice { background: var(--arub-warm); border: 1px solid #efdfba; border-radius: 14px; display: grid; font-size: .82rem; gap: 5px; margin-top: 20px; padding: 15px 17px; }
.arub-split-notice span { color: #685f4f; }
.arub-source-link { color: var(--arub-green-dark); font-size: .76rem; font-weight: 850; margin-top: 4px; text-underline-offset: 3px; }
.arub-card { border: 1px solid var(--arub-line); border-radius: 14px; }
.arub-privacy { align-items: center; display: flex; gap: 13px; margin-top: 14px; padding: 14px 16px; }
.arub-privacy > span { align-items: center; background: var(--arub-green); border-radius: 50%; color: #fff; display: flex; flex: 0 0 30px; height: 30px; justify-content: center; }
.arub-privacy p { color: var(--arub-muted); font-size: .8rem; margin: 2px 0 0; }

.arub-normative-card { align-items: center; background: #f3f8ff; border: 1px solid #c9dcef; border-radius: 15px; display: flex; gap: 18px; justify-content: space-between; margin-top: 20px; padding: 17px; }
.arub-normative-card h3 { color: #244e70; font-size: .95rem; margin: 2px 0 4px; }
.arub-normative-card p { color: #5a7082; font-size: .76rem; margin: 0; }
.arub-normative-panel { background: #f3f8ff; border: 1px solid #c9dcef; border-radius: 15px; margin-top: 20px; overflow: hidden; }
.arub-normative-panel > summary { align-items: center; color: #244e70; cursor: pointer; display: flex; justify-content: space-between; list-style: none; padding: 14px 17px; }
.arub-normative-panel > summary::-webkit-details-marker { display: none; }
.arub-normative-panel > summary > span:first-child { display: grid; gap: 1px; }
.arub-normative-panel > summary small { color: #56809f; font-size: .62rem; font-weight: 850; letter-spacing: .13em; }
.arub-normative-panel > summary b { font-size: .9rem; }
.arub-normative-status { background: #e7f5ee; border-radius: 999px; color: var(--arub-green-dark); font-size: .66rem; font-weight: 800; padding: 6px 9px; }
.arub-normative-list { border-top: 1px solid #c9dcef; display: grid; gap: 8px; padding: 12px; }
.arub-normative-source { align-items: center; background: #fff; border: 1px solid #d9e5ef; border-radius: 11px; display: flex; gap: 14px; justify-content: space-between; padding: 11px 13px; }
.arub-normative-source > div { display: grid; gap: 1px; }
.arub-normative-source span { color: #56809f; font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.arub-normative-source b { color: #244e70; font-size: .76rem; }
.arub-normative-source small { color: #687f90; font-size: .66rem; }
.arub-normative-source a { color: var(--arub-green-dark); font-size: .67rem; font-weight: 800; white-space: nowrap; }
.arub-normative-warning { background: #fffaf0; border-left: 3px solid #e4af43; color: #6d624d; font-size: .68rem; margin: 3px 0 0; padding: 9px 11px; }
.arub-cycle-notice { background: #fffaf0; border: 1px solid #ead7aa; border-radius: 12px; display: grid; gap: 3px; margin-top: 12px; padding: 12px 14px; }
.arub-cycle-notice b { color: #725719; font-size: .76rem; }
.arub-cycle-notice span { color: #766b55; font-size: .7rem; }
.arub-scale-section { border-top: 1px solid var(--arub-line); margin-top: 22px; padding-top: 20px; }
.arub-subheading h3 { font-size: 1rem; margin: 0 0 3px; }
.arub-subheading p { color: var(--arub-muted); font-size: .76rem; margin: 0; }
.arub-scale-picker { display: grid; gap: 9px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 13px; }
.arub-scale-option { background: #fff; border: 1px solid var(--arub-line); border-radius: 12px; color: var(--arub-ink); display: grid; gap: 2px; min-height: 70px; padding: 12px; text-align: left; }
.arub-scale-option b { font-size: .82rem; }
.arub-scale-option span { color: var(--arub-muted); font-size: .68rem; }
.arub-scale-option.is-active { background: var(--arub-green-pale); border-color: var(--arub-green); box-shadow: inset 0 0 0 1px var(--arub-green); }
.arub-custom-scale { background: #f7faf9; border-radius: 12px; display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 180px)); margin-top: 12px; padding: 13px; }
.arub-custom-scale label { display: grid; font-size: .72rem; font-weight: 800; gap: 4px; }
.arub-custom-levels { background: #f7faf9; border-radius: 12px; margin-top: 8px; padding: 13px; }
.arub-custom-levels > p { color: var(--arub-ink); font-size: .72rem; font-weight: 800; margin: 0 0 8px; }
.arub-custom-levels > div { display: grid; gap: 7px; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
.arub-custom-levels label { border-top: 4px solid var(--stamp); display: grid; font-size: .63rem; font-weight: 750; gap: 3px; }
.arub-custom-levels input { font-size: .7rem !important; min-height: 36px !important; }
.arub-stamp-visual, .arub-matrix-stamps { aspect-ratio: 5.1 / 1; background: #fff; border-radius: 14px; margin-top: 14px; overflow: hidden; }
.arub-stamp-sprite, .arub-matrix-stamps img { display: block; height: 100%; object-fit: cover; object-position: center; width: 100%; }
.arub-numeric-preview { display: grid; gap: 5px; grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); margin-top: 14px; }
.arub-numeric-preview span { background: color-mix(in srgb, var(--stamp) 10%, white); border-top: 5px solid var(--stamp); border-radius: 9px; display: grid; padding: 7px; text-align: center; }
.arub-numeric-preview b { font-size: .65rem; }
.arub-numeric-preview small { color: var(--arub-muted); font-size: .58rem; }
.arub-numeric-preview.is-textual { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }

.arub-paste-rubric {
	background: linear-gradient(135deg, #f5fbf8, #f9f7ff);
	border: 1px solid #c7ddd5;
	border-radius: 17px;
	box-shadow: 0 5px 18px rgba(24, 60, 52, .035);
	margin-top: 20px;
	overflow: hidden;
}
.arub-paste-rubric > summary {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: 13px;
	grid-template-columns: 46px minmax(0, 1fr) auto;
	list-style: none;
	padding: 16px 18px;
}
.arub-paste-rubric > summary::-webkit-details-marker { display: none; }
.arub-paste-rubric > summary > span:nth-child(2) { display: grid; gap: 2px; }
.arub-paste-rubric > summary b { color: var(--arub-green-dark); font-size: .92rem; }
.arub-paste-rubric > summary small { color: var(--arub-muted); font-size: .67rem; }
.arub-paste-rubric > summary > i { color: var(--arub-green); font-size: 1rem; font-style: normal; transition: transform .18s ease; }
.arub-paste-rubric[open] > summary > i { transform: rotate(180deg); }
.arub-paste-icon {
	align-items: center;
	background: linear-gradient(135deg, #dff3eb, #edf5ff);
	border-radius: 13px;
	color: var(--arub-green);
	display: flex;
	height: 46px;
	justify-content: center;
	width: 46px;
}
.arub-paste-icon .arub-icon { height: 24px; width: 24px; }
.arub-paste-body { border-top: 1px solid #c7ddd5; padding: 17px 18px 19px; }
.arub-paste-intro { align-items: end; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 12px; }
.arub-paste-intro h3 { font-size: .9rem; margin: 0 0 3px; }
.arub-paste-intro p { color: var(--arub-muted); font-size: .68rem; margin: 0; }
.arub-paste-intro > span { background: #fff; border: 1px solid #d8e5e0; border-radius: 999px; color: var(--arub-green-dark); flex: 0 0 auto; font-size: .58rem; font-weight: 850; padding: 6px 9px; }
.arub-paste-body > label { display: block; }
.arub-paste-body > label > textarea { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .7rem; line-height: 1.45; min-height: 180px; resize: vertical; width: 100%; }
.arub-paste-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 9px; margin-top: 10px; }
.arub-paste-actions small { color: var(--arub-muted); font-size: .61rem; margin-left: auto; }
.arub-paste-preview { background: #fff; border: 1px solid #c9ddd6; border-radius: 15px; margin-top: 16px; overflow: hidden; }
.arub-paste-preview-head { align-items: end; background: #f5faf8; border-bottom: 1px solid #d4e4df; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr) minmax(240px, 38%); padding: 14px 15px; }
.arub-paste-preview-head .arub-eyebrow { font-size: .56rem; }
.arub-paste-preview-head h4 { font-size: .9rem; margin: 4px 0 2px; }
.arub-paste-preview-head p { color: var(--arub-muted); font-size: .64rem; margin: 0; }
.arub-paste-title { display: grid; font-size: .62rem; font-weight: 850; gap: 4px; }
.arub-paste-title small { color: var(--arub-muted); font-weight: 600; }
.arub-paste-title input { font-size: .7rem !important; min-height: 40px !important; }
.arub-paste-quantitative { align-items: center; background: #fffaf0; border-bottom: 1px solid #eadab7; cursor: pointer; display: flex; gap: 10px; padding: 10px 15px; }
.arub-paste-quantitative input { flex: 0 0 18px; height: 18px; margin: 0; min-height: 18px !important; width: 18px; }
.arub-paste-quantitative > span { display: grid; gap: 1px; }
.arub-paste-quantitative b { color: #705719; font-size: .68rem; }
.arub-paste-quantitative small { color: #776b50; font-size: .58rem; }
.arub-paste-status { display: grid; gap: 2px; padding: 10px 15px; }
.arub-paste-status.is-valid { background: #edf8f3; color: #175f4f; }
.arub-paste-status.is-invalid { background: #fff2f2; color: #8d3030; }
.arub-paste-status b { font-size: .72rem; }
.arub-paste-status span { font-size: .62rem; }
.arub-paste-status small { font-size: .57rem; }
.arub-paste-table-scroll { max-height: min(58vh, 620px); overflow: auto; overscroll-behavior: contain; }
.arub-paste-table { border-collapse: separate; border-spacing: 0; min-width: 780px; table-layout: fixed; width: max(100%, 780px); }
.arub-paste-table th,
.arub-paste-table td { border-bottom: 1px solid #dfe9e5; border-right: 1px solid #dfe9e5; padding: 8px; vertical-align: top; }
.arub-paste-table thead th { background: color-mix(in srgb, var(--stamp, #177b62) 10%, #fff); border-top: 4px solid var(--stamp, #177b62); min-width: 180px; position: sticky; top: 0; z-index: 2; }
.arub-paste-table thead th:first-child { background: #edf5f2; border-top-color: var(--arub-green); left: 0; min-width: 250px; width: 250px; z-index: 4; }
.arub-paste-table thead th > span { display: block; font-size: .67rem; padding: 10px 5px; }
.arub-paste-table thead th:not(:first-child) { padding-right: 34px; position: sticky; }
.arub-paste-table thead input { font-size: .69rem !important; font-weight: 850; min-height: 40px !important; width: 100%; }
.arub-paste-table thead button { background: transparent; border: 0; color: #a73535; font-size: 1rem; height: 30px; padding: 0; position: absolute; right: 5px; top: 11px; width: 26px; }
.arub-paste-table tbody th { background: #f5f9f7; left: 0; position: sticky; width: 250px; z-index: 1; }
.arub-paste-table tbody th > span { align-items: center; background: var(--arub-green); border-radius: 50%; color: #fff; display: flex; font-size: .58rem; height: 24px; justify-content: center; margin-bottom: 5px; width: 24px; }
.arub-paste-table tbody th > button { background: transparent; border: 0; color: #b33b3b; padding: 4px; position: absolute; right: 8px; top: 8px; }
.arub-paste-table tbody th > button .arub-icon { height: 16px; width: 16px; }
.arub-paste-table textarea { font-size: .65rem !important; line-height: 1.35; min-height: 92px !important; resize: vertical; width: 100%; }
.arub-paste-table tbody th textarea { font-weight: 750; padding-right: 26px; }
.arub-paste-confirm { align-items: center; background: #f7faf9; display: flex; gap: 9px; justify-content: flex-end; padding: 12px 14px; }

.arub-stamp-legend { display: grid; gap: 7px; grid-template-columns: repeat(6, minmax(0, 1fr)); margin-top: 14px; }
.arub-stamp-mini { align-items: center; background: color-mix(in srgb, var(--stamp) 8%, white); border: 1px solid color-mix(in srgb, var(--stamp) 34%, white); border-radius: 10px; display: flex; gap: 7px; min-height: 54px; padding: 7px; text-align: left; }
.arub-stamp-art { background: var(--stamp, #177b62); border: 1px solid rgba(255, 255, 255, .7); border-radius: 50%; display: inline-block; flex: 0 0 28px; height: 28px; overflow: hidden; position: relative; width: 28px; }
.arub-stamp-art img { display: block; height: 100%; max-height: 100%; max-width: 100% !important; object-fit: contain; width: 100%; }
.arub-stamp-art--legend { height: 30px; width: 30px; }
.arub-stamp-art--matrix { display: block; height: 26px; margin: 0 auto; width: 26px; }
.arub-stamp-art--evaluation { flex-basis: 27px; height: 27px; width: 27px; }
.arub-stamp-mini > span:last-child { display: grid; min-width: 0; }
.arub-stamp-mini b { color: color-mix(in srgb, var(--stamp) 70%, #222); font-size: .61rem; line-height: 1.15; }
.arub-stamp-mini small { color: var(--arub-muted); font-size: .57rem; }

.arub-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 25px; }
.arub-actions--between { justify-content: space-between; }
.arub-button { align-items: center; border: 1px solid transparent; border-radius: 10px; display: inline-flex; font-size: .8rem; font-weight: 800; justify-content: center; min-height: 40px; padding: 9px 15px; text-decoration: none; }
.arub-button--primary { background: var(--arub-green); color: #fff; }
.arub-button--primary:hover { background: var(--arub-green-dark); }
.arub-button--outline { background: #fff; border-color: var(--arub-green); color: var(--arub-green-dark); }
.arub-button--soft { background: var(--arub-green-pale); border-color: #c3e2d7; color: var(--arub-green-dark); }
.arub-button--ghost { background: transparent; border-color: var(--arub-line); color: var(--arub-muted); }
.arub-button--large { min-height: 48px; padding: 12px 22px; }

.arub-add-box { background: var(--arub-green-pale); border: 1px solid #c6e0d7; border-radius: 15px; padding: 16px; }
.arub-add-box textarea { margin-top: 7px; }
.arub-add-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.arub-writing-guide, .arub-rubric-bank { border: 1px solid var(--arub-line); border-radius: 14px; margin-bottom: 12px; overflow: hidden; }
.arub-writing-guide > summary, .arub-rubric-bank > summary { align-items: center; cursor: pointer; display: flex; gap: 10px; list-style: none; padding: 12px 14px; }
.arub-writing-guide > summary::-webkit-details-marker, .arub-rubric-bank > summary::-webkit-details-marker { display: none; }
.arub-writing-guide > summary > span, .arub-rubric-bank > summary > span { align-items: center; background: var(--arub-green); border-radius: 9px; color: #fff; display: inline-flex; flex: 0 0 30px; font-size: .88rem; height: 30px; justify-content: center; }
.arub-writing-guide > summary > div, .arub-rubric-bank > summary > div { display: grid; }
.arub-writing-guide summary b, .arub-rubric-bank summary b { font-size: .78rem; }
.arub-writing-guide summary small, .arub-rubric-bank summary small { color: var(--arub-muted); font-size: .65rem; }
.arub-writing-guide-body { background: #f7faf9; border-top: 1px solid var(--arub-line); display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 14px; }
.arub-writing-guide-body > div { border-left: 3px solid #c5dfd5; padding-left: 10px; }
.arub-writing-guide-body h3 { font-size: .76rem; margin: 0 0 4px; }
.arub-writing-guide-body p { color: var(--arub-muted); font-size: .68rem; margin: 0 0 5px; }
.arub-guide-example { color: var(--arub-green-dark) !important; font-weight: 750; }
.arub-verb-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.arub-verb-chips span { background: #fff; border: 1px solid #c8ddd5; border-radius: 999px; color: var(--arub-green-dark); padding: 2px 6px; }
.arub-rubric-bank { background: #faf7ff; border-color: #ddd3ea; }
.arub-rubric-bank > summary > span { background: #7358a6; }
.arub-template-grid { border-top: 1px solid #ddd3ea; display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; }
.arub-template-card { align-items: center; background: #fff; border: 1px solid #e2dcec; border-radius: 12px; display: grid; gap: 9px; grid-template-columns: 34px minmax(0, 1fr) auto; padding: 11px; }
.arub-template-icon { align-items: center; background: #f0ebf7; border-radius: 9px; display: inline-flex; font-size: .92rem; height: 34px; justify-content: center; width: 34px; }
.arub-template-card h3 { color: #4f3d72; font-size: .76rem; margin: 0 0 2px; }
.arub-template-card p { color: var(--arub-muted); font-size: .64rem; margin: 0 0 2px; }
.arub-template-card small { color: #746b81; font-size: .58rem; }
.arub-template-card .arub-button { font-size: .66rem; min-height: 34px; padding: 6px 9px; }
.arub-bank-note { color: #6d637a; font-size: .65rem; margin: 0; padding: 0 13px 12px; }
.arub-indicator-list { display: grid; gap: 10px; margin-top: 18px; }
.arub-indicator-card { align-items: flex-start; border: 1px solid var(--arub-line); border-radius: 14px; display: grid; gap: 12px; grid-template-columns: 34px minmax(0, 1fr) auto; padding: 13px; }
.arub-indicator-number, .arub-curriculum-indicator > span { align-items: center; background: var(--arub-ink); border-radius: 50%; color: #fff; display: flex; font-size: .75rem; font-weight: 850; height: 28px; justify-content: center; width: 28px; }
.arub-card-meta { align-items: center; display: flex; gap: 12px; justify-content: space-between; margin-top: 7px; }
.arub-quality { border-radius: 999px; font-size: .68rem; font-weight: 750; padding: 4px 8px; }
.arub-quality--ok { background: #e8f6e9; color: #296232; }
.arub-quality-details { color: #775c20; font-size: .7rem; }
.arub-quality-details summary { cursor: pointer; font-weight: 750; }
.arub-quality-details ul { margin: 7px 0 0; padding-left: 18px; }
.arub-weight { align-items: center; color: var(--arub-muted); display: flex; font-size: .7rem; gap: 6px; }
.arub-weight input { min-height: 31px !important; padding: 4px 6px !important; width: 70px !important; }
.arub-card-controls { display: flex; gap: 4px; }
.arub-icon-button { background: #fff; border: 1px solid var(--arub-line); border-radius: 9px; color: var(--arub-green); font-size: 1.1rem; height: 34px; line-height: 1; padding: 0; width: 34px; }
.arub-icon-button span { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.arub-icon-button--danger { color: var(--arub-danger); }

.arub-indicator-summary { align-items: flex-end; display: grid; gap: 7px; justify-items: end; }
.arub-weight-summary { align-items: center; border: 1px solid; border-radius: 10px; display: flex; gap: 8px; padding: 6px 8px; }
.arub-weight-summary > span { display: grid; }
.arub-weight-summary b { font-size: .72rem; }
.arub-weight-summary small { font-size: .56rem; }
.arub-weight-summary button { background: #fff; border: 1px solid currentColor; border-radius: 7px; color: inherit; font-size: .58rem; font-weight: 800; padding: 4px 6px; }
.arub-weight-summary.is-valid { background: #ecf8f2; border-color: #a9d5c5; color: var(--arub-green-dark); }
.arub-weight-summary.is-warning { background: #fff6df; border-color: #e4c978; color: #725719; }
.arub-linked-empty { align-items: center; background: #f7faf9; border: 1px dashed #bfd3cc; border-radius: 9px; color: var(--arub-muted); display: flex; font-size: .61rem; gap: 8px; justify-content: space-between; margin-top: 8px; padding: 7px 9px; }
.arub-linked-empty button { background: transparent; border: 0; color: var(--arub-green-dark); font-size: .61rem; font-weight: 850; padding: 2px; }
.arub-linked-items { border-top: 1px solid #e1ebe7; margin-top: 9px; padding-top: 8px; }
.arub-linked-items > small { color: var(--arub-muted); display: block; font-size: .57rem; font-weight: 800; margin-bottom: 5px; text-transform: uppercase; }
.arub-linked-items > div { display: flex; flex-wrap: wrap; gap: 6px; }
.arub-linked-chip { align-items: center; background: #eef8f4; border: 1px solid #b9ddcf; border-radius: 10px; display: inline-flex; gap: 6px; max-width: 100%; padding: 6px 7px; }
.arub-linked-chip > i { align-items: center; background: var(--arub-green); border-radius: 50%; color: #fff; display: inline-flex; flex: 0 0 21px; font-size: .57rem; font-style: normal; height: 21px; justify-content: center; }
.arub-linked-chip--official_basic_knowledge_selected_by_teacher { background: #fff8e8; border-color: #ead59b; }
.arub-linked-chip--official_basic_knowledge_selected_by_teacher > i { background: #c78c19; }
.arub-linked-chip--official_specific_competence { background: #f3f0fa; border-color: #d9ceeb; }
.arub-linked-chip--official_specific_competence > i { background: #70569a; }
.arub-linked-chip > span { display: grid; min-width: 0; }
.arub-linked-chip b { font-size: .62rem; }
.arub-linked-chip small { color: var(--arub-muted); font-size: .52rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.arub-linked-chip a { color: var(--arub-green-dark); font-size: .55rem; font-weight: 800; }
.arub-linked-chip > button { background: transparent; border: 0; color: var(--arub-danger); font-size: .85rem; padding: 0 2px; }

.arub-explorer { background: #f7faf9; border: 1px solid var(--arub-line); border-radius: 15px; margin-top: 16px; overflow: hidden; }
.arub-explorer--unavailable { background: #fffaf0; border-color: #ead7aa; padding: 15px; }
.arub-explorer--unavailable h3 { color: #725719; font-size: .88rem; margin: 2px 0 4px; }
.arub-explorer--unavailable p { color: #766b55; font-size: .7rem; margin: 0; }
.arub-explorer-heading { align-items: end; display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr) minmax(240px, 40%); padding: 15px; }
.arub-explorer-heading h3 { font-size: .9rem; margin: 2px 0 4px; }
.arub-explorer-heading p { color: var(--arub-muted); font-size: .68rem; margin: 0; }
.arub-explorer-heading label { display: grid; font-size: .66rem; font-weight: 800; gap: 4px; }
.arub-explorer-heading select { font-size: .69rem; min-height: 38px; }
.arub-explorer-legend { border-top: 1px solid var(--arub-line); display: flex; flex-wrap: wrap; gap: 12px; padding: 9px 15px; }
.arub-explorer-legend span { align-items: center; color: var(--arub-muted); display: flex; font-size: .62rem; gap: 5px; }
.arub-explorer-legend i { border-radius: 50%; height: 8px; width: 8px; }
.arub-explorer-legend .is-official { background: var(--arub-green); }
.arub-explorer-legend .is-suggested { background: #e1a62e; }
.arub-explorer-list { border-top: 1px solid var(--arub-line); max-height: 560px; overflow: auto; }
.arub-explorer-competence { border-bottom: 1px solid var(--arub-line); }
.arub-explorer-competence > summary { align-items: start; cursor: pointer; display: grid; font-size: .7rem; gap: 9px; grid-template-columns: 50px minmax(0, 1fr); padding: 11px 14px; }
.arub-competence-code { background: var(--arub-green-pale); border-radius: 7px; color: var(--arub-green-dark); font-size: .65rem; font-weight: 850; padding: 4px 5px; text-align: center; }
.arub-explorer-body { background: #fff; border-top: 1px solid #e1ebe7; padding: 12px 14px; }
.arub-descriptor-row { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 12px; }
.arub-descriptor-row > b { color: var(--arub-muted); font-size: .64rem; margin-right: 3px; }
.arub-descriptor-chip { align-items: center; background: #f3f0f8; border: 1px solid #ded5eb; border-radius: 999px; display: inline-flex; gap: 4px; max-width: 185px; padding: 4px 7px; }
.arub-descriptor-chip i { align-items: center; background: #7358a6; border-radius: 50%; color: #fff; display: inline-flex; font-style: normal; height: 18px; justify-content: center; width: 18px; }
.arub-descriptor-chip b { color: #5d477f; font-size: .62rem; }
.arub-descriptor-chip small { color: #756e7e; font-size: .54rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.arub-explorer-criteria { display: grid; gap: 7px; }
.arub-explorer-criteria article { align-items: center; border: 1px solid var(--arub-line); border-radius: 10px; display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr) auto; padding: 10px; }
.arub-explorer-criteria p { color: #344d47; font-size: .68rem; margin: 6px 0; }
.arub-explorer-criteria small { color: var(--arub-green); font-size: .58rem; }
.arub-explorer-note { background: #fffaf0; border-top: 1px solid #ead7aa; color: #6d624d; font-size: .62rem; margin: 0; padding: 9px 14px; }
.arub-explorer--launcher { background: linear-gradient(135deg, #f2faf7, #f7f5fb); }
.arub-map-launch { align-items: center; border-top: 1px solid var(--arub-line); display: flex; gap: 14px; justify-content: space-between; padding: 12px 15px; }
.arub-map-launch > div { display: grid; }
.arub-map-launch b { font-size: .7rem; }
.arub-map-launch small { color: var(--arub-muted); font-size: .61rem; max-width: 720px; }

.arub-map-layer { inset: 0; position: fixed; z-index: 999999; }
.arub-map-backdrop { background: rgba(15, 35, 31, .48); border: 0; inset: 0; position: absolute; width: 100%; }
.arub-map-drawer { background: #f7faf9; box-shadow: -18px 0 50px rgba(14, 47, 39, .22); display: grid; grid-template-rows: auto auto auto auto minmax(0, 1fr); height: 100%; max-width: min(920px, 94vw); position: absolute; right: 0; top: 0; width: 920px; }
.arub-map-drawer > header { align-items: flex-start; background: linear-gradient(120deg, #124f42, #177b62); color: #fff; display: flex; justify-content: space-between; padding: 20px 22px; }
.arub-map-drawer header h2 { color: #fff; font-size: 1.25rem; margin: 2px 0 3px; }
.arub-map-drawer header p { color: rgba(255,255,255,.78); font-size: .7rem; margin: 0; }
.arub-map-close { align-items: center; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.34); border-radius: 50%; color: #fff; display: inline-flex; font-size: 1.2rem; height: 36px; justify-content: center; padding: 0; width: 36px; }
.arub-map-toolbar { background: #fff; border-bottom: 1px solid var(--arub-line); display: grid; gap: 12px; grid-template-columns: 1.2fr .8fr; padding: 12px 16px; }
.arub-map-toolbar label { display: grid; font-size: .62rem; font-weight: 800; gap: 4px; }
.arub-map-toolbar input, .arub-map-toolbar select { font-size: .68rem !important; min-height: 38px !important; }
.arub-map-tabs { background: #eef4f1; border-bottom: 1px solid var(--arub-line); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); overflow-x: auto; padding: 0 8px; }
.arub-map-tabs button { align-items: center; background: transparent; border: 0; border-bottom: 3px solid transparent; color: var(--arub-muted); display: grid; font-size: .59rem; gap: 2px; grid-template-columns: 22px minmax(0, 1fr) auto; min-height: 55px; padding: 7px; text-align: left; }
.arub-map-tabs button i { align-items: center; border: 1px solid #bfd3cb; border-radius: 7px; display: inline-flex; font-size: .64rem; font-style: normal; height: 22px; justify-content: center; width: 22px; }
.arub-map-tabs button small { background: #dfeae6; border-radius: 999px; font-size: .49rem; padding: 2px 5px; }
.arub-map-tabs button.is-active { border-color: var(--arub-green); color: var(--arub-green-dark); }
.arub-map-tabs button.is-active i { background: var(--arub-green); border-color: var(--arub-green); color: #fff; }
.arub-map-legend { align-items: center; background: #fff; border-bottom: 1px solid var(--arub-line); display: flex; flex-wrap: wrap; gap: 12px; padding: 8px 16px; }
.arub-map-legend span { align-items: center; color: var(--arub-muted); display: flex; font-size: .57rem; gap: 5px; }
.arub-map-legend i { border-radius: 50%; height: 8px; width: 8px; }
.arub-map-legend .is-official { background: var(--arub-green); }
.arub-map-legend .is-teacher { background: #d9a026; }
.arub-map-legend a { color: var(--arub-green-dark); font-size: .58rem; font-weight: 800; margin-left: auto; }
.arub-map-content { overflow: auto; padding: 14px 16px 28px; }
.arub-map-cards { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.arub-map-cards--key { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.arub-map-key { align-items: start; background: #fff; border: 1px solid var(--arub-line); border-radius: 13px; display: grid; gap: 10px; grid-template-columns: 38px minmax(0, 1fr); padding: 12px; }
.arub-map-key > i { align-items: center; background: var(--arub-green); border-radius: 50%; color: #fff; display: inline-flex; font-style: normal; height: 36px; justify-content: center; width: 36px; }
.arub-map-key > div { display: grid; }
.arub-map-key span { color: var(--arub-green); font-size: .62rem; font-weight: 900; }
.arub-map-key b { font-size: .7rem; }
.arub-map-key small { color: var(--arub-muted); font-size: .56rem; margin-top: 2px; }
.arub-map-key p { display: flex; flex-wrap: wrap; gap: 3px; margin: 7px 0 0; }
.arub-map-key em { background: var(--arub-green-pale); border-radius: 999px; color: var(--arub-green-dark); font-size: .51rem; font-style: normal; font-weight: 800; padding: 2px 5px; }
.arub-map-card { background: #fff; border: 1px solid var(--arub-line); border-radius: 13px; padding: 12px; }
.arub-map-card-head { align-items: start; display: grid; gap: 9px; grid-template-columns: 32px minmax(0, 1fr) auto; }
.arub-map-symbol { align-items: center; background: var(--arub-green); border-radius: 9px; color: #fff; display: inline-flex; font-size: .67rem; font-weight: 900; height: 31px; justify-content: center; width: 31px; }
.arub-map-card-head small { color: var(--arub-muted); display: block; font-size: .53rem; text-transform: uppercase; }
.arub-map-card h4 { color: var(--arub-green-dark); font-size: .7rem; margin: 1px 0; }
.arub-map-card p { color: #405850; font-size: .64rem; margin: 8px 0; }
.arub-map-card .arub-button { font-size: .58rem; min-height: 32px; padding: 5px 8px; }
.arub-map-relations { border-top: 1px solid #e1ebe7; display: flex; flex-wrap: wrap; gap: 4px; margin-top: 9px; padding-top: 8px; }
.arub-map-relations > b { color: var(--arub-muted); flex-basis: 100%; font-size: .54rem; }
.arub-map-relations > span { background: #eff5f2; border-radius: 999px; color: #38574f; font-size: .51rem; padding: 3px 6px; }
.arub-map-relations a { color: var(--arub-green-dark); }
.arub-map-caution { background: #fff8e8; border-left: 3px solid #d9a026; color: #6c5d3f !important; font-size: .56rem !important; padding: 6px 8px; }
.arub-map-caution--wide { margin-top: 12px !important; }
.arub-knowledge-groups { display: grid; gap: 8px; }
.arub-knowledge-groups > details { background: #fff; border: 1px solid var(--arub-line); border-radius: 12px; overflow: hidden; }
.arub-knowledge-groups > details > summary { align-items: center; cursor: pointer; display: flex; font-size: .65rem; font-weight: 850; justify-content: space-between; padding: 10px 12px; }
.arub-knowledge-groups > details > summary span { background: var(--arub-green-pale); border-radius: 999px; color: var(--arub-green-dark); font-size: .53rem; padding: 3px 6px; }
.arub-knowledge-groups > details > div { background: #f7faf9; display: grid; gap: 8px; padding: 8px; }
.arub-map-card--knowledge { border-left: 4px solid #d9a026; }
.arub-map-card-actions { display: flex; flex-wrap: wrap; gap: 6px; }

.arub-switch { align-items: center; color: var(--arub-muted); display: flex; font-size: .72rem; font-weight: 700; gap: 7px; white-space: nowrap; }
.arub-switch input { accent-color: var(--arub-green); height: 18px; width: 18px; }
.arub-legend { display: flex; flex-wrap: wrap; gap: 14px; margin: -8px 0 18px; }
.arub-legend span { align-items: center; color: var(--arub-muted); display: flex; font-size: .68rem; gap: 5px; }
.arub-legend i { border-radius: 50%; height: 8px; width: 8px; }
.arub-legend .is-official { background: var(--arub-green); }
.arub-legend .is-suggested { background: #e1a62e; }

.arub-tree { background: #f7faf9; border: 1px solid var(--arub-line); border-radius: 12px; margin-bottom: 18px; }
.arub-tree > summary { color: var(--arub-green-dark); cursor: pointer; font-size: .78rem; font-weight: 800; padding: 13px 15px; }
.arub-tree-body { border-top: 1px solid var(--arub-line); max-height: 520px; overflow: auto; padding: 8px 15px 15px; }
.arub-tree-body > details { border-bottom: 1px solid #dfe9e5; padding: 8px 0; }
.arub-tree-body summary { cursor: pointer; font-size: .72rem; }
.arub-tree-body summary span { color: var(--arub-green); font-weight: 850; }
.arub-tree-branch { border-left: 3px solid #c9e2d8; color: var(--arub-muted); font-size: .7rem; margin: 8px 0 2px 8px; padding-left: 13px; }
.arub-knowledge-list { color: var(--arub-muted); font-size: .7rem; padding-left: 21px; }

.arub-curriculum-list { display: grid; gap: 15px; }
.arub-curriculum-card { border: 1px solid var(--arub-line); border-radius: 15px; overflow: hidden; }
.arub-curriculum-indicator { align-items: center; background: #f7faf9; display: grid; gap: 11px; grid-template-columns: 30px minmax(0, 1fr) auto; padding: 13px 15px; }
.arub-curriculum-indicator b { display: block; font-size: .82rem; }
.arub-curriculum-indicator small { color: var(--arub-muted); font-size: .66rem; }
.arub-text-button { background: transparent; border: 0; color: var(--arub-green); font-size: .68rem; font-weight: 800; padding: 4px; text-decoration: underline; text-underline-offset: 3px; }
.arub-suggestions { display: grid; gap: 9px; padding: 11px; }
.arub-suggestion { align-items: start; border: 1px solid #dfd8c3; border-radius: 11px; display: grid; gap: 11px; grid-template-columns: 48px minmax(0, 1fr) auto; padding: 11px; }
.arub-suggestion.is-confirmed { background: #f2faf6; border-color: #9bd0bd; }
.arub-suggestion-rank { color: var(--arub-muted); display: grid; font-size: .58rem; justify-items: center; }
.arub-suggestion-rank > span { align-items: center; background: #e1a62e; border-radius: 50%; color: #fff; display: flex; font-size: .7rem; font-weight: 850; height: 23px; justify-content: center; width: 23px; }
.arub-suggestion-rank b { color: #8c6516; }
.arub-suggestion-content p { color: #344d47; font-size: .73rem; margin: 7px 0; }
.arub-suggestion-label { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.arub-confirmed { color: var(--arub-green); font-size: .66rem; font-weight: 850; }
.arub-suggestion details { color: var(--arub-green); font-size: .68rem; }
.arub-suggestion summary { cursor: pointer; font-weight: 750; }
.arub-trace { background: #f7faf9; border-radius: 9px; color: var(--arub-muted); margin-top: 8px; padding: 10px; }
.arub-trace p { color: var(--arub-muted); font-size: .68rem; }
.arub-trace ul { margin: 5px 0; padding-left: 18px; }
.arub-trace li small, .arub-tree-branch li small, .arub-knowledge-list li small { color: var(--arub-green); display: block; font-size: .6rem; margin-top: 2px; }
.arub-exact-source { color: var(--arub-green) !important; font-size: .62rem !important; font-weight: 750; }
.arub-exact-source a, .arub-trace li small a, .arub-tree-branch li small a, .arub-knowledge-list li small a { color: inherit; font-weight: 750; text-underline-offset: 2px; }
.arub-comparison { background: #f4f0fb; border-left: 3px solid #7358a6; color: #584575; margin-top: 9px; padding: 8px; }
.arub-comparison p { color: #584575; margin: 3px 0; }
.arub-empty { color: var(--arub-muted); font-size: .78rem; padding: 10px; }
.arub-curriculum-guard { align-items: center; background: #f7faf9; border: 1px solid var(--arub-line); border-radius: 14px; display: flex; gap: 14px; padding: 17px; }
.arub-curriculum-guard > span { align-items: center; background: var(--arub-green); border-radius: 50%; color: #fff; display: inline-flex; flex: 0 0 34px; height: 34px; justify-content: center; }
.arub-curriculum-guard h3 { font-size: .88rem; margin: 0 0 3px; }
.arub-curriculum-guard p { color: var(--arub-muted); font-size: .72rem; margin: 0; }

.arub-segmented { background: #eaf1ee; border-radius: 10px; display: flex; padding: 3px; }
.arub-segmented button { background: transparent; border: 0; border-radius: 8px; color: var(--arub-muted); font-size: .72rem; font-weight: 800; padding: 7px 11px; }
.arub-segmented button.is-active { background: #fff; box-shadow: 0 2px 7px rgba(19, 67, 55, .12); color: var(--arub-green-dark); }
.arub-matrix-controls { align-items: end; display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.arub-matrix-controls > label { display: grid; font-size: .62rem; font-weight: 800; gap: 3px; min-width: 155px; }
.arub-matrix-controls select { font-size: .7rem; min-height: 34px; padding: 5px 8px; }
.arub-matrix-help { background: var(--arub-warm); border-radius: 9px; color: #665c49; font-size: .72rem; margin: -8px 0 12px; padding: 9px 12px; }
.arub-matrix-stamps { margin: 0 0 12px; max-height: 145px; }
.arub-matrix-scroll { border: 1px solid var(--arub-line); border-radius: 12px; max-width: 100%; overflow: auto; }
.arub-matrix { border-collapse: separate; border-spacing: 0; font-size: .7rem; min-width: 1100px; width: 100%; }
.arub-matrix th, .arub-matrix td { border-bottom: 1px solid var(--arub-line); border-right: 1px solid var(--arub-line); padding: 8px; vertical-align: top; }
.arub-matrix thead th { background: color-mix(in srgb, var(--stamp, var(--arub-ink)) 91%, #222); color: #fff; height: 74px; min-width: 140px; position: sticky; top: 0; z-index: 2; }
.arub-matrix thead th:first-child { background: var(--arub-ink); left: 0; min-width: 190px; z-index: 3; }
.arub-matrix thead th .arub-matrix-level-icon { background: rgba(255, 255, 255, .2); border-radius: 50%; display: inline-grid; font-size: .72rem; height: 24px; place-items: center; width: 24px; }
.arub-matrix thead th b { display: block; font-size: .7rem; margin-top: 4px; }
.arub-matrix thead th small { color: rgba(255, 255, 255, .8); font-weight: 500; }
.arub-matrix tbody th { background: #f7faf9; left: 0; min-width: 190px; position: sticky; z-index: 1; }
.arub-matrix tbody th b { display: block; font-size: .7rem; margin: 6px 0; }
.arub-row-number { align-items: center; background: var(--arub-green); border-radius: 50%; color: #fff; display: flex; height: 22px; justify-content: center; width: 22px; }
.arub-matrix td { background: #fff; min-width: 148px; padding: 5px; }
.arub-matrix textarea { border: 0 !important; font-size: .66rem; min-height: 145px; padding: 7px !important; }

.arub-summary-grid { display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.arub-summary-grid article { background: #f7faf9; border: 1px solid var(--arub-line); border-radius: 12px; display: grid; padding: 13px; }
.arub-summary-grid span { color: var(--arub-muted); font-size: .65rem; text-transform: uppercase; }
.arub-summary-grid b { color: var(--arub-green-dark); font-size: 1.12rem; }
.arub-summary-grid small { color: var(--arub-muted); font-size: .65rem; }
.arub-export-card { align-items: center; background: var(--arub-green-pale); border: 1px solid #bcded2; border-radius: 15px; display: flex; gap: 18px; justify-content: space-between; margin-top: 18px; padding: 18px; }
.arub-export-card h3, .arub-export-secondary h3 { font-size: .96rem; margin: 0 0 4px; }
.arub-export-card p, .arub-export-secondary p { color: var(--arub-muted); font-size: .74rem; margin: 0 0 9px; }
.arub-radio-row { display: flex; flex-wrap: wrap; gap: 12px; }
.arub-radio-row label { color: var(--arub-ink); font-size: .7rem; }
.arub-radio-row input { accent-color: var(--arub-green); }
.arub-export-secondary { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 12px; }
.arub-export-secondary article { border: 1px solid var(--arub-line); border-radius: 13px; padding: 16px; }
.arub-export-secondary .arub-button + .arub-button { margin-left: 6px; }
.arub-export-options { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 18px; }
.arub-export-options article { align-items: flex-start; border: 1px solid var(--arub-line); border-radius: 14px; display: flex; flex-direction: column; padding: 17px; }
.arub-export-options article:first-child { background: var(--arub-green-pale); border-color: #bcded2; }
.arub-export-options h3 { font-size: .96rem; margin: 0 0 4px; }
.arub-export-options p { color: var(--arub-muted); flex: 1; font-size: .74rem; margin: 0 0 12px; }
.arub-export-caution { color: #75674a; display: block; font-size: .58rem; margin-top: 8px; }
.arub-coming { background: #f0edf7; border-radius: 999px; color: #675485; display: inline-block; font-size: .65rem; font-weight: 750; padding: 5px 8px; }
.arub-source-note { border-left: 3px solid var(--arub-green); color: var(--arub-muted); font-size: .7rem; margin-top: 16px; padding: 5px 10px; }

.arub-evaluation-top { align-items: stretch; background: #f7faf9; border: 1px solid var(--arub-line); border-radius: 14px; display: grid; gap: 12px; grid-template-columns: minmax(180px, .8fr) minmax(260px, 1.3fr) 170px; padding: 14px; }
.arub-evaluation-top > label { display: grid; font-size: .7rem; font-weight: 800; gap: 5px; }
.arub-evaluation-top label small { color: var(--arub-muted); font-weight: 500; }
.arub-live-score { align-content: center; background: var(--arub-ink); border-radius: 11px; color: #fff; display: grid; padding: 12px; }
.arub-live-score > small { color: #bfe8da; font-size: .62rem; text-transform: uppercase; }
.arub-live-score > b { color: #fff; font-size: 1.2rem; }
.arub-live-score > span { color: rgba(255, 255, 255, .75); font-size: .62rem; }
.arub-live-score > em { background: var(--stamp); border-radius: 999px; color: #fff; font-size: .6rem; font-style: normal; font-weight: 850; justify-self: start; margin-top: 5px; padding: 3px 7px; }
.arub-evaluation-list { display: grid; gap: 9px; margin-top: 14px; }
.arub-evaluation-list > article { border: 1px solid var(--arub-line); border-radius: 13px; overflow: hidden; }
.arub-evaluation-indicator { align-items: center; background: #f7faf9; display: grid; gap: 10px; grid-template-columns: 28px minmax(0, 1fr); padding: 10px 12px; }
.arub-evaluation-indicator > span { align-items: center; background: var(--arub-ink); border-radius: 50%; color: #fff; display: inline-flex; font-size: .67rem; font-weight: 850; height: 25px; justify-content: center; width: 25px; }
.arub-evaluation-indicator b { display: block; font-size: .73rem; }
.arub-evaluation-indicator small { color: var(--arub-muted); font-size: .6rem; }
.arub-evaluation-levels { display: grid; gap: 5px; grid-template-columns: repeat(auto-fit, minmax(108px, 1fr)); padding: 8px; }
.arub-evaluation-levels button { align-items: center; background: color-mix(in srgb, var(--stamp) 6%, white); border: 1px solid color-mix(in srgb, var(--stamp) 32%, white); border-radius: 9px; color: var(--arub-ink); display: flex; gap: 6px; min-height: 47px; padding: 6px; text-align: left; }
.arub-evaluation-levels button:hover { background: color-mix(in srgb, var(--stamp) 13%, white); }
.arub-evaluation-levels button.is-selected { background: color-mix(in srgb, var(--stamp) 18%, white); border-color: var(--stamp); box-shadow: inset 0 0 0 2px var(--stamp); }
.arub-evaluation-levels i { align-items: center; background: var(--stamp); border-radius: 50%; color: #fff; display: inline-flex; flex: 0 0 25px; font-size: .65rem; font-style: normal; height: 25px; justify-content: center; }
.arub-evaluation-levels button > span { display: grid; }
.arub-evaluation-levels b { font-size: .59rem; line-height: 1.15; }
.arub-evaluation-levels small { color: var(--arub-muted); font-size: .53rem; }
.arub-evaluation-actions { display: flex; flex-wrap: wrap; gap: 9px; justify-content: flex-end; margin-top: 13px; }
.arub-evaluation-warning { align-items: center; background: #fff6df; border: 1px solid #e4c978; border-radius: 10px; color: #725719; display: flex; font-size: .64rem; gap: 8px; margin-top: 12px; padding: 8px 10px; }
.arub-evaluation-warning span { flex: 1; }
.arub-evaluation-warning button { background: #fff; border: 1px solid #a67c1f; border-radius: 7px; color: #725719; font-size: .6rem; font-weight: 800; padding: 5px 7px; }
.arub-evaluation-matrix-scroll { border: 1px solid var(--arub-line); border-radius: 13px; margin-top: 13px; max-width: 100%; overflow: auto; }
.arub-evaluation-matrix { border-collapse: separate; border-spacing: 0; font-size: .63rem; min-width: 1050px; width: 100%; }
.arub-evaluation-matrix th, .arub-evaluation-matrix td { border-bottom: 1px solid var(--arub-line); border-right: 1px solid var(--arub-line); padding: 0; vertical-align: stretch; }
.arub-evaluation-matrix thead th { background: color-mix(in srgb, var(--stamp, var(--arub-ink)) 80%, #fff); color: var(--arub-ink); height: 70px; min-width: 150px; padding: 7px; position: sticky; top: 0; z-index: 3; }
.arub-evaluation-matrix thead th:first-child { background: var(--arub-ink); color: #fff; left: 0; min-width: 210px; z-index: 4; }
.arub-evaluation-matrix thead th b, .arub-evaluation-matrix thead th small { display: block; }
.arub-evaluation-matrix thead th b { font-size: .62rem; margin-top: 3px; }
.arub-evaluation-matrix thead th small { color: color-mix(in srgb, var(--arub-ink) 70%, #fff); font-size: .52rem; }
.arub-evaluation-matrix tbody th { background: #eaf0fa; left: 0; min-width: 210px; padding: 11px; position: sticky; text-align: left; z-index: 2; }
.arub-evaluation-matrix tbody th > span { align-items: center; background: var(--arub-ink); border-radius: 50%; color: #fff; display: inline-flex; font-size: .55rem; height: 20px; justify-content: center; width: 20px; }
.arub-evaluation-matrix tbody th b { display: block; font-size: .68rem; margin: 7px 0; }
.arub-evaluation-matrix tbody th small { color: var(--arub-muted); font-size: .57rem; }
.arub-evaluation-matrix td { background: #fff; min-width: 158px; }
.arub-evaluation-matrix td > button { background: #fff; border: 0; color: var(--arub-ink); display: block; font-size: .62rem; height: 100%; line-height: 1.35; min-height: 116px; padding: 13px 11px; position: relative; text-align: left; touch-action: manipulation; width: 100%; }
.arub-evaluation-matrix td > button:hover { background: color-mix(in srgb, var(--stamp) 10%, white); }
.arub-evaluation-matrix td > button.is-selected { background: color-mix(in srgb, var(--stamp) 24%, white); box-shadow: inset 0 0 0 3px var(--stamp); font-weight: 800; }
.arub-cell-check { align-items: center; background: var(--stamp); border-radius: 50%; color: #fff; display: none; font-size: .58rem; height: 20px; justify-content: center; position: absolute; right: 7px; top: 7px; width: 20px; }
.arub-evaluation-matrix button.is-selected .arub-cell-check { display: inline-flex; }
.arub-group-results { border: 1px solid var(--arub-line); border-radius: 14px; margin-top: 18px; overflow: hidden; }
.arub-group-results > div:first-child { align-items: center; background: var(--arub-green-pale); display: flex; justify-content: space-between; padding: 11px 13px; }
.arub-group-results h3 { font-size: .84rem; margin: 0; }
.arub-group-table { overflow: auto; }
.arub-group-table table { border-collapse: collapse; font-size: .68rem; min-width: 620px; width: 100%; }
.arub-group-table th, .arub-group-table td { border-bottom: 1px solid var(--arub-line); padding: 8px 10px; text-align: left; }
.arub-group-table th { color: var(--arub-muted); font-size: .6rem; text-transform: uppercase; }

.arub-notice { align-items: center; border-bottom: 1px solid; display: flex; font-size: .76rem; justify-content: space-between; padding: 9px 25px; }
.arub-notice--success { background: #e6f5ea; border-color: #acd6b7; color: #255f33; }
.arub-notice--warning { background: #fff5dd; border-color: #e4cc91; color: #725719; }
.arub-notice--info { background: #edf5fa; border-color: #b8d4e5; color: #28596f; }
.arub-notice button { background: none; border: 0; color: inherit; font-size: 1rem; }
.arub-app-foot { background: #e8f0ed; color: var(--arub-muted); display: flex; font-size: .65rem; justify-content: space-between; padding: 11px 26px; }
.arub-app-foot a { color: var(--arub-green-dark); font-weight: 800; }
.arub-resource-info { color: #435c55; margin: 2rem auto; max-width: 820px; padding: 0 1rem; }
.arub-resource-info h2 { color: var(--arub-ink); font-size: 1.35rem; }
.arub-resource-info p { font-size: .9rem; }

.arub-sr-only { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }

@container (max-width: 760px) {
	.arub-app-header { align-items: flex-start; gap: 14px; padding: 22px; }
	.arub-area-pill { display: none; }
	.arub-steps { overflow-x: auto; padding: 0 8px; }
	.arub-step { min-width: 78px; }
	.arub-step span { display: none; }
	.arub-workspace { padding: 12px; }
	.arub-panel { border-radius: 15px; padding: 18px 14px; }
	.arub-section-heading { display: grid; }
	.arub-form-grid, .arub-summary-grid, .arub-export-secondary, .arub-export-options { grid-template-columns: 1fr 1fr; }
	.arub-scale-picker { grid-template-columns: repeat(2, 1fr); }
	.arub-stamp-legend { grid-template-columns: repeat(3, 1fr); }
	.arub-writing-guide-body { grid-template-columns: 1fr; }
	.arub-template-grid { grid-template-columns: 1fr; }
	.arub-explorer-heading { align-items: stretch; grid-template-columns: 1fr; }
	.arub-map-toolbar { grid-template-columns: 1fr; }
	.arub-map-tabs { grid-template-columns: repeat(5, minmax(125px, 1fr)); }
	.arub-map-cards, .arub-map-cards--key { grid-template-columns: 1fr; }
	.arub-evaluation-top { grid-template-columns: 1fr 1fr; }
	.arub-live-score { grid-column: 1 / -1; }
	.arub-suggestion { grid-template-columns: 38px minmax(0, 1fr); }
	.arub-suggestion > .arub-button { grid-column: 2; justify-self: start; }
	.arub-export-card { align-items: stretch; flex-direction: column; }
}

@container (max-width: 500px) {
	.arub-app-header h1 { font-size: 1.7rem; }
	.arub-form-grid, .arub-summary-grid, .arub-export-secondary, .arub-export-options, .arub-scale-picker { grid-template-columns: 1fr; }
	.arub-normative-card { align-items: stretch; flex-direction: column; }
	.arub-normative-source { align-items: stretch; flex-direction: column; }
	.arub-normative-panel > summary { align-items: flex-start; gap: 8px; }
	.arub-normative-status { white-space: nowrap; }
	.arub-custom-scale { grid-template-columns: 1fr 1fr; }
	.arub-stamp-legend { grid-template-columns: repeat(2, 1fr); }
	.arub-template-card { align-items: start; grid-template-columns: 32px minmax(0, 1fr); }
	.arub-template-card .arub-button { grid-column: 2; justify-self: start; }
	.arub-explorer-criteria article { align-items: start; grid-template-columns: 1fr; }
	.arub-map-launch { align-items: stretch; flex-direction: column; }
	.arub-map-drawer { max-width: 100vw; width: 100%; }
	.arub-map-card-head { grid-template-columns: 32px minmax(0, 1fr); }
	.arub-map-card-head > .arub-button { grid-column: 2; justify-self: start; }
	.arub-descriptor-chip small { display: none; }
	.arub-evaluation-top { grid-template-columns: 1fr; }
	.arub-live-score { grid-column: auto; }
	.arub-evaluation-actions { align-items: stretch; flex-direction: column; }
	.arub-evaluation-actions .arub-button { width: 100%; }
	.arub-indicator-card { grid-template-columns: 30px minmax(0, 1fr); }
	.arub-card-controls { grid-column: 2; }
	.arub-card-meta { align-items: flex-start; flex-direction: column; }
	.arub-indicator-summary { justify-items: start; }
	.arub-linked-chip { align-items: flex-start; width: 100%; }
	.arub-curriculum-indicator { grid-template-columns: 28px minmax(0, 1fr); }
	.arub-curriculum-indicator > .arub-text-button { grid-column: 2; justify-self: start; }
	.arub-actions--between { align-items: stretch; flex-direction: column-reverse; }
	.arub-actions .arub-button { width: 100%; }
	.arub-app-foot { display: grid; gap: 3px; }
}

@media (prefers-reduced-motion: reduce) {
	.arub-plugin-shell *, .arub-plugin-shell *::before, .arub-plugin-shell *::after { scroll-behavior: auto !important; transition: none !important; }
}

@media (forced-colors: active) {
	.arub-app, .arub-panel, .arub-indicator-card, .arub-curriculum-card { border: 1px solid CanvasText; }
	.arub-button, .arub-step { forced-color-adjust: auto; }
}

@media print {
	.arub-steps, .arub-actions, .arub-app-foot { display: none !important; }
	.arub-app { border: 0; box-shadow: none; }
	.arub-workspace { padding: 0; }
}

/* 0.4 · interfaz visual, mapa curricular ampliado y dianas */
.arub-plugin-shell { max-width: 1440px; }
.arub-icon { display: block; height: 1.15em; width: 1.15em; }
.arub-app { background: linear-gradient(180deg, #f6faf8 0, #f8fbfa 100%); }
.arub-app-header { gap: 18px; justify-content: flex-start; min-height: 142px; overflow: hidden; position: relative; }
.arub-app-header::after { background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.22) 0 4px, transparent 5px) 0 0/34px 34px; content: ""; height: 180px; opacity: .4; position: absolute; right: -25px; top: -30px; transform: rotate(12deg); width: 330px; }
.arub-brand-mark { align-items: center; background: rgba(255,255,255,.94); border: 1px solid rgba(255,255,255,.7); border-radius: 50%; box-shadow: 0 10px 25px rgba(0,0,0,.14); color: var(--arub-green-dark); display: flex; flex: 0 0 72px; height: 72px; justify-content: center; position: relative; z-index: 2; }
.arub-brand-icon { height: 42px; width: 42px; }
.arub-brand-mark i { align-items: center; background: #f3b72d; border: 3px solid #fff; border-radius: 50%; bottom: -2px; color: #fff; display: flex; font-size: .58rem; font-style: normal; height: 24px; justify-content: center; position: absolute; right: -3px; width: 24px; }
.arub-header-copy { position: relative; z-index: 2; }
.arub-header-actions { align-items: center; display: flex; gap: 10px; margin-left: auto; position: relative; z-index: 2; }
.arub-area-pill { align-items: center; display: flex; gap: 10px; min-width: 225px; }
.arub-area-pill > .arub-icon { height: 25px; width: 25px; }
.arub-area-pill span { display: grid; }
.arub-fullscreen-button, .arub-map-fullscreen, .arub-map-guide-button { align-items: center; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.28); border-radius: 12px; color: #fff; display: inline-flex; font-size: .67rem; font-weight: 800; gap: 7px; min-height: 43px; padding: 9px 11px; }
.arub-steps { box-shadow: 0 5px 16px rgba(25,61,52,.04); position: relative; z-index: 5; }
.arub-step { gap: 8px; min-height: 66px; }
.arub-step > .arub-step-icon { height: 21px; width: 21px; }
.arub-step > .arub-step-number { background: transparent; border: 1px solid #b9c9c3; flex: 0 0 23px; }
.arub-step.is-active > .arub-step-number { background: var(--arub-green); border-color: var(--arub-green); }
.arub-step b { font-size: .76rem; }
.arub-workspace { padding: 26px; }
.arub-panel { box-shadow: 0 8px 30px rgba(24,60,52,.035); }
.arub-section-heading--illustrated { align-items: center; }
.arub-route-art { align-items: center; display: flex; height: 74px; justify-content: center; min-width: 260px; position: relative; }
.arub-route-map { color: #9dcdbd; height: 64px; width: 170px; }
.arub-route-art span { background: var(--arub-green); border: 5px solid #c9e8de; border-radius: 50% 50% 50% 0; height: 30px; left: 74px; position: absolute; top: 4px; transform: rotate(-45deg); width: 30px; }
.arub-route-art i { background: #f1b82d; clip-path: polygon(0 0,100% 22%,62% 50%,100% 75%,0 100%); height: 39px; position: absolute; right: 39px; top: 7px; width: 34px; }
.arub-context-form { background: linear-gradient(145deg, #fff, #fbfdfc); border: 1px solid #dce9e4; border-radius: 17px; box-shadow: inset 0 1px 0 #fff; padding: 18px; }
.arub-normative-panel { margin-bottom: 0; }
.arub-scale-section { background: #fff; border: 1px solid #dce9e4; border-radius: 17px; margin-top: 22px; padding: 18px; }
.arub-scale-option { align-items: center; grid-template-columns: 44px minmax(0,1fr) 20px; min-height: 90px; padding: 13px; position: relative; }
.arub-scale-option > span:nth-child(2) { display: grid; }
.arub-scale-option small { display: block; margin-top: 2px; }
.arub-scale-option > i { align-items: center; background: var(--arub-green); border-radius: 50%; color: #fff; display: flex; font-style: normal; height: 20px; justify-content: center; width: 20px; }
.arub-scale-icon { align-items: center; background: #eef5f2; border-radius: 50%; color: var(--arub-green); display: flex; height: 42px; justify-content: center; width: 42px; }
.arub-scale-option:nth-child(2) .arub-scale-icon { background: #f2ebfb; color: #7855a5; }
.arub-scale-option:nth-child(3) .arub-scale-icon { background: #e9f3ff; color: #2270c2; }
.arub-scale-option:nth-child(4) .arub-scale-icon { background: #fff3e3; color: #db7c13; }
.arub-stamp-mini { flex-direction: column; min-height: 94px; text-align: center; }
.arub-stamp-art--legend { height: 44px; width: 44px; }
.arub-indicator-resources { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0,1fr)); }
.arub-indicator-resources > details { margin: 0; }
.arub-indicator-summary { align-items: flex-end; display: grid; gap: 8px; justify-items: end; }
.arub-weight-summary { align-items: stretch; display: flex; gap: 8px; }
.arub-weight-summary > span { align-items: center; background: #fff; border: 1px solid var(--arub-line); border-radius: 11px; display: flex; gap: 8px; padding: 8px 11px; }
.arub-weight-summary b { color: var(--arub-green-dark); font-size: .9rem; }
.arub-weight-summary small { color: var(--arub-muted); font-size: .57rem; }
.arub-weight-summary button { background: #fff; border: 1px solid var(--arub-green); border-radius: 11px; color: var(--arub-green-dark); font-size: .61rem; font-weight: 850; padding: 7px 10px; }
.arub-indicator-card { background: #fff; box-shadow: 0 4px 14px rgba(24,60,52,.055); grid-template-columns: 38px minmax(0,1fr) 138px; padding: 16px; }
.arub-indicator-number { align-items: center; background: var(--arub-green); border-radius: 50%; color: #fff; display: flex; font-size: .72rem; font-weight: 900; height: 30px; justify-content: center; width: 30px; }
.arub-indicator-main textarea { border: 0; font-size: .82rem; font-weight: 750; min-height: 60px; padding: 0 2px; }
.arub-card-controls { align-items: stretch; border-left: 1px solid #e1ebe7; display: grid; gap: 7px; padding-left: 13px; }
.arub-icon-button { align-items: center; background: #fff; border: 1px solid #c9ddd6; border-radius: 9px; color: var(--arub-green-dark); display: flex; font-size: .58rem; font-weight: 800; gap: 6px; justify-content: flex-start; padding: 7px 8px; }
.arub-icon-button--danger { border-color: #f0c5c9; color: var(--arub-danger); }
.arub-card-meta { align-items: center; display: flex; gap: 12px; justify-content: space-between; }
.arub-weight { align-items: center; color: var(--arub-muted); display: flex; font-size: .61rem; gap: 5px; }
.arub-weight input { font-size: .68rem !important; min-height: 32px !important; padding: 4px 6px !important; width: 66px !important; }
.arub-linked-items > div { display: grid; gap: 7px; }
.arub-linked-chip { align-items: flex-start; display: grid; grid-template-columns: 24px minmax(0,1fr) auto 24px; padding: 8px; width: 100%; }
.arub-linked-chip p { color: #405850; font-size: .61rem; line-height: 1.35; margin: 3px 0; }
.arub-linked-chip small { overflow: visible; text-overflow: clip; white-space: normal; }
.arub-indicator-map-link, .arub-curriculum-launcher { align-items: center; background: #f5f9ff; border: 1px solid #c9dcef; border-radius: 11px; color: #244e70; display: grid; gap: 10px; grid-template-columns: 28px minmax(0,1fr) auto; margin-top: 9px; padding: 9px 11px; text-align: left; width: 100%; }
.arub-indicator-map-link span, .arub-curriculum-launcher span { display: grid; }
.arub-indicator-map-link b, .arub-curriculum-launcher b { font-size: .66rem; }
.arub-indicator-map-link small, .arub-curriculum-launcher small { color: #627b8c; font-size: .57rem; }
.arub-curriculum-launcher { grid-template-columns: 30px minmax(0,1fr) auto 18px; }
.arub-curriculum-launcher em { color: var(--arub-green-dark); font-size: .57rem; font-style: normal; font-weight: 800; }

.arub-map-drawer { grid-template-rows: auto auto auto auto minmax(0,1fr); max-width: min(1440px, 98vw); transition: width .2s ease; width: 1440px; }
.arub-map-drawer.is-expanded { inset: 0; max-width: none; position: fixed; width: 100vw; }
.arub-map-header-actions { align-items: center; display: flex; gap: 8px; }
.arub-map-toolbar { align-items: end; grid-template-columns: 1fr 1fr auto; }
.arub-map-target-status { display: flex; gap: 7px; }
.arub-map-target-status span { background: var(--arub-green-pale); border-radius: 9px; color: var(--arub-green-dark); display: grid; font-size: .5rem; min-width: 82px; padding: 7px; text-align: center; }
.arub-map-target-status b { font-size: .78rem; }
.arub-map-tabs { grid-template-columns: repeat(5, minmax(120px,1fr)); }
.arub-map-tabs button { grid-template-columns: 24px minmax(0,1fr) auto; }
.arub-map-tab-icon { height: 20px; width: 20px; }
.arub-map-overview { display: grid; gap: 13px; }
.arub-diagram-frame { background: #fff; border: 1px solid var(--arub-line); border-radius: 15px; box-shadow: 0 8px 24px rgba(24,60,52,.06); overflow: hidden; position: relative; }
.arub-diagram-frame img { display: block; height: auto; width: 100%; }
.arub-diagram-frame figcaption { background: rgba(16,91,73,.94); bottom: 14px; color: #fff; font-size: .58rem; font-weight: 750; left: 14px; padding: 7px 10px; position: absolute; }
.arub-curriculum-hierarchy { display: grid; gap: 10px; }
.arub-key-tree, .arub-descriptor-tree, .arub-competence-tree, .arub-criterion-tree { background: #fff; border: 1px solid var(--arub-line); border-left: 5px solid var(--competency, var(--arub-green)); border-radius: 13px; overflow: hidden; }
.arub-key-tree > summary, .arub-descriptor-tree > summary, .arub-competence-tree > summary, .arub-criterion-tree > summary { align-items: center; cursor: pointer; display: grid; gap: 10px; grid-template-columns: 40px minmax(0,1fr) auto; list-style: none; padding: 11px 13px; }
.arub-key-tree > summary::-webkit-details-marker, .arub-descriptor-tree > summary::-webkit-details-marker, .arub-competence-tree > summary::-webkit-details-marker, .arub-criterion-tree > summary::-webkit-details-marker { display: none; }
.arub-folder-icon { align-items: center; background: #e7f2ff; border: 1px solid #86b8e8; border-radius: 5px; color: #4f98d9; display: flex; height: 30px; justify-content: center; width: 38px; }
.arub-folder-icon .arub-icon { height: 24px; width: 24px; }
.arub-key-tree summary > span:nth-child(2), .arub-descriptor-tree summary > span:nth-child(2), .arub-competence-tree summary > span:nth-child(2), .arub-criterion-tree summary > span:nth-child(2) { display: grid; min-width: 0; }
.arub-key-tree summary b, .arub-descriptor-tree summary b, .arub-competence-tree summary b, .arub-criterion-tree summary b { font-size: .69rem; }
.arub-key-tree summary small, .arub-descriptor-tree summary small, .arub-competence-tree summary small, .arub-criterion-tree summary small { color: var(--arub-muted); font-size: .54rem; }
.arub-key-tree-body, .arub-descriptor-tree-body, .arub-competence-tree-body { background: #fafcfb; border-top: 1px solid var(--arub-line); display: grid; gap: 8px; padding: 10px 10px 10px 56px; }
.arub-competency-badge { align-items: center; color: var(--competency); display: inline-flex; gap: 5px; }
.arub-competency-badge.is-icon-only { gap: 0; }
.arub-competency-icon { background: var(--competency); border-radius: 50%; color: #fff; height: 27px; padding: 5px; width: 27px; }
.arub-descriptor-row { align-items: flex-start; background: var(--competency-soft, #eef7f4); border-radius: 10px; display: grid; gap: 9px; grid-template-columns: 32px minmax(0,1fr) auto; padding: 9px; }
.arub-descriptor-row p { color: #3b544d; font-size: .61rem; margin: 0; }
.arub-tree-source, .arub-exact-source { font-size: .54rem; white-space: nowrap; }
.arub-tree-source a, .arub-exact-source a { color: var(--arub-green-dark); font-weight: 850; }
.arub-tree-action { justify-self: end; }
.arub-criterion-symbol { align-items: center; background: #e7f2ff; border: 1px solid #86b8e8; border-radius: 6px; color: #337db9; display: flex; font-size: .7rem; font-weight: 900; height: 30px; justify-content: center; width: 30px; }
.arub-affinity-box { background: #fff8e8; border: 1px dashed #d9a026; border-radius: 11px; color: #6c5d3f; font-size: .59rem; margin-top: 8px; padding: 8px 9px; }
.arub-button--linked { background: #e9f6ef; border-color: #95ceb6; color: var(--arub-green-dark); }

.arub-export-hero { align-items: center; background: linear-gradient(135deg, #fff, #f1faf6); border: 1px solid #cae3d9; border-radius: 18px; display: grid; gap: 24px; grid-template-columns: minmax(0,1fr) 300px; margin-bottom: 18px; min-height: 250px; overflow: hidden; padding: 24px 30px; }
.arub-export-hero h2 { color: var(--arub-green-dark); font-size: clamp(1.9rem,4vw,2.8rem); letter-spacing: -.045em; margin: 4px 0 9px; }
.arub-export-hero p { color: var(--arub-muted); max-width: 680px; }
.arub-ready { border-radius: 12px; display: block; font-size: 1rem; margin-top: 20px; max-width: 540px; padding: 13px 16px; }
.arub-export-illustration { align-items: center; background: radial-gradient(circle, #dff4ea 0 58%, transparent 59%); display: flex; height: 210px; justify-content: center; position: relative; }
.arub-export-illustration > span { align-items: center; background: #fff; border: 5px solid var(--arub-green); border-radius: 16px; box-shadow: 0 14px 28px rgba(23,123,98,.18); color: #6e8d84; display: flex; height: 150px; justify-content: center; width: 120px; }
.arub-export-clipboard { height: 82px; width: 82px; }
.arub-export-illustration i { align-items: center; background: #fff; border: 7px solid #61bb78; border-radius: 50%; bottom: 20px; color: #2a9450; display: flex; font-size: 1.4rem; font-style: normal; height: 65px; justify-content: center; position: absolute; right: 42px; width: 65px; }
.arub-export-illustration b { color: #50b978; font-size: 1.6rem; left: 35px; position: absolute; top: 45px; }
.arub-summary-grid article { align-items: center; box-shadow: 0 5px 16px rgba(24,60,52,.05); gap: 10px; grid-template-columns: 46px minmax(0,1fr); }
.arub-summary-grid article > div { display: grid; }
.arub-summary-icon { align-items: center; border-radius: 50%; color: #fff !important; display: flex; height: 44px; justify-content: center; width: 44px; }
.arub-summary-icon.is-green { background: #42a765; }
.arub-summary-icon.is-blue { background: #3d8de4; }
.arub-summary-icon.is-purple { background: #785aca; }
.arub-summary-icon.is-orange { background: #efa530; }
.arub-export-box { background: #fff; border: 1px solid var(--arub-line); border-radius: 18px; margin-top: 18px; padding: 16px; }
.arub-export-box-heading { align-items: center; display: flex; gap: 11px; }
.arub-export-box-heading > span { align-items: center; background: var(--arub-green); border-radius: 50%; color: #fff; display: flex; height: 40px; justify-content: center; width: 40px; }
.arub-export-box-heading h3 { font-size: .9rem; margin: 0; }
.arub-export-box-heading p { color: var(--arub-muted); font-size: .65rem; margin: 1px 0 0; }
.arub-export-options article { background: #fff; display: grid; gap: 13px; grid-template-columns: 96px minmax(0,1fr); min-height: 190px; }
.arub-export-options article:first-child { background: #fff; }
.arub-export-options article.is-student, .arub-export-options article.is-excel { border-color: #a9d8c5; }
.arub-export-options article.is-teacher { border-color: #b8d6f2; }
.arub-export-options article.is-notebook { border-color: #cfc5ef; }
.arub-export-options article > div { display: flex; flex-direction: column; }
.arub-file-icon { align-items: center; color: var(--arub-green); display: flex; height: 86px; justify-content: center; position: relative; width: 86px; }
.arub-file-icon > .arub-icon { height: 74px; width: 74px; }
.arub-file-icon i { background: #e23333; border-radius: 5px; bottom: 5px; color: #fff; font-size: .56rem; font-style: normal; font-weight: 900; left: 1px; padding: 4px 6px; position: absolute; }
.arub-source-note { background: #f3faf7; border: 1px solid #b9ddcf; border-radius: 12px; color: #476158; font-size: .63rem; margin-top: 14px; padding: 11px 13px; }

.arub-target-preview { align-items: center; background: linear-gradient(135deg, #f4fbf8, #fff); border: 1px solid #b9ddcf; border-radius: 17px; display: grid; gap: 20px; grid-template-columns: minmax(0,1fr) 330px; margin-top: 16px; padding: 17px; }
.arub-target-preview h3 { font-size: 1rem; margin: 3px 0; }
.arub-target-preview p { color: var(--arub-muted); font-size: .67rem; }
.arub-target-preview svg { background: #fff; border: 1px solid #dbe9e4; border-radius: 50%; height: 300px; justify-self: center; padding: 17px; width: 300px; }
.arub-target-grid polygon { fill: none; stroke: #c7ddd5; stroke-width: .6; }
.arub-target-grid line { stroke: #b5d2c8; stroke-width: .55; }
.arub-target-value { fill: rgba(23,123,98,.24); stroke: var(--arub-green); stroke-width: 1.4; }
.arub-target-preview circle { fill: var(--arub-green-dark); }
.arub-target-legend { display: grid; gap: 5px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.arub-target-legend span { align-items: center; color: #405850; display: flex; font-size: .57rem; gap: 6px; }
.arub-target-legend i { align-items: center; background: var(--arub-green); border-radius: 50%; color: #fff; display: flex; flex: 0 0 19px; font-size: .5rem; font-style: normal; height: 19px; justify-content: center; }
.arub-app-foot { align-items: center; background: #f4f8f6; border-top: 1px solid var(--arub-line); }
.arub-foot-brand { align-items: center; display: flex; gap: 9px; }
.arub-foot-brand > i { align-items: center; background: var(--arub-green); border-radius: 5px 5px 12px 12px; color: #fff; display: flex; font-size: .76rem; font-style: normal; height: 34px; justify-content: center; width: 34px; }
.arub-foot-brand span { display: grid; }
.arub-foot-brand small { font-size: .54rem; }
.arub-foot-values { display: flex; gap: 5px; }
.arub-foot-values em { background: #fff; border: 1px solid var(--arub-line); border-radius: 8px; color: var(--arub-green-dark); font-size: .55rem; font-style: normal; padding: 6px 8px; }

.arub-page-locked { overflow: hidden; }
.arub-app.is-pseudo-fullscreen, .arub-app:fullscreen { border-radius: 0; height: 100dvh; inset: 0; overflow: auto; position: fixed; width: 100vw; z-index: 999998; }
.arub-app:fullscreen { position: relative; }
.arub-app.is-pseudo-fullscreen .arub-workspace, .arub-app:fullscreen .arub-workspace { margin: auto; max-width: 1680px; }

@container (max-width: 930px) {
	.arub-app-header { min-height: 120px; padding: 22px; }
	.arub-brand-mark { flex-basis: 58px; height: 58px; }
	.arub-brand-icon { height: 34px; width: 34px; }
	.arub-fullscreen-button span, .arub-step-number { display: none; }
	.arub-area-pill { min-width: 190px; }
	.arub-route-art { display: none; }
	.arub-indicator-resources { grid-template-columns: 1fr; }
	.arub-indicator-card { grid-template-columns: 32px minmax(0,1fr); }
	.arub-card-controls { border-left: 0; display: flex; grid-column: 2; padding-left: 0; }
	.arub-icon-button span { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
	.arub-map-toolbar { grid-template-columns: 1fr 1fr; }
	.arub-map-target-status { grid-column: 1 / -1; }
	.arub-export-hero { grid-template-columns: 1fr 220px; }
	.arub-target-preview { grid-template-columns: 1fr 270px; }
	.arub-target-preview svg { height: 250px; width: 250px; }
}

@container (max-width: 680px) {
	.arub-app-header { align-items: center; min-height: 104px; }
	.arub-brand-mark { flex-basis: 52px; height: 52px; }
	.arub-brand-icon { height: 31px; width: 31px; }
	.arub-app-header h1 { font-size: 1.45rem; }
	.arub-app-header p, .arub-area-pill { display: none; }
	.arub-header-actions { margin-left: auto; }
	.arub-step b { font-size: .58rem; }
	.arub-step > .arub-step-icon { height: 18px; width: 18px; }
	.arub-context-form, .arub-scale-section { padding: 13px; }
	.arub-scale-option { grid-template-columns: 38px minmax(0,1fr) 18px; min-height: 76px; }
	.arub-scale-icon { height: 36px; width: 36px; }
	.arub-stamp-mini { min-height: 82px; }
	.arub-indicator-summary { justify-items: start; }
	.arub-section-heading { display: grid; }
	.arub-linked-chip { grid-template-columns: 23px minmax(0,1fr) 24px; }
	.arub-linked-chip > a { grid-column: 2; }
	.arub-linked-chip > button { grid-column: 3; grid-row: 1; }
	.arub-curriculum-launcher { grid-template-columns: 26px minmax(0,1fr) 18px; }
	.arub-curriculum-launcher em { display: none; }
	.arub-map-drawer { max-width: 100vw; width: 100vw; }
	.arub-map-tabs { grid-template-columns: repeat(6, minmax(110px,1fr)); }
	.arub-key-tree-body, .arub-descriptor-tree-body, .arub-competence-tree-body { padding-left: 15px; }
	.arub-descriptor-row { grid-template-columns: 30px minmax(0,1fr); }
	.arub-descriptor-row .arub-tree-source { grid-column: 2; }
	.arub-diagram-frame figcaption { bottom: 0; left: 0; position: relative; }
	.arub-export-hero { grid-template-columns: 1fr; min-height: 0; padding: 20px; }
	.arub-export-illustration { display: none; }
	.arub-export-options article { grid-template-columns: 72px minmax(0,1fr); }
	.arub-file-icon { height: 68px; width: 68px; }
	.arub-file-icon > .arub-icon { height: 58px; width: 58px; }
	.arub-target-preview { grid-template-columns: 1fr; }
	.arub-target-preview svg { height: min(78vw,300px); width: min(78vw,300px); }
	.arub-foot-values { display: none; }
}

/* 0.4.1 · fidelidad visual y recursos indeformables */
.arub-plugin-shell {
	font-size: 16px;
	max-width: 1440px;
}
.arub-plugin-shell :where(h1, h2, h3, h4, p, span, small, b, strong, em, label, button, input, select, textarea) {
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	text-transform: none;
}
.arub-plugin-shell :where(button, input, select, textarea) { letter-spacing: normal; margin: 0; }
.arub-plugin-shell svg { display: block; flex-shrink: 0; }
.arub-app {
	background: #f8fbfa;
	border: 1px solid #b8d8cd;
	border-radius: 22px;
	box-shadow: 0 18px 50px rgba(19, 85, 68, .16);
}

/* Cabecera de Contexto: blanca a la izquierda e ilustrada a la derecha. */
.arub-app-header--context {
	background: #fff;
	color: #0e2d3f;
	isolation: isolate;
	min-height: 166px;
	padding: 28px 38px 38px;
}
.arub-app-header--context::before {
	background: url("../images/header-rubricas-v1.png") right center / cover no-repeat;
	clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
	content: "";
	inset: 0 0 0 auto;
	pointer-events: none;
	position: absolute;
	width: 57%;
	z-index: 1;
}
.arub-app-header--context::after { display: none; }
.arub-app-header--context .arub-header-copy { max-width: 48%; }
.arub-app-header--context h1 { color: #112f45; font-size: clamp(2rem, 4vw, 2.75rem); }
.arub-app-header--context p { color: #687b8c; }
.arub-app-header--context .arub-kicker { color: #55a994; }
.arub-app-header--context .arub-brand-mark {
	background: #edf8f4;
	border: 0;
	box-shadow: none;
	color: #087c65;
}
.arub-app-header--context .arub-brand-mark i,
.arub-app-header--context .arub-header-actions { display: none; }
.arub-app-header--context + .arub-steps {
	border: 1px solid #e0e9e5;
	border-radius: 16px;
	box-shadow: 0 8px 22px rgba(24, 60, 52, .12);
	margin: -22px 24px 0;
	overflow: hidden;
	padding: 0 16px;
}
.arub-app-header--context + .arub-steps .arub-step-number,
.arub-app-header--export + .arub-steps .arub-step-number { display: none; }
.arub-app-header--indicators + .arub-steps .arub-step-icon { display: none; }

/* Cabecera de Indicadores: versión verde de la referencia. */
.arub-app-header--indicators { min-height: 132px; }
.arub-app-header--indicators .arub-brand-mark { flex-basis: 72px; height: 72px; width: 72px; }
.arub-app-header--indicators + .arub-steps .arub-step-number {
	display: inline-flex;
	flex: 0 0 23px;
	height: 23px;
	min-width: 23px;
	width: 23px;
}

/* Cabecera compacta de Exportar, como en la maqueta facilitada. */
.arub-app-header--export {
	min-height: 112px;
	padding-bottom: 22px;
	padding-top: 22px;
}
.arub-app-header--export .arub-header-copy { align-items: baseline; display: flex; flex-wrap: wrap; gap: 0 9px; }
.arub-app-header--export .arub-kicker { color: #fff; font-size: 1.5rem; letter-spacing: .04em; }
.arub-app-header--export h1 { font-size: 1.55rem; letter-spacing: -.02em; margin: 0; }
.arub-app-header--export h1::before { content: "· "; }
.arub-app-header--export p { flex-basis: 100%; margin-top: 5px; }
.arub-app-header--export .arub-header-actions { display: none; }
.arub-brand-mark--shield {
	background: transparent;
	border: 3px solid #fff;
	border-radius: 8px 8px 20px 20px;
	box-shadow: none;
	color: #fff;
	flex-basis: 55px;
	height: 62px;
	width: 55px;
}
.arub-brand-mark--shield span { color: #fff; font-size: 1rem; font-weight: 900; letter-spacing: .08em; }

/* Navegación y paneles con las proporciones de las referencias. */
.arub-steps { min-height: 64px; }
.arub-step { border-radius: 0; min-width: 0; }
.arub-step > .arub-step-icon {
	flex: 0 0 22px;
	height: 22px !important;
	min-width: 22px;
	width: 22px !important;
}
.arub-workspace { padding: 24px 28px 28px; }
.arub-panel { border-color: #dbe7e2; border-radius: 18px; box-shadow: 0 5px 18px rgba(24, 60, 52, .05); }
.arub-context-panel .arub-eyebrow,
.arub-indicators-panel .arub-eyebrow,
.arub-export-panel .arub-eyebrow {
	background: #178169;
	border-radius: 7px;
	color: #fff;
	display: inline-block;
	letter-spacing: .07em;
	padding: 5px 10px;
}
.arub-form-grid { gap: 16px 22px; }
.arub-plugin-shell input[type="text"],
.arub-plugin-shell input[type="number"],
.arub-plugin-shell input[type="search"],
.arub-plugin-shell select,
.arub-plugin-shell textarea {
	border-color: #cad8e2;
	border-radius: 9px;
	min-height: 50px;
}
.arub-normative-panel { background: #f5f9ff; border-color: #b9d4ef; }
.arub-scale-section { border-radius: 17px; box-shadow: 0 5px 18px rgba(24, 60, 52, .035); }
.arub-scale-picker { gap: 14px; }
.arub-scale-option { border-color: #d7e0e6; min-height: 105px; }
.arub-scale-option.is-active { background: #f2faf6; border-color: #128069; box-shadow: inset 0 0 0 1px #128069; }
.arub-scale-icon {
	aspect-ratio: 1 / 1 !important;
	flex: 0 0 46px;
	height: 46px !important;
	min-width: 46px;
	width: 46px !important;
}

/* Cada sello es ahora un SVG independiente, nunca un recorte de un sprite. */
.arub-stamp-legend { gap: 12px; }
.arub-stamp-mini {
	align-items: center;
	border-radius: 11px;
	flex-direction: row;
	gap: 9px;
	justify-content: flex-start;
	min-height: 84px;
	padding: 9px;
	text-align: left;
}
.arub-stamp-art {
	aspect-ratio: 1 / 1 !important;
	background: transparent;
	border: 0;
	border-radius: 0;
	display: inline-block;
	flex: 0 0 34px;
	height: 34px !important;
	min-height: 34px;
	min-width: 34px;
	overflow: visible;
	position: relative;
	width: 34px !important;
}
.arub-stamp-art img {
	display: block !important;
	height: 100% !important;
	left: auto !important;
	max-height: 100% !important;
	max-width: 100% !important;
	object-fit: contain !important;
	object-position: center !important;
	position: static !important;
	top: auto !important;
	transform: none !important;
	width: 100% !important;
}
.arub-stamp-art--legend {
	flex-basis: 50px;
	height: 50px !important;
	min-height: 50px;
	min-width: 50px;
	width: 50px !important;
}
.arub-stamp-art--matrix {
	height: 34px !important;
	margin: 0 auto 4px;
	width: 34px !important;
}
.arub-stamp-art--evaluation {
	flex-basis: 36px;
	height: 36px !important;
	width: 36px !important;
}
.arub-stamp-mini > span:last-child { align-content: center; }
.arub-stamp-mini b { font-size: .68rem; }
.arub-stamp-mini small { font-size: .61rem; }

/* Los iconos de competencia mantienen siempre una circunferencia real. */
.arub-competency-badge { flex-shrink: 0; min-width: 0; }
.arub-competency-icon {
	aspect-ratio: 1 / 1 !important;
	background: var(--competency);
	border-radius: 999px !important;
	box-sizing: border-box !important;
	display: block !important;
	flex: 0 0 29px !important;
	height: 29px !important;
	max-height: 29px !important;
	max-width: 29px !important;
	min-height: 29px !important;
	min-width: 29px !important;
	padding: 5px !important;
	width: 29px !important;
}
.arub-competency-badge.is-small .arub-competency-icon,
.arub-competency-badge.is-tiny .arub-competency-icon {
	flex-basis: 25px !important;
	height: 25px !important;
	max-height: 25px !important;
	max-width: 25px !important;
	min-height: 25px !important;
	min-width: 25px !important;
	width: 25px !important;
}
.arub-key-tree > summary { grid-template-columns: auto minmax(0, 1fr) auto; }
.arub-descriptor-tree > summary { grid-template-columns: 40px auto minmax(0, 1fr) auto; }
.arub-descriptor-tree > summary > span:nth-child(3) {
	display: grid;
	gap: 2px;
	min-width: 0;
}
.arub-descriptor-tree > summary > span:nth-child(3) small {
	display: block;
	line-height: 1.35;
}
.arub-competence-tree > summary { grid-template-columns: 40px minmax(0, 1fr) auto; }
.arub-summary-icon,
.arub-export-box-heading > span,
.arub-brand-mark,
.arub-indicator-number,
.arub-target-legend i,
.arub-cell-check {
	aspect-ratio: 1 / 1 !important;
	flex-shrink: 0 !important;
}

/* Ilustración final de exportación creada específicamente para esta interfaz. */
.arub-export-illustration {
	background: url("../images/exportar-rubrica-lista-v1.png") center / contain no-repeat;
	height: 235px;
}
.arub-export-hero { min-height: 275px; }
.arub-export-hero .arub-eyebrow { background: #e5f4ec; color: #14765f; }

@container (max-width: 930px) {
	.arub-app-header--context { min-height: 145px; padding-left: 24px; }
	.arub-app-header--context::before { width: 52%; }
	.arub-app-header--context .arub-header-copy { max-width: 54%; }
	.arub-app-header--context + .arub-steps { margin-left: 14px; margin-right: 14px; }
	.arub-stamp-legend { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@container (max-width: 680px) {
	.arub-app-header--context { min-height: 112px; padding: 19px 18px 31px; }
	.arub-app-header--context::before { display: none; }
	.arub-app-header--context .arub-header-copy { max-width: none; }
	.arub-app-header--context h1 { font-size: 1.45rem; }
	.arub-app-header--context p { display: block; font-size: .68rem; }
	.arub-app-header--context + .arub-steps { border-radius: 12px; margin: -14px 8px 0; padding: 0 4px; }
	.arub-app-header--export .arub-kicker { font-size: 1rem; }
	.arub-app-header--export h1 { font-size: 1.08rem; }
	.arub-app-header--export p { display: block; }
	.arub-brand-mark--shield { flex-basis: 43px; height: 50px; width: 43px; }
	.arub-step { gap: 4px; padding-left: 3px; padding-right: 3px; }
	.arub-step b { font-size: .54rem; }
	.arub-step > .arub-step-icon { flex-basis: 17px; height: 17px !important; min-width: 17px; width: 17px !important; }
	.arub-workspace { padding: 14px 10px 18px; }
	.arub-stamp-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.arub-stamp-mini { min-height: 76px; }
	.arub-stamp-art--legend { flex-basis: 43px; height: 43px !important; min-height: 43px; min-width: 43px; width: 43px !important; }
	.arub-descriptor-tree > summary { grid-template-columns: 34px auto minmax(0, 1fr) auto; }
}

/* 0.5.0 · jerarquía visual, estabilidad de navegación y recursos finales */
.arub-help-button {
	align-items: center;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .3);
	border-radius: 12px;
	color: #fff;
	display: inline-flex;
	font-size: .67rem;
	font-weight: 850;
	gap: 7px;
	min-height: 43px;
	padding: 9px 11px;
}
.arub-help-button .arub-icon,
.arub-fullscreen-button .arub-icon { height: 20px; width: 20px; }
.arub-app-header--context .arub-brand-mark i { display: none; }
.arub-app-header--context .arub-header-actions {
	display: flex;
	position: absolute;
	right: 24px;
	top: 18px;
}
.arub-app-header--context .arub-area-pill,
.arub-app-header--export .arub-area-pill { display: none; }
.arub-app-header--context .arub-help-button,
.arub-app-header--context .arub-fullscreen-button {
	background: rgba(10, 89, 72, .9);
	border-color: rgba(255, 255, 255, .66);
	box-shadow: 0 5px 15px rgba(16, 70, 57, .16);
}
.arub-app-header--export .arub-header-actions { display: flex; }

.arub-context-form .arub-form-grid > label:nth-child(-n+2) select {
	font-size: 1rem !important;
	font-weight: 750;
	min-height: 62px !important;
	padding-left: 16px;
	padding-right: 42px;
}
.arub-route-art {
	height: 88px;
	min-width: 250px;
}
.arub-route-art-svg { display: block; height: 88px; width: 250px; }
.arub-route-art > span,
.arub-route-art > i,
.arub-route-map { display: none; }

.arub-indicator-resources { grid-template-columns: 1fr; }
.arub-writing-guide > summary,
.arub-rubric-bank > summary { min-height: 68px; }
.arub-writing-guide > summary > div,
.arub-rubric-bank > summary > div { flex: 1 1 auto; min-width: 0; }
.arub-disclosure-chevron {
	color: currentColor;
	height: 22px;
	margin-left: auto;
	transition: transform .18s ease;
	width: 22px;
}
.arub-writing-guide[open] .arub-disclosure-chevron,
.arub-rubric-bank[open] .arub-disclosure-chevron { transform: rotate(180deg); }
.arub-template-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.arub-indicator-weight-bar {
	align-items: center;
	background: #f7faf9;
	border: 1px solid var(--arub-line);
	border-radius: 14px;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin-top: 16px;
	padding: 12px 14px;
}
.arub-indicator-weight-bar > div { display: grid; gap: 2px; }
.arub-indicator-weight-bar p { color: var(--arub-muted); font-size: .65rem; margin: 0; }
.arub-weight-summary > span { white-space: nowrap; }
.arub-weight-summary b { white-space: nowrap; }
.arub-weight-summary.is-warning {
	box-shadow: 0 0 0 3px rgba(228, 169, 38, .12);
}

.arub-explorer--launcher {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 48%);
	padding: 16px;
}
.arub-explorer-intro { padding: 4px 18px 4px 2px; }
.arub-explorer-intro h3 { font-size: .95rem; margin: 3px 0 5px; }
.arub-explorer-intro p { color: var(--arub-muted); font-size: .7rem; margin: 0; }
.arub-explorer-target {
	background: #fff;
	border: 1px solid #bed8cf;
	border-radius: 13px;
	padding: 12px;
}
.arub-explorer-target label { display: grid; font-size: .7rem; font-weight: 850; gap: 6px; }
.arub-explorer-target select {
	font-size: .76rem !important;
	font-weight: 720;
	min-height: 48px !important;
}
.arub-map-launch {
	background: rgba(255, 255, 255, .62);
	border: 1px solid #c9dcef;
	border-radius: 13px;
	grid-column: 1 / -1;
	grid-template-columns: 42px minmax(0, 1fr) auto;
	margin-top: 14px;
	padding: 14px;
}
.arub-map-launch-icon {
	align-items: center;
	background: #edf5ff;
	border-radius: 10px;
	color: #315f88;
	display: flex;
	height: 42px;
	justify-content: center;
	width: 42px;
}
.arub-map-launch-icon .arub-icon { height: 25px; width: 25px; }
.arub-map-launch .arub-button { min-width: 205px; }

.arub-map-toolbar {
	align-items: center;
	grid-template-columns: minmax(280px, 1.35fr) minmax(220px, .9fr) auto;
	gap: 9px;
	padding: 9px 12px;
}
.arub-map-toolbar label {
	background: #f8fbfa;
	border: 1px solid #d4e2dd;
	border-radius: 11px;
	padding: 7px 9px;
}
.arub-map-toolbar input,
.arub-map-toolbar select { min-height: 40px !important; }
.arub-map-target-status {
	grid-column: auto;
	justify-content: flex-end;
	white-space: nowrap;
}
.arub-map-drawer > header { padding: 14px 18px; }
.arub-map-drawer header h2 { font-size: 1.1rem; }
.arub-map-tabs button { min-height: 48px; padding-bottom: 5px; padding-top: 5px; }
.arub-map-legend { gap: 9px; padding: 6px 12px; }
.arub-map-content { padding: 12px 14px 24px; }

.arub-diagram-credit {
	align-items: center;
	background: rgba(255, 255, 255, .96);
	border: 1px solid #c4dcd3;
	border-radius: 10px;
	bottom: 14px;
	display: flex;
	gap: 9px;
	padding: 7px 9px;
	position: absolute;
	right: 14px;
}
.arub-diagram-qr { flex: 0 0 52px; height: 52px; width: 52px; }
.arub-diagram-credit > span { display: grid; gap: 2px; }
.arub-diagram-credit b { color: var(--arub-green-dark); font-size: .58rem; }
.arub-diagram-credit small { color: var(--arub-muted); font-size: .5rem; }
.arub-map-overview figure { margin: 0; }
.arub-map-overview figure > figcaption {
	color: var(--arub-muted);
	font-size: .58rem;
	margin-top: 7px;
}

.arub-map-guide-layer {
	align-items: center;
	background: rgba(8, 31, 26, .68);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: clamp(12px, 3vw, 34px);
	position: absolute;
	z-index: 6;
}
.arub-map-guide-backdrop {
	background: transparent;
	border: 0;
	inset: 0;
	position: absolute;
	width: 100%;
}
.arub-map-guide-dialog {
	background: #f8fbfa;
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 18px;
	box-shadow: 0 24px 70px rgba(8, 31, 26, .34);
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
	max-height: min(94vh, 980px);
	max-width: min(1320px, 96vw);
	overflow: hidden;
	position: relative;
	width: 100%;
	z-index: 1;
}
.arub-map-guide-dialog > header {
	align-items: center;
	background: linear-gradient(120deg, #124f42, #177b62);
	color: #fff;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	padding: 14px 16px;
}
.arub-map-guide-dialog header h3 { color: #fff; font-size: 1rem; margin: 2px 0; }
.arub-map-guide-dialog header p { color: rgba(255,255,255,.78); font-size: .62rem; margin: 0; }
.arub-map-guide-close {
	align-items: center;
	background: rgba(255,255,255,.13);
	border: 1px solid rgba(255,255,255,.36);
	border-radius: 50%;
	color: #fff;
	display: inline-flex;
	flex: 0 0 36px;
	font-size: 1.2rem;
	height: 36px;
	justify-content: center;
	padding: 0;
	width: 36px;
}
.arub-map-guide-dialog figure { margin: 0; overflow: auto; padding: clamp(8px, 1.5vw, 18px); }
.arub-map-guide-dialog img { background: #fff; border-radius: 12px; display: block; height: auto; margin: 0 auto; max-width: 100%; width: 100%; }
.arub-map-guide-dialog figcaption { color: var(--arub-muted); font-size: .58rem; margin-top: 7px; text-align: center; }

.arub-competence-tree-body { padding-right: 18px; }
.arub-tree-action {
	align-items: center;
	display: flex;
	gap: 11px;
	justify-content: flex-end;
	justify-self: stretch;
	padding-right: 4px;
}
.arub-tree-action .arub-button,
.arub-criterion-tree > .arub-button {
	font-size: .56rem;
	min-height: 34px;
	padding: 6px 9px;
	white-space: nowrap;
}
.arub-tree-action > span { margin-left: 0; }
.arub-criterion-tree {
	align-items: start;
	display: grid;
	gap: 12px;
	grid-template-columns: 32px minmax(0, 1fr) auto;
	overflow: visible;
	padding: 13px 14px 13px 10px;
}
.arub-criterion-tree > div { min-width: 0; }
.arub-criterion-tree p {
	color: #3d554e;
	font-size: .62rem;
	line-height: 1.4;
	margin: 5px 0;
	overflow-wrap: anywhere;
}
.arub-criterion-tree small { color: var(--arub-muted); display: block; font-size: .52rem; }

.arub-map-card--descriptor .arub-map-card-head {
	grid-template-columns: 34px minmax(0, 1fr);
}
.arub-descriptor-code-badge { min-width: 30px; }
.arub-competency-badge.is-code-only { max-width: 100%; }
.arub-competency-badge.is-code-only b { font-size: .8rem; white-space: nowrap; }
.arub-map-card-head > div { min-width: 0; }
.arub-map-card-head h4,
.arub-map-card-head p { overflow-wrap: anywhere; }
.arub-map-card--competence .arub-descriptor-row {
	display: grid;
	grid-template-columns: 1fr;
	padding: 11px;
}
.arub-descriptor-chip-grid {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.arub-descriptor-chip {
	align-items: start;
	border-radius: 12px;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	max-width: none;
	min-width: 0;
	padding: 8px;
}
.arub-descriptor-chip > span:last-child { display: grid; min-width: 0; }
.arub-descriptor-chip small {
	display: -webkit-box;
	line-height: 1.3;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: normal;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.arub-curriculum-card { background: #fbfdfc; }
.arub-curriculum-indicator {
	background: linear-gradient(135deg, #edf8f4, #f8fbfa);
	border-bottom: 1px solid #c6ddd5;
	grid-template-columns: 38px minmax(0, 1fr) auto;
	padding: 17px 18px;
}
.arub-curriculum-indicator > span {
	font-size: .84rem;
	height: 34px;
	width: 34px;
}
.arub-curriculum-indicator > div:nth-child(2) { display: grid; gap: 5px; min-width: 0; }
.arub-curriculum-indicator > div:nth-child(2) > b {
	font-size: .9rem;
	line-height: 1.35;
}
.arub-curriculum-indicator > div:nth-child(2) > small { color: var(--arub-muted); font-size: .64rem; }
.arub-curriculum-indicator-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.arub-curriculum-map-button {
	align-items: center;
	background: #fff;
	border: 1px solid #b4d5c9;
	border-radius: 9px;
	color: var(--arub-green-dark);
	display: inline-flex;
	font-size: .62rem;
	font-weight: 850;
	gap: 6px;
	min-height: 36px;
	padding: 7px 10px;
}
.arub-curriculum-map-button .arub-icon { height: 18px; width: 18px; }
.arub-curriculum-linked-layer {
	background: #f8faf9;
	border-bottom: 1px solid #e1ebe7;
	padding: 0 18px 13px 67px;
}
.arub-curriculum-linked-layer .arub-linked-items { border-top: 0; margin-top: 0; padding-top: 12px; }
.arub-curriculum-linked-layer .arub-linked-empty { margin-top: 0; }
.arub-suggestions { background: #fff; padding: 17px 18px 18px; }
.arub-suggestion-intro { display: grid; gap: 2px; margin-bottom: 12px; }
.arub-suggestion-intro b { font-size: .9rem; }
.arub-suggestion-intro small { color: var(--arub-muted); font-size: .64rem; }

.arub-export-illustration {
	background: url("../images/exportar-rubrica-lista-transparente-v2.png") center / contain no-repeat;
}

.arub-resource-info { margin-top: 20px; }
.arub-instructions {
	background: #fff;
	border: 1px solid var(--arub-line);
	border-radius: 18px;
	box-shadow: 0 8px 28px rgba(24, 60, 52, .07);
	overflow: hidden;
	scroll-margin-top: 20px;
}
.arub-instructions > summary {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: 12px;
	grid-template-columns: 46px minmax(0, 1fr) auto;
	list-style: none;
	padding: 17px 20px;
}
.arub-instructions > summary::-webkit-details-marker { display: none; }
.arub-instructions > summary > i {
	align-items: center;
	background: var(--arub-green-pale);
	border-radius: 12px;
	color: var(--arub-green);
	display: flex;
	font-size: 1.2rem;
	font-style: normal;
	height: 46px;
	justify-content: center;
	width: 46px;
}
.arub-instructions > summary > span { display: grid; }
.arub-instructions > summary b { font-size: 1rem; }
.arub-instructions > summary small { color: var(--arub-muted); font-size: .7rem; }
.arub-instructions > summary > em { color: var(--arub-green); font-size: .75rem; font-style: normal; font-weight: 850; }
.arub-instructions-body { border-top: 1px solid var(--arub-line); padding: 20px; }
.arub-instructions-intro { color: var(--arub-muted); font-size: .76rem; margin: 0 0 16px; }
.arub-instruction-grid { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.arub-instruction-grid article {
	background: #f8fbfa;
	border: 1px solid #dce8e4;
	border-radius: 13px;
	padding: 13px;
}
.arub-instruction-grid span {
	align-items: center;
	background: var(--arub-green);
	border-radius: 50%;
	color: #fff;
	display: flex;
	font-size: .66rem;
	font-weight: 900;
	height: 25px;
	justify-content: center;
	width: 25px;
}
.arub-instruction-grid h3 { font-size: .78rem; margin: 8px 0 4px; }
.arub-instruction-grid p { color: var(--arub-muted); font-size: .65rem; margin: 0; }
.arub-instructions-note {
	background: #fff8e8;
	border-left: 4px solid #d9a026;
	color: #6c5d3f;
	font-size: .68rem;
	margin: 14px 0 0;
	padding: 10px 12px;
}

@container (max-width: 930px) {
	.arub-app-header--context .arub-header-actions { right: 14px; top: 12px; }
	.arub-app-header--context .arub-help-button span,
	.arub-app-header--context .arub-fullscreen-button span { display: none; }
	.arub-explorer--launcher { grid-template-columns: 1fr; }
	.arub-explorer-target { margin-top: 12px; }
	.arub-map-launch { grid-column: 1; }
	.arub-descriptor-chip-grid { grid-template-columns: 1fr; }
	.arub-instruction-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.arub-scale-picker { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.arub-paste-preview-head { grid-template-columns: 1fr; }
}

@container (max-width: 680px) {
	.arub-steps {
		display: flex;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x proximity;
		-webkit-overflow-scrolling: touch;
	}
	.arub-step {
		flex: 0 0 96px;
		min-width: 96px;
		scroll-snap-align: start;
		white-space: nowrap;
	}
	.arub-app-header--context .arub-header-actions { right: 10px; top: 10px; }
	.arub-app-header--context .arub-help-button,
	.arub-app-header--context .arub-fullscreen-button { min-height: 38px; padding: 7px; }
	.arub-app-header--context .arub-help-button .arub-icon,
	.arub-app-header--context .arub-fullscreen-button .arub-icon { height: 18px; width: 18px; }
	.arub-scale-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.arub-context-form .arub-form-grid > label:nth-child(-n+2) select { font-size: .86rem !important; min-height: 56px !important; }
	.arub-indicator-weight-bar { align-items: stretch; display: grid; }
	.arub-weight-summary { justify-content: space-between; }
	.arub-map-launch { align-items: stretch; display: grid; grid-template-columns: 38px minmax(0, 1fr); }
	.arub-map-launch .arub-button { grid-column: 1 / -1; min-width: 0; width: 100%; }
	.arub-map-toolbar { grid-template-columns: 1fr; }
	.arub-map-target-status { grid-column: 1; justify-content: stretch; }
	.arub-map-target-status span { flex: 1; }
	.arub-map-header-actions { gap: 5px; }
	.arub-map-guide-button,
	.arub-map-fullscreen { min-height: 38px; padding: 7px; }
	.arub-map-guide-button span,
	.arub-map-fullscreen span { display: none; }
	.arub-map-guide-dialog { max-height: 96vh; }
	.arub-map-guide-dialog > header { align-items: flex-start; padding: 11px 12px; }
	.arub-map-guide-dialog header h3 { font-size: .82rem; }
	.arub-map-guide-dialog header p { font-size: .54rem; }
	.arub-diagram-credit { bottom: 7px; right: 7px; }
	.arub-diagram-qr { flex-basis: 38px; height: 38px; width: 38px; }
	.arub-diagram-credit small { display: none; }
	.arub-criterion-tree { grid-template-columns: 28px minmax(0, 1fr); }
	.arub-criterion-tree > .arub-button { grid-column: 2; justify-self: start; }
	.arub-curriculum-indicator { grid-template-columns: 32px minmax(0, 1fr); }
	.arub-curriculum-indicator-actions { grid-column: 2; justify-content: flex-start; }
	.arub-curriculum-linked-layer { padding-left: 16px; padding-right: 16px; }
	.arub-template-grid,
	.arub-instruction-grid { grid-template-columns: 1fr; }
	.arub-paste-rubric > summary { grid-template-columns: 40px minmax(0, 1fr); padding: 14px; }
	.arub-paste-rubric > summary > i { display: none; }
	.arub-paste-icon { height: 40px; width: 40px; }
	.arub-paste-body { padding: 14px; }
	.arub-paste-intro { align-items: start; display: grid; }
	.arub-paste-intro > span { justify-self: start; }
	.arub-paste-actions small { flex-basis: 100%; margin-left: 0; }
	.arub-paste-confirm { align-items: stretch; display: grid; }
	.arub-paste-confirm .arub-button { width: 100%; }
	.arub-instructions > summary { grid-template-columns: 40px minmax(0, 1fr); padding: 14px; }
	.arub-instructions > summary > i { height: 40px; width: 40px; }
	.arub-instructions > summary > em { display: none; }
}
