/* Aula 2.0: visual and interaction layer. No canvas or stored geometry changes. */
.b-shell{--aula-blue:#215ae6;--aula-ink:#172b46;--aula-line:#dce5f0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--aula-ink)}
.b-shell :is(button,input,select){font-family:inherit}
.b-shell :is(.b-screen-name,.b-top-actions,.b-dock){background:#fffffff5;border:1px solid #ffffffb3;box-shadow:0 3px 18px #142e5014,0 0 0 1px #21365408;backdrop-filter:blur(16px);border-radius:16px}
.b-shell .b-screen-name{gap:8px}.b-shell .b-class-current{color:#52647b;font-weight:600}.b-shell .b-screen-name input{font-weight:750;color:#172b46}
.b-shell .b-top-actions{gap:5px}.b-shell .b-primary{background:var(--aula-blue);border-color:var(--aula-blue);font-weight:700;box-shadow:0 2px 5px #215ae624}
.b-shell button{transition:background .16s,box-shadow .16s,color .16s;touch-action:manipulation}
.b-shell button:focus-visible,.b-dialog button:focus-visible{outline:3px solid #2275ed;outline-offset:3px}
.b-shell .b-dock{gap:8px;padding:7px 9px;border-radius:19px}.b-shell .b-dock-action{border-radius:11px;color:#405873}.b-shell .b-dock-action:hover:not(:disabled){background:#e9f1ff;color:#174bcc}
.b-shell .b-ai-dock-action{background:#eaf1ff;color:#174bcc}.b-shell .b-widget-controls{border-radius:12px;background:#fff;box-shadow:0 3px 14px #15325525;border:1px solid #d6e3f3}
.b-shell .b-widget-control{border-radius:8px}.b-shell .b-widget-delete{color:#a24451}.b-shell .b-integrated-toggle{color:#647991}
.b-shell .b-present-exit button,.b-shell .b-present-screen-selector{border-radius:12px}.b-shell .b-view-controls{border-radius:13px;box-shadow:0 3px 15px #17315314}
.b-widget{--aula-radius:22px;border-radius:var(--aula-radius);border:1px solid color-mix(in srgb,var(--widget-border) 65%,white);box-shadow:0 4px 0 #172b4606,0 10px 28px #17324d12;background:var(--widget-bg);color:var(--widget-text);transition:box-shadow .18s,border-color .18s}
.b-widget.selected{box-shadow:0 0 0 2px #215ae6,0 0 0 6px #215ae61a,0 10px 28px #17324d18}
.b-widget.b-dragging{box-shadow:0 0 0 2px #215ae6,0 18px 35px #18365435}
.b-widget .b-widget-body{padding:clamp(6px,4cqw,24px);gap:clamp(4px,2cqh,12px);color:var(--widget-text);scrollbar-width:thin;scrollbar-color:var(--widget-border) transparent}
.b-widget.preset-ink{border-color:var(--widget-border);box-shadow:0 10px 28px #081d3830}
.b-widget.preset-outline{background:var(--widget-bg);border:2px solid var(--widget-border);box-shadow:0 6px 18px #172b460a}
.b-widget.preset-bold{border-top:0!important;border-bottom:4px solid var(--widget-accent)}
.b-widget.preset-band{background:var(--widget-bg);border-top:0!important}
.b-widget.preset-band:before{display:none!important}
.b-widget :is(.b-centered-actions,.b-timer-adjust){flex-shrink:0;gap:6px;margin-top:clamp(2px,1cqh,8px)}
.b-shell .b-widget :is(.b-centered-actions button,.b-timer-adjust button){border-radius:999px;min-height:32px;padding:7px 12px;border:1px solid var(--widget-border);color:var(--widget-text);background:var(--widget-bg);font-size:14px;font-weight:650}
.b-shell .b-widget .b-centered-actions .b-primary{background:var(--widget-accent);color:var(--widget-on-accent);border-color:var(--widget-accent)}
.b-shell .b-widget .b-centered-actions .b-primary:hover:not(:disabled){filter:brightness(.93);background:var(--widget-accent)}
.b-shell .b-widget button:disabled{opacity:.48}.b-shell .b-widget button:active:not(:disabled){box-shadow:inset 0 2px 4px #17324d20}
.b-widget .b-muted,.b-widget .b-roster-empty{color:var(--widget-muted);font-size:clamp(14px,5cqw,23px);line-height:1.4;text-wrap:balance}
.b-tool-empty{display:flex;flex:1;min-height:0;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:var(--widget-muted)}
.b-tool-empty>svg{width:clamp(26px,14cqw,62px);height:auto;color:var(--widget-accent)}.b-tool-empty p{margin:0;font-size:clamp(14px,5cqw,22px);line-height:1.4;text-wrap:balance}
.b-shell .b-tool-empty button{border:1px solid var(--widget-border);background:var(--widget-soft);color:var(--widget-text);border-radius:999px;font-weight:650}
/* Clock and date: instrument and calendar, rather than another note card. */
.type-clock:not(.variant-analog){border-radius:20px}.type-clock .b-clock-digits{font-size:clamp(16px,min(24cqw,46cqh),260px)!important;font-weight:750;letter-spacing:-.06em;line-height:1.05!important}
.type-clock .b-clock-date{font-size:clamp(12px,min(4.3cqw,8cqh),26px)!important;letter-spacing:0;font-weight:550;color:var(--widget-muted);margin:0;text-wrap:balance}
.type-clock.variant-flip .b-clock-digits{background:color-mix(in srgb,var(--widget-bg) 80%,black);border:1px solid var(--widget-border);border-radius:12px;box-shadow:inset 0 -2px 0 #0002;letter-spacing:-.035em;padding:clamp(3px,2cqw,12px)}
.type-clock.variant-analog{border:2px solid var(--widget-border);border-radius:50%;box-shadow:0 8px 25px #1634531c}.type-clock.variant-analog .analog-clock{width:min(96cqw,96cqh);max-width:none}.type-clock.variant-analog .b-widget-body{padding:2cqw}
.type-date{border-radius:18px!important}.type-date.variant-calendar{border-top:clamp(6px,5cqh,22px) solid var(--widget-accent)!important}.type-date .b-widget-body{gap:4px!important}
.type-date .b-date-number{font-size:clamp(22px,min(31cqw,53cqh),185px)!important;font-weight:800;letter-spacing:-.07em;line-height:.98}
.type-date .b-clock-date{font-size:clamp(12px,min(5.5cqw,14cqh),36px)!important;line-height:1.25;margin:0;color:var(--widget-muted);font-weight:600;text-wrap:balance}
.type-date.variant-banner .b-widget-body{flex-direction:row!important;align-items:center;justify-content:center;gap:clamp(8px,5cqw,30px)!important}.type-date.variant-banner .b-clock-date{text-align:left;max-width:65%}
/* Time tools: clear state and an uncluttered numerical face. */
.type-timer,.type-stopwatch{border-radius:26px}.type-timer .b-widget-body,.type-stopwatch .b-widget-body{align-items:center}
.type-timer .b-big-time,.type-stopwatch .b-big-time{font-weight:750;letter-spacing:-.06em;font-variant-numeric:tabular-nums;line-height:1!important}
.type-timer.variant-bar .b-time-ring{width:100%!important;max-width:none;aspect-ratio:auto;height:auto!important;border:0!important;background:none!important;box-shadow:none;container-type:normal;padding:4px 0 clamp(16px,5cqh,28px)!important;margin:0;position:relative}
.type-timer.variant-bar .b-big-time{font-size:clamp(18px,min(25cqw,37cqh),240px)!important}
.type-timer.variant-bar .b-time-ring:after{height:clamp(5px,2.5cqh,10px);bottom:0;border-radius:999px;box-shadow:none;background:linear-gradient(90deg,var(--widget-accent) var(--remaining),var(--widget-soft) var(--remaining));transition:none}
.type-timer:not(.variant-bar) .b-time-ring{width:min(84cqw,61cqh)!important;container-type:size;border:0;box-shadow:none;padding:0;margin:0;position:relative;isolation:isolate;background:var(--widget-soft)}
.type-timer.variant-ring .b-time-ring{background:conic-gradient(var(--widget-accent) var(--remaining),var(--widget-soft) 0)!important}
.type-timer.variant-ring .b-time-ring:before{content:"";position:absolute;inset:clamp(5px,2cqw,12px);border-radius:50%;background:var(--widget-bg);z-index:-1}
.type-timer:not(.variant-bar) .b-big-time{font-size:clamp(12px,27cqw,200px)!important}
.type-timer .b-timer-status,.b-stopwatch-status{font-size:clamp(12px,3.8cqw,17px);line-height:1.3;min-height:0;color:var(--widget-muted);text-transform:none;letter-spacing:0;font-weight:600;margin:3px 0 0}
.type-stopwatch .b-big-time{font-size:clamp(18px,min(23cqw,43cqh),220px)!important}.type-stopwatch.variant-display .b-big-time{width:100%;padding:clamp(4px,3cqw,16px);border-radius:12px;box-sizing:border-box;border:1px solid var(--widget-border);background:var(--widget-soft);box-shadow:none}
.type-stopwatch.variant-minimal{border-radius:999px!important}.b-timer-adjust{opacity:.85}.b-shell .b-widget .b-timer-adjust button{min-height:26px;padding:4px 8px;font-size:14px}
/* Plan: reading order and activity state are more important than ornament. */
.type-agenda{border-radius:24px}.type-agenda .b-widget-body{justify-content:flex-start}.type-agenda .b-plan-heading{font-weight:800;letter-spacing:-.035em;font-size:clamp(16px,min(8cqw,10cqh),46px);padding-bottom:clamp(6px,2cqh,14px);border-bottom:1px solid var(--widget-border);margin-bottom:clamp(6px,2cqh,14px)}
.type-agenda .b-plan-row{border-radius:12px;box-shadow:none!important;background:transparent!important;transition:opacity .2s,background .2s}
.type-agenda.variant-cards .b-plan-row{background:color-mix(in srgb,var(--widget-bg) 80%,white)!important;border:1px solid var(--widget-border)}
.type-agenda .b-plan-row.state-now{background:var(--widget-soft)!important;border-color:var(--widget-accent)!important;box-shadow:inset 4px 0 var(--widget-accent)!important}
.type-agenda .b-plan-row.state-done{opacity:.58}.type-agenda .b-plan-name{font-weight:650;line-height:1.28;text-wrap:pretty}.type-agenda .b-plan-time{font-variant-numeric:tabular-nums;font-weight:650;color:var(--widget-muted)}
.type-agenda .b-plan-pictogram{background:var(--widget-soft);border-radius:9px;display:grid;place-items:center;padding:4px;flex:none}.type-agenda .b-plan-status{color:var(--widget-accent)}
/* Notes: a reading surface, a poster or a notebook. */
.type-note{border-radius:8px 24px 24px 24px}.type-note .b-widget-body{justify-content:flex-start;padding:clamp(8px,5cqw,30px)!important;gap:clamp(5px,3cqh,18px)}
.type-note .b-note-title{font-size:clamp(14px,min(8cqw,22cqh),76px)!important;line-height:1.12;font-weight:800;letter-spacing:-.04em;margin:0;text-wrap:balance}
.type-note .b-note-text{font-size:clamp(14px,min(5.3cqw,10cqh),42px)!important;line-height:1.45!important;color:var(--widget-text);text-wrap:pretty}
.type-note.variant-poster{border-radius:26px;background:var(--widget-accent);color:var(--widget-on-accent)}.type-note.variant-poster .b-note-text{color:var(--widget-on-accent)}
.type-note.variant-notebook{border-radius:6px 20px 20px 6px;border-left:6px solid var(--widget-accent);box-shadow:0 8px 25px #17324d12;background-image:linear-gradient(transparent 95%,color-mix(in srgb,var(--widget-border) 45%,transparent) 95%);background-size:100% 2em}
/* Random selection and cooperative groups. */
.type-wheel{border-radius:28px}.type-wheel .b-widget-body{justify-content:center}.type-wheel .b-wheel-wrap{filter:drop-shadow(0 6px 10px #17324d1a)}
.type-wheel .b-wheel{border:4px solid var(--widget-bg)!important;box-shadow:0 0 0 1px var(--widget-border)}.type-wheel .b-wheel-hub{background:var(--widget-bg);color:var(--widget-accent);border:2px solid var(--widget-border)!important;box-shadow:0 3px 10px #17324d25;font-size:clamp(10px,5cqw,28px)}
.type-wheel .b-wheel-result{font-size:clamp(14px,min(7cqw,9cqh),42px)!important;color:var(--widget-text);padding:4px 8px!important;line-height:1.2!important;min-height:1.3em!important}
.type-wheel .b-wheel-status{font-size:14px;color:var(--widget-muted);margin:0}.type-wheel .name-picker-face{border-radius:18px;background:var(--widget-soft);border:1px solid var(--widget-border)}
.type-groups .b-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(5px,2cqw,14px);width:100%!important;min-height:0;flex:1;align-items:stretch;overflow:auto}
.type-groups .b-group-grid>div{border-radius:14px;box-shadow:none;background:var(--widget-bg);border:1px solid var(--widget-border);border-top:4px solid var(--widget-accent);container-type:normal!important;display:flex;flex-direction:column;align-items:stretch;padding:clamp(6px,2cqw,15px);text-align:left;min-height:0}
.type-groups .b-group-grid>div b{font-size:clamp(14px,4cqw,24px)!important;letter-spacing:0;text-transform:none;font-weight:750;color:var(--widget-accent)}
.type-groups .b-group-grid>div p{font-size:clamp(14px,4.3cqw,28px)!important;line-height:1.35;margin:7px 0 0;color:var(--widget-text);overflow-wrap:anywhere}
.type-groups .b-group-member{display:block;padding:3px 0}.type-groups.variant-columns .b-group-grid{grid-template-columns:repeat(var(--group-count,2),minmax(0,1fr))!important}.type-groups.variant-list .b-group-grid{grid-template-columns:1fr!important}
.type-groups .b-group-grid>div:last-child:nth-child(odd){grid-column:auto}.type-groups .b-group-grid>div.b-groups-empty{grid-column:1/-1;border:0;align-items:center;justify-content:center}
/* Signals, score and work mode each retain their own silhouette. */
.type-traffic{border-radius:999px!important}.type-traffic.variant-horizontal,.type-traffic.variant-word{border-radius:22px!important}.type-traffic .b-traffic-lights{gap:clamp(5px,2cqh,14px);max-height:70cqh!important}
.b-shell .type-traffic .b-light{border:3px solid color-mix(in srgb,currentColor 35%,transparent);opacity:.27;box-shadow:inset 0 2px 4px #0001}.b-shell .type-traffic .b-light.on{opacity:1;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 15%,transparent),inset 0 2px 5px #fff5}
.type-traffic .b-traffic-label{font-size:clamp(14px,min(7cqw,8cqh),32px);font-weight:750;text-wrap:balance;margin:0;line-height:1.2}
.type-score{border-radius:20px}.type-score .b-score-grid>div{box-shadow:none;border-radius:13px;border-color:var(--widget-border)}.type-score .b-score-grid b{font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.05em}
.b-presenting .type-score .b-score-grid>div>div{opacity:1}.b-shell .type-score .b-score-grid button{border-radius:50%;background:var(--widget-soft);color:var(--widget-text);border-color:var(--widget-border)}
.type-score.variant-stadium .b-score-grid{border:0;box-shadow:none}.type-score.variant-stadium{border-radius:14px}
.type-workmode{border-radius:28px}.type-workmode .b-work-mode-glyph{border:0;background:var(--widget-soft);width:min(44cqw,42cqh)}.type-workmode .b-work-mode>strong{font-size:clamp(16px,min(10cqw,15cqh),62px);letter-spacing:-.03em}
.type-workmode .b-work-mode-options{gap:5px}.b-shell .type-workmode .b-work-mode-options button{border-radius:999px;padding:5px;min-height:30px;min-width:30px;border:1px solid var(--widget-border);background:var(--widget-bg);color:var(--widget-text)}
.b-presenting .b-work-mode-options{opacity:1}.type-dice{border-radius:25px}.type-dice .b-die{border:1px solid var(--widget-border);background:var(--widget-bg);box-shadow:0 5px 0 var(--widget-border),0 8px 18px #17324d18}.type-dice .b-die .dot{background:var(--widget-text)}
.type-dice .dice-number{font-weight:800;letter-spacing:-.05em;color:var(--widget-text)}
/* Media surfaces keep their content dominant. */
.type-image{border-radius:16px}.type-image.variant-frame{border:clamp(5px,2cqw,12px) solid var(--widget-bg);box-shadow:0 8px 22px #17324d22}.type-image.variant-frame .b-image{transform:none!important;max-width:100%;max-height:100%;box-shadow:none}
.type-video{border-radius:16px}.type-video .b-video-player{border-radius:10px}.type-video .media-external{font-size:14px;line-height:1.3;color:var(--widget-muted);padding:6px;text-align:center}
.type-music{border-radius:26px}.type-music .music-art{width:clamp(30px,min(30cqw,26cqh),110px);height:clamp(30px,min(30cqw,26cqh),110px);border-radius:25%;font-size:clamp(22px,17cqw,76px);display:grid;place-items:center;background:var(--widget-soft);color:var(--widget-accent);box-shadow:none}
.type-music h2{font-size:clamp(16px,min(7cqw,11cqh),34px);line-height:1.2;text-wrap:balance;margin:0;text-align:center}.type-music .music-volume{font-size:14px;color:var(--widget-muted);width:100%}.type-music input[type=range]{accent-color:var(--widget-accent)}
.type-resource{border-radius:15px}.type-resource .resource-card{border-radius:12px;box-shadow:none}.type-resource .resource-title{font-weight:750;line-height:1.3}.type-sticker{box-shadow:none}
/* The configuration stays compact; the existing gallery has clearer selection. */
.b-dialog{border:1px solid #d9e4f1;border-radius:22px;box-shadow:0 24px 70px #172b4630}.b-dialog::backdrop{background:#172b465c;backdrop-filter:blur(3px)}
.b-dialog>header,.b-dialog .b-dialog-head{border-bottom:1px solid #e2eaf4}.b-dialog h2{letter-spacing:-.025em}.b-dialog .b-field{font-size:14px;color:#334b68}
.b-dialog :is(input,textarea,select){border-radius:10px!important;border-color:#cbd9ea!important;accent-color:#215ae6}.b-dialog textarea{line-height:1.5}
.preset-gallery .preset-family-title{font-size:14px!important;font-weight:700!important;color:#334b68!important}.preset-gallery.variant-options label{border-radius:12px!important;border:1px solid #e1e9f4!important;background:#f6f9fd!important}
.preset-gallery.variant-options label:has(input:checked){border-color:#215ae6!important;box-shadow:0 0 0 2px #215ae6!important;background:#edf3ff!important}.preset-gallery .design-thumbnail{border-radius:9px!important}
.b-tool-gallery .tool-card{border-radius:16px;border:1px solid #e0e8f3;background:#fff;box-shadow:0 3px 9px #172b4607}.b-tool-gallery .tool-card h3{font-size:15px;font-weight:750}.b-tool-gallery .tool-art{border-radius:12px}
/* Short widgets retain the main information. No changes to logical rectangles. */
@container (max-height:180px){.type-clock .b-clock-date{display:none}.type-timer .b-timer-adjust{display:none}.type-timer .b-timer-status{display:none}.type-music .music-art{display:none}.type-groups .b-group-grid>div{padding:5px}.type-groups .b-group-member{padding:0}.type-note .b-widget-body{gap:4px}}
@container (max-width:220px){.type-groups.variant-columns .b-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.b-tool-empty>svg{display:none}.b-tool-empty{gap:5px}.b-tool-empty p{font-size:14px}.b-tool-empty button{font-size:13px;padding:5px 8px}.type-music .music-art{display:none}}
@container (max-height:110px){.type-timer .b-centered-actions,.type-stopwatch .b-centered-actions{margin-top:0;gap:4px}.b-shell .b-widget .b-centered-actions button{min-height:24px;padding:3px 7px;font-size:12px}.b-stopwatch-status{display:none}.type-music h2{font-size:14px}.b-tool-empty p{display:none}}
@media(prefers-reduced-motion:reduce){.b-shell *, .b-dialog *{animation:none!important;transition:none!important}}

/* Empty tools are configured in the editor; projection only shows content. */
.b-presenting .b-tool-empty button,.b-presenting .b-groups-empty [data-b="edit-widget"],.b-presenting .type-music [data-b="edit-widget"]{display:none}
.type-note.variant-poster .b-note-title{color:var(--widget-on-accent)}
/* Replace the older preset finish without changing the saved palette. */
.b-widget.preset-band{background:var(--widget-bg)!important;border-radius:22px!important;box-shadow:inset 0 5px 0 var(--widget-accent),0 10px 28px #17324d12!important}
.b-widget.preset-bold{border-radius:22px!important;border:1px solid var(--widget-border)!important;box-shadow:inset 0 5px 0 var(--widget-accent),0 10px 28px #17324d12!important}
.b-widget.type-note.variant-poster{background:var(--widget-accent)!important;color:var(--widget-on-accent)!important}
.type-agenda .b-plan-name{font-size:clamp(17px,min(7cqw,7cqh),36px)}
.type-agenda .b-plan-time{font-size:clamp(12px,min(4.3cqw,4cqh),24px)}
.type-stopwatch .b-big-time,.type-timer .b-big-time,.type-clock .b-clock-digits{color:var(--widget-text)!important}
.b-shell .type-traffic .b-light{width:clamp(20px,min(48cqw,18cqh),112px)!important;height:auto;aspect-ratio:1}
.b-shell .type-traffic .b-traffic-label{font-size:clamp(14px,min(9cqw,8cqh),32px)!important;color:var(--widget-text)}
.b-shell .type-traffic.variant-horizontal .b-light{width:clamp(18px,min(20cqw,40cqh),96px)!important}
.design-preview .b-tool-empty button,.design-preview .b-groups-empty [data-b="edit-widget"],.design-preview.type-music [data-b="edit-widget"]{display:none}
.b-widget.type-note:not(.variant-poster) .b-widget-body{justify-content:flex-start!important;align-items:stretch!important;text-align:left}
.b-widget.type-timer:not(.variant-bar) .b-time-ring{border:0!important}
.b-widget.type-timer.variant-ring .b-time-ring:before{background:var(--widget-bg)!important}
.b-widget.type-timer.variant-bar .b-time-ring:after{height:clamp(5px,2.5cqh,10px)!important}
