/*
 * Monte da Afeiteira design system
 * Canonical scale for readable typography and reusable UI dimensions.
 * Component styles own layout and visual treatment; this file owns scale and shared geometry.
 */
:root{
    /* Font roles */
    --font-ui-family:"DM Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --font-heading-family:"Fraunces",serif;

    /* Exactly five font sizes. Pick one or inherit. */
    --font-xs:.75rem;   /* 12px */
    --font-sm:.875rem;  /* 14px */
    --font-md:1rem;     /* 16px */
    --font-lg:1.25rem;  /* 20px */
    --font-xl:2.25rem;  /* 36px */

    /* Exactly three line heights. */
    --line-tight:1.15;
    --line-normal:1.5;
    --line-copy:1.6;

    --weight-regular:400;
    --weight-medium:500;
    --weight-semibold:600;
    --weight-bold:700;

    /* Spacing: use these seven values or 0. */
    --space-1:4px;
    --space-2:8px;
    --space-3:12px;
    --space-4:16px;
    --space-5:20px;
    --space-6:24px;
    --space-8:32px;

    /* Radius: three corners plus pill/circle. */
    --radius-sm:8px;
    --radius-md:16px;
    --radius-lg:24px;
    --radius-pill:999px;
    --radius-round:50%;

    /* Controls: normal touch target and large primary action. */
    --control-md:44px;
    --control-lg:56px;

    /* Icon containers: four deliberate boxes. */
    --icon-box-sm:32px;
    --icon-box-md:40px;
    --icon-box-lg:48px;
    --icon-box-xl:56px;

    /* Elevation: three normal shadows. */
    --shadow-soft:0 4px 12px rgba(28,31,29,.05);
    --shadow-card:0 8px 24px rgba(28,31,29,.07);
    --shadow-elevated:0 12px 32px rgba(28,31,29,.13);}

body{font-family:var(--font-ui-family);font-size:var(--font-md);line-height:var(--line-copy);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-size:inherit}
a,button,input,label{-webkit-tap-highlight-color:transparent}
:focus:not(:focus-visible){outline:none}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}

.section-card{border-radius:var(--radius-lg)}
.icon-button{width:var(--control-md);height:var(--control-md);font-size:var(--font-lg)}
.app-version{font-size:var(--font-xs)}
.app-header__title{font-size:var(--font-lg)}
.section-heading h2,.sound-card h2{font-size:var(--font-lg)}
.primary-button{font-size:var(--font-md)}
.toast{font-size:var(--font-sm)}

/* Home */
.home-brand p{margin-top:var(--space-4);font-size:var(--font-sm)}
.home-screen .home-action{font-size:var(--font-md);font-weight:var(--weight-semibold)}
.home-screen .home-action .app-icon{font-size:var(--font-xl)}
.home-screen .weather-card__date{font-size:var(--font-xs)!important}
.home-screen .weather-card__icon{font-size:var(--font-xl)}
.home-screen .weather-card__now strong{font-size:var(--font-xl)}
.home-screen .weather-card__now small{font-size:var(--font-xs)}
.home-screen .weather-card__forecast small{font-size:var(--font-xs)}
.home-screen .weather-card__forecast b{font-size:var(--font-sm)}
.home-screen .weather-card__forecast em{font-size:var(--font-xs)}

/* Navigation */
.app-menu-trigger{width:var(--control-md);height:var(--control-md);font-size:var(--font-lg)}
.drawer-toolbar{grid-template-columns:minmax(0,1fr) var(--control-md)}
.drawer-toolbar .drawer-close{width:var(--control-md);height:var(--control-md);font-size:var(--font-lg)}
.drawer-nav>a{font-size:var(--font-md)!important;font-weight:var(--weight-semibold)}
.drawer-nav>a .app-icon,.drawer-group__main .app-icon{font-size:var(--font-lg)!important}
.drawer-group__main{font-size:var(--font-md)!important}
.drawer-group__toggle .app-icon{font-size:var(--font-md)!important}
.drawer-subnav__link{font-size:var(--font-md)}
.drawer-subnav__link .app-icon{font-size:var(--font-md)!important}
.language-switch a{font-size:var(--font-xs)!important}
.app-version--menu{font-size:var(--font-xs)}

/* TV, remote and shared action rows */
.tv-power-button strong,.feature-row strong{font-size:var(--font-md)}
.tv-power-button small{font-size:var(--font-sm);line-height:var(--line-copy)}
.service-card strong{font-size:var(--font-md)}
.service-card small{font-size:var(--font-xs)}
.circle-action{font-size:var(--font-lg)}
.remote-secondary{font-size:var(--font-sm)}

