/* Terra Studio 1.1 — clarity & quality pass (B Architecture) */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-feature-settings:"cv11","ss01";font-size:13px}

/* ---------- no horizontal overflow in side panels ---------- */
.study-scroll,.objects-panel,.analysis-results,.inspector{overflow-x:hidden}
.study-scroll{scrollbar-gutter:stable}
.study-scroll *{min-width:0}

/* ---------- readable type (old UI used 7–9 px labels) ---------- */
.micro,.panel-heading .micro{font-size:10px!important;letter-spacing:1.6px}
.version-tag{font-size:9.5px!important;padding:3px 7px!important}
.sidebar-tabs button{font-size:13px!important;padding:8px 6px!important}
.study-type span{font-size:13.5px!important}
.study-type small{font-size:11px!important;margin-top:2px}
.field-hint,.analysis-description{font-size:11.5px!important;line-height:1.55!important}
label,.field-label{font-size:11.5px}
.viewport-caption h1{font-size:30px!important}
.viewport-caption p{font-size:11.5px!important}
.viewport-caption p span{font-size:10.5px!important}
.viewport-caption .eyebrow{font-size:10px!important}
.canvas-bottom,.canvas-legend{font-size:10.5px!important}
.status-bar{font-size:11px!important}
.result-caption,.chart-caption{font-size:11.5px!important}
.result-metrics span{font-size:10px!important}
.chart-key div{font-size:12px!important}
.timeline-labels span{font-size:10.5px!important}
.time-readout .micro{font-size:10px!important}

