/* Luna 0.30 — Landmark visual polish
   Pure presentation layer. Functional shell 0.28 and legacy interactions 0.29 stay frozen. */

:root{
  --l-space-1:6px;
  --l-space-2:10px;
  --l-space-3:14px;
  --l-space-4:20px;
  --l-space-5:26px;
  --l-space-6:32px;
  --l-radius-control:8px;
  --l-radius-sheet:15px;
  --l-leading:26px;
  --l-glass:rgba(255,255,255,.66);
  --l-glass-strong:rgba(255,255,255,.80);
  --l-glass-border:rgba(255,255,255,.54);
  --l-glass-shadow:0 1px 1px rgba(0,0,0,.04),0 8px 28px rgba(0,0,0,.08);
  --l-ease:cubic-bezier(.22,.8,.26,1);
}

/* --- shell refinement --- */
@media (min-width:761px){
  .rail{
    padding:18px 12px 16px;
    background:
      linear-gradient(180deg,rgba(248,248,250,.94),rgba(241,241,246,.92));
  }
  .brand{margin:0 8px 10px}
  .brand strong{font-size:17px;font-weight:670;letter-spacing:-.3px}
  .global-search-field{margin-bottom:14px}
  .global-search-field input{
    height:32px;
    border-radius:8px;
    background:rgba(118,118,128,.10);
    transition:background .16s ease,box-shadow .16s ease;
  }
  .primary-nav{gap:3px}
  .primary-nav button{
    min-height:36px;
    border-radius:8px;
    padding:8px 10px;
    transition:background .14s ease,color .14s ease,transform .14s ease;
  }
  .primary-nav button:active{transform:scale(.985)}
  .primary-nav button.active{
    background:rgba(118,118,128,.16);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.30);
  }

  .workspace{padding-left:var(--l-space-6);padding-right:var(--l-space-6)}
  .view{padding-top:var(--l-space-5)}
  .view-header{
    min-height:60px;
    padding:11px 0;
    border-bottom-color:rgba(60,60,67,.14);
    background:rgba(255,255,255,.78);
    backdrop-filter:blur(28px) saturate(165%);
  }
  .view-header h1{
    font-size:22px;
    font-weight:670;
    letter-spacing:-.42px;
  }

  /* Landmarks-style grouped toolbar chrome. */
  .toolbar-group{
    padding:2px;
    border:1px solid rgba(60,60,67,.10);
    border-radius:10px;
    background:var(--l-glass);
    box-shadow:0 1px 1px rgba(0,0,0,.025);
    backdrop-filter:blur(24px) saturate(165%);
  }
  .toolbar-primary:empty{display:none}
  .toolbar-primary:empty + .toolbar-fixed-spacer{display:none}
  .toolbar-button,.utility-menu>summary{
    min-width:30px;
    min-height:30px;
    border-radius:8px;
    transition:background .14s ease,transform .14s ease;
  }
  .toolbar-button:hover,.utility-menu>summary:hover{background:rgba(118,118,128,.12)}
  .toolbar-button:active,.utility-menu>summary:active{transform:scale(.96)}
  .toolbar-fixed-spacer{width:10px;flex-basis:10px}

  .utility-menu-items{
    border-radius:var(--l-radius-sheet);
    border-color:rgba(60,60,67,.14);
    background:rgba(255,255,255,.82);
    box-shadow:var(--l-glass-shadow);
    backdrop-filter:blur(30px) saturate(175%);
  }

  /* --- Today: typographic feature header, not a card --- */
  .is-today .view{padding-top:0}
  .today-room{max-width:860px;padding:0 0 52px}
  .room-opening{
    position:relative;
    min-height:178px;
    margin:0 0 8px;
    padding:32px 0 30px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow:visible;
    isolation:isolate;
  }
  .room-opening::before{
    content:"";
    position:absolute;
    z-index:-1;
    width:360px;
    height:220px;
    left:-120px;
    top:-54px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(0,122,255,.095),rgba(90,200,250,.04) 46%,transparent 72%);
    filter:blur(2px);
    pointer-events:none;
  }
  .room-date{
    margin:0 0 12px;
    display:flex;
    align-items:baseline;
    gap:10px;
    color:var(--secondary);
    font-size:14px;
    font-weight:520;
    letter-spacing:.01em;
  }
  .today-date-primary{
    color:var(--text);
    font-size:30px;
    line-height:1;
    font-weight:660;
    letter-spacing:-1px;
  }
  .today-date-weekday{
    color:var(--secondary);
    font-size:14px;
    font-weight:520;
  }
  .daily-weather{
    margin:0;
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:7px 12px;
    color:var(--secondary);
    font-size:13px;
  }
  .daily-weather .weather-place{
    order:-2;
    flex-basis:100%;
    width:max-content;
    color:var(--secondary);
    font-size:13px;
    font-weight:520;
    text-align:left;
  }
  .daily-weather strong{
    order:-1;
    color:var(--text);
    font-size:52px;
    line-height:.94;
    font-weight:560;
    letter-spacing:-2.6px;
  }
  .daily-weather>span{
    position:relative;
    top:-2px;
  }
  .weather-source{top:-2px;color:var(--tertiary);font-size:13px}
  .weather-source>div{
    border-color:rgba(60,60,67,.14);
    border-radius:var(--l-radius-sheet);
    background:rgba(255,255,255,.88);
    box-shadow:var(--l-glass-shadow);
    backdrop-filter:blur(28px) saturate(165%);
  }

  /* Let spacing carry hierarchy; lines only separate true list boundaries. */
  .focus-panel,.today-room .room-section{
    max-width:860px;
    margin:0;
    padding:var(--l-space-5) 0 var(--l-space-2);
    border-top:0;
  }
  .focus-panel + .room-section,
  .today-room .room-section + .room-section{
    margin-top:var(--l-space-3);
  }
  .progress-heading{
    min-height:30px;
    margin-bottom:var(--l-space-2);
    align-items:center;
  }
  .progress-heading h2{
    margin:0;
    font-size:17px;
    font-weight:670;
    letter-spacing:-.18px;
  }
  .quiet-empty{
    margin:4px 0 0;
    color:var(--secondary);
    font-size:14px;
    line-height:1.6;
  }
  .focus-row,.ongoing-row{
    border-bottom:1px solid rgba(60,60,67,.12);
  }
  .focus-row:last-child,.ongoing-row:last-child{border-bottom:0}
  .attention-row{
    min-height:56px;
    padding:10px 0;
    transition:background .14s ease,padding .14s ease;
  }
  .attention-row:hover{
    margin:0 -10px;
    padding-left:10px;
    padding-right:10px;
    border-radius:9px;
    background:rgba(118,118,128,.07);
  }
  .attention-row strong{font-size:14px;font-weight:610}
  .attention-row>span{color:var(--secondary);font-size:12px}

  /* --- Lists: same rhythm everywhere --- */
  .inbox-group,.intake-history,.space-index,.space-work,
  .assistant-surface,.legacy-tools-browser{max-width:900px}
  .inbox-group h2,.space-work h3{font-size:17px;font-weight:670}
  .inbox-entry{
    min-height:58px;
    padding:11px 0;
    border-bottom-color:rgba(60,60,67,.12);
    transition:background .14s ease,padding .14s ease;
  }
  .inbox-entry:hover{
    margin:0 -10px;
    padding-left:10px;
    padding-right:10px;
    border-radius:9px;
    background:rgba(118,118,128,.07);
  }
  .inbox-entry strong{font-size:14px;font-weight:610}
  .inbox-entry span{font-size:12px;color:var(--secondary)}

  /* --- Inspector: Form + Sections + LabeledContent --- */
  #inboxDetail[open]{
    background:rgba(250,250,252,.96);
    border-left-color:rgba(60,60,67,.16);
  }
  #inboxDetail .detail-wrap{padding:0 var(--l-leading) 56px}
  #inboxDetail .object-topbar{
    margin:0 calc(var(--l-leading) * -1);
    padding:0 18px 0 var(--l-leading);
    border-bottom-color:rgba(60,60,67,.13);
    background:rgba(250,250,252,.82);
    backdrop-filter:blur(28px) saturate(165%);
  }
  #inboxDetail .object-heading{
    padding:var(--l-space-5) 0 var(--l-space-3);
    border-bottom:0;
  }
  #inboxDetail .object-heading h2{
    font-size:22px;
    font-weight:680;
    letter-spacing:-.5px;
  }
  #detailEdit{
    margin-top:6px;
    padding-left:0;
    font-size:12px;
  }
  .detail-content{
    margin-top:9px;
    font-size:13px;
    line-height:1.62;
  }

  .work-record{
    margin:4px 0 0;
    padding:0;
  }
  .work-record article{
    padding:0;
  }
  .work-record article+article{
    margin-top:var(--l-space-5);
    padding-top:var(--l-space-5);
    border-top:1px solid rgba(60,60,67,.14);
  }
  .work-state{
    width:100%;
    margin:0;
    padding:10px 0;
    display:grid;
    grid-template-columns:94px minmax(0,1fr);
    align-items:center;
    border-top:1px solid rgba(60,60,67,.12);
    border-bottom:1px solid rgba(60,60,67,.12);
    border-radius:0;
    background:transparent;
    color:var(--text);
    font-size:13px;
    font-weight:520;
  }
  .work-state::before{
    content:attr(data-visual-label);
    color:var(--secondary);
    font-size:12px;
    font-weight:520;
  }
  .inspector-section-label{
    margin:var(--l-space-4) 0 6px;
    color:var(--secondary);
    font-size:11px;
    font-weight:650;
    letter-spacing:.02em;
    text-transform:none;
  }
  .work-schedule{padding:0}
  .schedule-items{
    border-top:1px solid rgba(60,60,67,.12);
    border-bottom:1px solid rgba(60,60,67,.12);
  }
  .work-schedule .schedule-item{
    min-height:52px;
    padding:10px 0;
    border-bottom-color:rgba(60,60,67,.10);
  }
  .work-schedule .schedule-item>span{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:14px;
    align-items:center;
  }
  .work-schedule .schedule-label{font-size:13px;font-weight:540}
  .work-schedule .schedule-date{font-size:12px;color:var(--secondary)}
  .work-latest{
    margin:0;
    padding:10px 0;
    display:grid;
    grid-template-columns:94px minmax(0,1fr);
    gap:0;
    color:var(--text);
    font-size:13px;
    line-height:1.55;
    border-top:1px solid rgba(60,60,67,.12);
    border-bottom:1px solid rgba(60,60,67,.12);
  }
  .work-latest::before{
    content:attr(data-visual-label);
    color:var(--secondary);
    font-size:12px;
    font-weight:520;
  }
  .work-actions{
    margin-top:var(--l-space-4);
    padding-top:0;
    border-top:0;
    justify-content:flex-end;
  }
  .work-actions>.outline-button{
    background:var(--accent);
    color:#fff;
  }
  .work-actions>.text-button{font-weight:520}
  .work-actions>details{margin-left:0}

  .work-materials{
    margin-top:var(--l-space-5);
    padding-top:var(--l-space-5);
    border-top:1px solid rgba(60,60,67,.14);
  }
  .material-heading h3{font-size:15px;font-weight:650}
  .material-card{
    padding:11px 0;
    border-bottom-color:rgba(60,60,67,.10);
  }
  .material-dates{font-size:11px;color:var(--secondary)}

  /* --- Assistant and legacy inspectors share the same visual grammar --- */
  .context-ask textarea,
  .legacy-tool-body input:not([type=file]),
  .legacy-tool-body select,
  .legacy-tool-body textarea{
    border-radius:var(--l-radius-control);
    background:rgba(118,118,128,.065);
    border-color:rgba(60,60,67,.20);
  }
  .legacy-tool-head{
    background:rgba(250,250,252,.82);
    backdrop-filter:blur(28px) saturate(165%);
    border-bottom-color:rgba(60,60,67,.13);
  }

  /* --- one signature Glass status control --- */
  .rail-bottom{padding:0 6px 2px}
  .rail-bottom>.connection{display:none}
  .system-status{position:relative}
  .system-status>summary{
    min-height:36px;
    padding:7px 9px;
    display:grid;
    grid-template-columns:8px minmax(0,1fr) auto;
    align-items:center;
    gap:7px;
    list-style:none;
    border:1px solid var(--l-glass-border);
    border-radius:12px;
    background:var(--l-glass);
    box-shadow:0 1px 1px rgba(0,0,0,.035);
    backdrop-filter:blur(24px) saturate(175%);
    color:var(--secondary);
    cursor:pointer;
    transition:background .18s ease,transform .18s ease,box-shadow .18s ease;
  }
  .system-status>summary::-webkit-details-marker{display:none}
  .system-status>summary:hover{
    background:var(--l-glass-strong);
    box-shadow:0 2px 10px rgba(0,0,0,.07);
  }
  .system-status>summary:active{transform:scale(.985)}
  .system-status-dot{
    width:7px;height:7px;border-radius:50%;
    background:var(--tertiary);
    box-shadow:0 0 0 3px rgba(142,142,147,.10);
  }
  .system-status[data-core="ok"] .system-status-dot{
    background:var(--success);
    box-shadow:0 0 0 3px rgba(52,199,89,.11);
  }
  .system-status-label{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:11px;
    font-weight:540;
  }
  .system-status-usage{
    color:var(--text);
    font-size:11px;
    font-weight:650;
  }
  .system-status-panel{
    position:absolute;
    z-index:90;
    left:0;
    bottom:44px;
    width:220px;
    padding:8px;
    border:1px solid rgba(60,60,67,.13);
    border-radius:var(--l-radius-sheet);
    background:rgba(255,255,255,.84);
    box-shadow:var(--l-glass-shadow);
    backdrop-filter:blur(30px) saturate(180%);
  }
  .system-status:not([open]) .system-status-panel{display:none}
  .system-status-row{
    min-height:32px;
    padding:6px 7px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border-radius:8px;
    font-size:12px;
  }
  .system-status-row span{color:var(--secondary)}
  .system-status-row strong{font-size:12px;font-weight:620}
  .system-status-detail{
    width:100%;
    min-height:32px;
    margin-top:4px;
    padding:6px 7px;
    border:0;
    border-top:1px solid rgba(60,60,67,.11);
    background:transparent;
    color:var(--accent);
    text-align:left;
    font-size:12px;
  }
  .utility-menu-items .module-status-strip{display:none}

  /* --- motion: only structural/context changes --- */
  .app-shell{
    transition:grid-template-columns .22s var(--l-ease);
  }
  #inboxDetail[open],#toolDialog.legacy-tool-inspector[open]{
    transition:opacity .18s ease,transform .22s var(--l-ease);
  }
  @starting-style{
    #inboxDetail[open],#toolDialog.legacy-tool-inspector[open]{
      opacity:0;
      transform:translateX(14px);
    }
  }
  .view>*,.landmark-search-surface{
    animation:luna-view-enter .18s var(--l-ease) both;
  }
  @keyframes luna-view-enter{
    from{opacity:.72;transform:translateY(4px)}
    to{opacity:1;transform:none}
  }
}