/* House */
.house-hero small,.house-hero p{font-size:var(--font-xs)}
.house-row h2{font-family:var(--font-heading-family);font-size:var(--font-lg);font-weight:var(--weight-medium)}
.house-row p{font-size:var(--font-md);line-height:var(--line-copy)}
.house-row small{font-size:var(--font-xs)}
.house-row strong{font-size:var(--font-sm)}
.round-icon{width:var(--icon-box-lg);height:var(--icon-box-lg);font-size:var(--font-lg)}
.detail-page>small,.eyebrow,.code-panel>small{font-size:var(--font-xs)}
.lock-device em,.code-panel span{font-size:var(--font-xs)}
.lock-copy{font-size:var(--font-md);line-height:var(--line-copy)}
.tip-line{font-size:var(--font-md);line-height:var(--line-copy)}

/* Lighting */
.light-control__copy strong{font-size:var(--font-md)}
.light-control__copy small,.light-control__dimmer output{font-size:var(--font-sm)}
.light-master-control{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;margin-top:var(--space-4)}
.light-master-control__button{min-height:var(--control-lg);border:0;background:var(--card);display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--font-md);font-weight:var(--weight-bold)}
.light-master-control__button:first-child{border-right:1px solid var(--line)}
.light-master-control__button--off .app-icon{color:var(--muted)}
.light-master-control__button--on .app-icon{color:var(--green)}
.light-master-control__button:active{background:#f2efe8}

.sunset-schedule{margin-top:var(--space-4);padding:var(--space-5)}
.sunset-schedule__head{display:grid;grid-template-columns:calc(var(--icon-box-lg) + var(--space-1)) minmax(0,1fr) auto;gap:var(--space-3);align-items:center}
.sunset-schedule__icon{width:var(--icon-box-lg);height:var(--icon-box-lg);border-radius:var(--radius-md);display:grid;place-items:center;background:var(--surface-soft);color:var(--terracotta);font-size:var(--font-lg)}
.sunset-schedule__head h2{margin:0;font-family:var(--font-heading-family);font-size:var(--font-lg);font-weight:var(--weight-medium);line-height:var(--line-tight)}
.sunset-schedule__head p{margin:var(--space-1) 0 0;color:var(--muted);font-size:var(--font-sm);line-height:var(--line-normal)}
.sunset-schedule__mode{padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);background:var(--surface-soft);color:var(--green);font-size:var(--font-xs);font-weight:var(--weight-bold);white-space:nowrap}
.sunset-schedule__timeline{margin-top:var(--space-4);border-top:1px solid var(--line)}
.sunset-schedule__row{min-height:64px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:var(--space-3);align-items:center;border-bottom:1px solid var(--line)}
.sunset-schedule__row:last-child{border-bottom:0}
.sunset-schedule__row-icon{width:var(--icon-box-sm);height:var(--icon-box-sm);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--green);display:grid;place-items:center;font-size:var(--font-md)}
.sunset-schedule__row div>span{display:block;font-size:var(--font-sm);font-weight:var(--weight-semibold)}
.sunset-schedule__row small{display:block;margin-top:2px;color:var(--muted);font-size:var(--font-xs)}
.sunset-schedule__row strong{font-size:var(--font-md);font-variant-numeric:tabular-nums}
.sunset-schedule__note{margin:var(--space-3) 0 0;color:var(--muted);font-size:var(--font-sm);line-height:var(--line-copy)}

/* Changelog */
.changelog-release__head small{font-size:var(--font-xs)}
.changelog-release h2{font-size:var(--font-md)}
.changelog-release li{font-size:var(--font-md);line-height:var(--line-copy)}

/* House documentation */
.documentation-intro,.house-intro{font-size:var(--font-md);line-height:var(--line-copy)}
.network-card__copy small,.network-card__password span{font-size:var(--font-xs)}
.network-card__copy h2{font-family:var(--font-heading-family);font-size:var(--font-lg)}
.network-card__copy p,.documentation-note p{font-size:var(--font-md);line-height:var(--line-copy)}
.network-card__password strong{font-size:var(--font-md)}
.documentation-note h2{font-family:var(--font-heading-family);font-size:var(--font-lg)}
.guide-list__title h2{font-family:var(--font-heading-family);font-size:var(--font-lg)}
/* Lists below an icon/title header share that header's text axis across all documentation pages. */
.guide-list li{display:grid;grid-template-columns:calc(var(--icon-box-lg) + var(--space-1)) minmax(0,1fr);align-items:start;gap:var(--space-3);padding-left:0;font-size:var(--font-md);line-height:var(--line-copy)}
.guide-list li::before{position:static;left:auto;top:auto;justify-self:end;margin-right:var(--space-2);margin-top:.62em}
.house-guidelines__head{grid-template-columns:calc(var(--icon-box-lg) + var(--space-1)) 1fr;gap:var(--space-3);align-items:start}
.house-guidelines__head>span{width:var(--icon-box-lg);height:var(--icon-box-lg);border-radius:var(--radius-md);font-size:var(--font-lg)}
.house-guidelines__head h2{margin-top:1px;font-family:var(--font-heading-family);font-size:var(--font-lg);font-weight:var(--weight-medium);line-height:var(--line-tight)}
.house-guidelines__head p{font-size:var(--font-md);line-height:var(--line-copy)}
.house-guidelines__group h3{display:grid;grid-template-columns:30px 1fr;align-items:center;font-size:var(--font-md);line-height:var(--line-normal)}
.house-guidelines__group h3>span{width:28px;height:28px;margin:0;font-size:var(--font-xs)}
.house-guidelines__group li{font-size:var(--font-md);line-height:var(--line-copy)}