/* ---------- viewport overlays never collide ---------- */
.viewport-caption{max-width:min(52%,560px)!important}
.import-float{top:auto!important;bottom:84px!important;left:24px!important;height:48px!important;font-size:12px!important;border-radius:12px!important;padding:0 16px!important;box-shadow:0 8px 24px #2b1d3322!important}
.import-float svg{width:18px!important;height:18px!important}
.import-float small{font-size:10px!important}
body.has-model .import-float{display:none!important}
.analysis-legend{bottom:62px}

/* ---------- guided workflow: pictogram cards ---------- */
.guide-steps{gap:7px}
.guide-step{grid-template-columns:30px minmax(0,1fr) auto!important;gap:10px!important;padding:9px 9px 9px 10px!important;border-radius:12px!important;transition:border-color .2s,box-shadow .2s}
.guide-step:hover{box-shadow:0 4px 14px #3b28420f}
.guide-step .step-badge{width:28px!important;height:28px!important;font-size:12.5px!important}
.guide-step .step-badge svg{width:15px!important;height:15px!important}
.guide-step .step-text{display:block;min-width:0;overflow:hidden}
.guide-step .step-text strong{font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.guide-step .step-text small{font-size:11px!important;max-width:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.step-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:54px;height:44px;padding:4px 6px;border-radius:10px;border:1px solid var(--border,#e7e5e1);background:var(--field,#faf8f5);color:var(--accent,#684e6b);cursor:pointer;transition:background .15s,transform .1s}
.step-action:hover{background:var(--accent,#684e6b);color:var(--accent-text,#fff);border-color:transparent}
.step-action:active{transform:scale(.96)}
.step-action svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.9}
.step-action em{font-style:normal;font-size:10.5px;font-weight:650;line-height:1}
.guide-step:not(.ok):first-of-type .step-action,.guide-step.ok+.guide-step:not(.ok) .step-action{background:var(--accent,#684e6b);color:var(--accent-text,#fff);border-color:transparent;box-shadow:0 4px 12px #684e6b33}

/* ---------- clearer study buttons ---------- */
.study-type{padding:11px 12px!important;border-radius:12px!important;gap:12px!important}
.study-type>svg{width:34px!important;height:34px!important;padding:7px;border-radius:10px;background:var(--soft,#f0edf1);stroke-width:1.8!important;flex:none}
.study-type.active>svg{background:var(--accent,#684e6b);color:var(--accent-text,#fff)}
.button{border-radius:10px!important;font-size:12.5px!important;min-height:38px}
.button svg{width:16px!important;height:16px!important}
.run-analysis{min-height:44px!important;font-size:14px!important;box-shadow:0 6px 18px #684e6b33}
.tools-bar .tool{font-size:12.5px!important}
.tools-bar .tool svg{width:17px!important;height:17px!important}
.icon-button svg{width:18px!important;height:18px!important}

/* ---------- animated progress ---------- */
.operation-progress{width:360px!important;border-radius:14px!important;padding:16px 18px 14px!important;box-shadow:0 14px 44px #1f142833!important;animation:op-in .25s ease-out}
@keyframes op-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.operation-progress>div:first-child{font-size:12.5px!important}
.operation-progress>div>span{font-size:16px!important;font-variant-numeric:tabular-nums}
.operation-track{height:10px!important;border-radius:20px!important;background:var(--soft,#efeaf1)!important;position:relative;box-shadow:inset 0 1px 2px #00000012}
.operation-track i{position:relative;border-radius:20px!important;transition:width .45s cubic-bezier(.22,.8,.3,1)!important;background:linear-gradient(90deg,#8d6a95,#c08aa6 55%,#e0a46b)!important;background-size:200% 100%!important;animation:op-flow 2.2s linear infinite}
.operation-track i::after{content:"";position:absolute;inset:0;border-radius:inherit;background:repeating-linear-gradient(-45deg,#ffffff38 0 8px,transparent 8px 16px);background-size:22px 22px;animation:op-stripes .7s linear infinite}
.operation-track i::before{content:"";position:absolute;right:-4px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #e0a46b88,0 0 12px #e0a46b;opacity:.95}
@keyframes op-stripes{to{background-position:22px 0}}
@keyframes op-flow{to{background-position:-200% 0}}
.operation-progress.done .operation-track i{background:#3f8f6b!important;animation:none}
.operation-progress.done .operation-track i::after,.operation-progress.done .operation-track i::before{display:none}
.operation-progress.done>div>span{color:#3f8f6b!important}
.operation-progress p{font-size:11.5px!important}
.busy-bar{position:absolute;left:0;right:0;top:0;height:3px;z-index:6;overflow:hidden;pointer-events:none}
.busy-bar i{position:absolute;top:0;bottom:0;width:35%;background:linear-gradient(90deg,transparent,#c08aa6,#e0a46b,transparent);animation:busy 1.25s ease-in-out infinite}
@keyframes busy{from{left:-35%}to{left:100%}}
.analysis-progress{height:auto!important}
.analysis-progress i{background:linear-gradient(90deg,#8d6a95,#e0a46b)!important;background-size:200% 100%!important;animation:op-flow 2s linear infinite}

/* ---------- climate & misc ---------- */
.climate-kpis b{font-size:14px}
.climate-sub{font-size:12px}
.month-picker button{font-size:11.5px;padding:5px 0}
.maker-badge{padding:5px 12px 5px 6px}
.maker-badge img{width:34px;height:34px}
.maker-badge span{font-size:12px}
.maker-badge small{font-size:10.5px}
.maker-badge>span>b,.maker-badge span{white-space:nowrap}
.framed-open{margin-right:6px}
@media (prefers-reduced-motion:reduce){.operation-track i,.operation-track i::after,.busy-bar i,.analysis-progress i{animation:none!important}}
.study-panel .panel-heading .micro{letter-spacing:1.2px!important;white-space:nowrap}
.study-panel .panel-heading .version-tag{white-space:nowrap}
.objects-panel .stats-row,.objects-panel small,.objects-panel .micro{font-size:11px}
.panel-bottom{font-size:11px}
.climate-export{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0 6px}
.climate-export .button{justify-content:center;font-size:11.5px!important;padding:0 6px}
.climate-actions .button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.climate-chart .ct,.wind-rose .ct{font-size:9.5px}