/* Mobile keeps its established architecture; only spacing/Today polish carries across. */
@media (max-width:760px){
  .room-opening{
    position:relative;
    min-height:150px;
    padding:20px 0 22px;
    margin:0 0 6px;
    isolation:isolate;
  }
  .room-opening::before{
    content:"";
    position:absolute;
    z-index:-1;
    width:260px;height:180px;
    left:-100px;top:-50px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(0,122,255,.09),transparent 70%);
  }
  .room-date{font-size:14px;margin-bottom:10px;display:flex;align-items:baseline;gap:8px}
  .today-date-primary{font-size:25px;letter-spacing:-.7px}
  .today-date-weekday{font-size:13px}
  .daily-weather{margin:0;gap:7px 10px}
  .daily-weather .weather-place{flex-basis:100%;font-size:13px}
  .daily-weather strong{font-size:46px;letter-spacing:-2px}
  .focus-panel,.today-room .room-section{
    padding-top:22px;
    border-top:0;
  }
  .system-status{display:none}
}

/* Accessibility and reduced-motion parity. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

@media (prefers-color-scheme:dark){
  :root{
    --l-glass:rgba(44,44,46,.58);
    --l-glass-strong:rgba(58,58,60,.78);
    --l-glass-border:rgba(255,255,255,.10);
    --l-glass-shadow:0 1px 1px rgba(0,0,0,.18),0 12px 34px rgba(0,0,0,.30);
  }
  .rail{
    background:linear-gradient(180deg,rgba(31,31,33,.94),rgba(27,27,29,.94));
  }
  .view-header{
    background:rgba(28,28,30,.76);
  }
  #inboxDetail[open]{background:rgba(28,28,30,.97)}
  #inboxDetail .object-topbar,.legacy-tool-head{background:rgba(28,28,30,.82)}
  .system-status-panel,.utility-menu-items,.weather-source>div{background:rgba(44,44,46,.86)}
}