/* Media */
.media-product-hero__copy small{font-size:var(--font-xs)}
.media-product-hero__copy h1{font-size:var(--font-xl)}
.media-product-hero__copy span{font-size:var(--font-sm)}
.media-device-card__copy strong{font-family:var(--font-heading-family);font-size:var(--font-lg)}
.media-device-card__copy span{font-size:var(--font-md);line-height:var(--line-copy)}
.media-intro{font-size:var(--font-md);line-height:var(--line-copy)}
.media-source-list span{font-size:var(--font-xs)}
.media-instruction-card__title{display:grid;grid-template-columns:34px minmax(0,1fr);gap:var(--space-3)}
.media-instruction-card__title h2{font-family:var(--font-heading-family);font-size:var(--font-lg);font-weight:var(--weight-medium)}
.media-steps{margin-left:0}
.media-steps li{grid-template-columns:34px minmax(0,1fr);gap:var(--space-3);font-size:var(--font-md);line-height:var(--line-copy)}
.media-steps li::before{justify-self:center;font-size:var(--font-xs)}
.media-manual-link{font-size:var(--font-md)}
.media-status__copy small{font-size:var(--font-xs)}
.media-status__copy strong{font-size:var(--font-md)}
.media-status__copy>span{font-size:var(--font-sm)}
.media-status__copy em{font-size:var(--font-xs)}
.media-status__state{font-size:var(--font-xs)}
.media-volume-control__head h2{font-size:var(--font-md)}
.media-volume-control__head output{font-size:var(--font-sm)}
.media-volume-control__slider .app-icon{font-size:var(--font-md)}

/* Film library */
.search-box input{font-size:var(--font-md)}
.library-summary{font-size:var(--font-xs)}
.library-summary strong{font-size:var(--font-sm)}
.movie-library>h2{font-family:var(--font-heading-family);font-size:var(--font-lg);font-weight:var(--weight-medium)}
.movie-list-item strong{font-size:var(--font-sm)}
.movie-list-item small{font-size:var(--font-xs)}
.movie-empty{font-size:var(--font-md)}
.movie-detail-page--catalog .movie-detail-hero p{font-size:var(--font-md)}
.movie-detail-meta{font-size:var(--font-xs)}

/* Travel guide */
.guide-map-status{font-size:var(--font-sm)}
.guide-map-header strong{font-family:var(--font-heading-family);font-size:var(--font-lg)}
.guide-map-intro{font-size:var(--font-sm);line-height:var(--line-copy)}
.guide-filter{min-height:var(--control-md);font-size:var(--font-xs)}
.guide-filter .app-icon{font-size:var(--font-md)}
.guide-destinations__head h2{font-family:var(--font-heading-family);font-size:var(--font-lg)}
.guide-destinations__head span{font-size:var(--font-xs)}
.guide-destination__copy strong{font-size:var(--font-sm)}
.guide-destination__copy small{font-size:var(--font-xs)}
.guide-destination__copy span{font-size:var(--font-xs);line-height:var(--line-copy)}
.guide-destination__route{min-height:var(--control-md);font-size:var(--font-xs)}
.guide-destination__route .app-icon{font-size:var(--font-md)}
.guide-popup{font-size:var(--font-xs);line-height:var(--line-copy)}
.guide-popup strong{font-size:var(--font-sm)}

/* Local-control status */
.local-access-status{font-size:var(--font-xs);line-height:var(--line-copy)}
.local-access-status strong{font-size:var(--font-sm)}
.local-access-status__icon{font-size:var(--font-md)}

/* Never shrink readable UI copy merely because the viewport is narrow. */
@media(max-width:420px){
    html{font-size:var(--font-md)}
    .home-screen .home-action{font-size:var(--font-md)}
    .media-product-hero__copy h1{font-size:var(--font-xl)}
    .language-switch a{font-size:var(--font-xs)!important}
    .sunset-schedule{padding:var(--space-4)}
    .sunset-schedule__head{grid-template-columns:calc(var(--icon-box-lg) + var(--space-1)) minmax(0,1fr)}
    .sunset-schedule__mode{grid-column:2;justify-self:start;margin-top:-3px}
}
