/* canonical interaction polish */

/* v5.4.3 ARCHITECT - control bases migrated from app.css */
.icon-button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:12px;cursor:pointer}
.icon-button svg{width:16px;height:16px}

.text-button,.primary-small,.secondary-small,.danger-small{border:0;border-radius:12px;padding:9px 12px;cursor:pointer;font-size:11px;font-weight:850;white-space:nowrap}
.text-button{background:transparent;color:var(--purple)}
.primary-small{color:#fff;background:linear-gradient(135deg,var(--purple),var(--blue));box-shadow:0 8px 20px rgba(114,87,246,.22)}
.secondary-small{background:var(--surface-soft);color:var(--text);border:1px solid var(--line)}
.danger-small{background:rgba(239,71,111,.11);color:var(--red)}
button,
a,
select,
input,
textarea{
  -webkit-tap-highlight-color:transparent;
}

button{
  transition:
    transform .14s ease,
    opacity .14s ease,
    background-color .16s ease,
    border-color .16s ease,
    box-shadow .16s ease;
}

button:not(:disabled):active{
  transform:scale(.97);
}

button:disabled{
  opacity:.48;
  transform:none;
  cursor:default;
}

button:focus-visible,
a:focus-visible{
  outline:3px solid rgba(91,94,230,.22);
  outline-offset:3px;
}

.bottom-nav .nav-item:active{
  transform:scale(.96);
}

.bottom-nav .nav-item svg,
.bottom-nav .nav-item img{
  transition:transform .14s ease;
}

.bottom-nav .nav-item:active svg,
.bottom-nav .nav-item:active img{
  transform:scale(.92);
}

input,
select,
textarea{
  transition:
    border-color .16s ease,
    box-shadow .16s ease,
    background-color .16s ease;
}

input:focus,
select:focus,
textarea:focus{
  outline:none;
  border-color:rgba(82,92,220,.42);
  box-shadow:0 0 0 3px rgba(91,94,230,.10);
}

@media(hover:hover) and (pointer:fine){
  button:not(:disabled):hover{
    filter:brightness(.985);
  }
}

@media(prefers-reduced-motion:reduce){
  button,
  input,
  select,
  textarea,
  .bottom-nav,
  .nav-item{
    transition:none!important;
  }
}

/* v5.3.2 RETOUCH pt.II - canonical control system */

/* informational pills */
.soft-badge{
  flex:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  font-weight:800;
}

.soft-badge,
#meal-date,
#flow-status-badge,
#flow-timetable-button{
  min-height:26px;
  height:26px;
  padding:0 9px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--surface-strong);
  box-shadow:var(--shadow-soft);
  font-size:9px;
  line-height:1;
}


/* class / category selection pills */
.v411-class-chip,
.category-chip{
  flex:0 0 auto;
  width:auto;
  white-space:nowrap;
  word-break:keep-all;
  min-height:32px;
  height:32px;
  padding:0 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--surface-strong);
  box-shadow:0 3px 10px rgba(42,51,81,.07);
  line-height:1;
}

.category-chip{
  cursor:pointer;
  color:var(--muted);
  font-size:10px;
  font-weight:850;
}

.category-chip.is-active{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(135deg,var(--purple),var(--blue));
  box-shadow:0 2px 5px rgba(84,89,190,.15);
}

/* compact action buttons */
.primary-small,
.secondary-small,
.danger-small{
  min-height:38px;
  height:38px;
  padding:0 12px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}

/* icon-only controls */
.icon-button,
.favorite-button{
  width:38px;
  min-width:38px;
  height:38px;
  min-height:38px;
  padding:0;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface-strong);
  box-shadow:var(--shadow-soft);
  display:grid;
  place-items:center;
}

.favorite-button{
  cursor:pointer;
  color:var(--muted);
  line-height:1;
  font-family:Arial,sans-serif;
  transform:translateY(2px);
}

/* request card control consistency */

/* request composer class chip keeps compact badge role */
.request-composer .v411-class-chip,
.request-composer #v411-current-class{
  min-width:0;
  width:auto;
  min-height:26px;
  height:26px;
  padding:0 9px;
  margin:0;
  position:absolute;
  top:0;
  right:0;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  box-shadow:var(--shadow-soft);
  color:var(--muted);
  font-size:9px;
  font-weight:850;
  line-height:1;
  letter-spacing:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}

/* v5.3.2 RETOUCH pt.II - canonical opaque inner surfaces */

/* light mode: truly opaque white */
:root:not([data-theme="dark"]) .dukbap-info-grid > div,
:root:not([data-theme="dark"]) .calendar-detail{
  background:#fff;
  border:1px solid rgba(116,124,145,.18);
  box-shadow:0 8px 28px rgba(42,51,81,.055);
}

/* dark mode: truly opaque dark surface */
html[data-theme="dark"] .dukbap-info-grid > div,
html[data-theme="dark"] .calendar-detail{
  background:#1d2738;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 8px 28px rgba(0,0,0,.16);
}

/* prevent inherited opacity/filter tricks */
.dukbap-info-grid > div,
.calendar-detail{
  opacity:1;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  filter:none;
}


/* request empty state - opaque inner surface */
:root:not([data-theme="dark"]) .request-list-card .empty-state,
:root:not([data-theme="dark"]) .assessment-card .empty-state{
  background:#fff;
  border:1px solid rgba(116,124,145,.18);
  box-shadow:0 4px 14px rgba(42,51,81,.08);
  opacity:1;
}

html[data-theme="dark"] .request-list-card .empty-state,
html[data-theme="dark"] .assessment-card .empty-state{
  background:#1d2738;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 4px 14px rgba(0,0,0,.22);
  opacity:1;
}

/* account login input - opaque inner surface */
:root:not([data-theme="dark"]) .access-login-form input{
  background:#fff;
  border:1px solid rgba(116,124,145,.18);
  box-shadow:0 4px 14px rgba(42,51,81,.08);
}

html[data-theme="dark"] .access-login-form input{
  background:#1d2738;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 4px 14px rgba(0,0,0,.22);
}

.request-list-card .empty-state,
.assessment-card .empty-state,
.access-login-form input{
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  filter:none;
}


/* keep settings controls visually consistent */
.settings-card select,
.settings-card input[type="time"],
.v48-settings-card select,
.v48-settings-card input[type="time"]{
  border-radius:12px;
  outline:0;
}

.settings-card select:focus,
.settings-card input[type="time"]:focus,
.v48-settings-card select:focus,
.v48-settings-card input[type="time"]:focus{
  border-color:rgba(82,92,220,.38);
  box-shadow:
    0 7px 24px rgba(42,51,81,.065),
    0 0 0 3px rgba(91,94,230,.09);
}

html[data-theme="dark"] .settings-card select:focus,
html[data-theme="dark"] .settings-card input[type="time"]:focus,
html[data-theme="dark"] .v48-settings-card select:focus,
html[data-theme="dark"] .v48-settings-card input[type="time"]:focus{
  box-shadow:
    0 7px 24px rgba(0,0,0,.18),
    0 0 0 3px rgba(91,94,230,.12);
}


/* managed-link shortcut controls */
.shortcut-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.shortcut-delete {
  display: grid;
  place-items: center;
  min-width: 42px;
  height: 31px;
  padding: 0 9px;
  border: 1px solid rgba(239,71,111,.18);
  border-radius: 10px;
  background: rgba(239,71,111,.08);
  color: var(--red);
  cursor: pointer;
  font-size: 9px;
  font-weight: 900;
}

.shortcut-delete:hover {
  background: rgba(239,71,111,.14);
}

/* managed-link long-press states */
.shortcut-card.is-managed-link{
  -webkit-user-select:none;
  user-select:none;
}
.shortcut-card.is-longpressing,
.shortcut-card.is-longpress-ready{
  border-color:rgba(124,58,237,.42);
  transform:translateY(-2px) scale(.992);
}
.shortcut-card.is-longpressing::after,
.shortcut-card.is-longpress-ready::after{
  position:absolute;
  left:12px;
  right:12px;
  bottom:10px;
  z-index:4;
  display:grid;
  place-items:center;
  height:27px;
  border-radius:999px;
  color:#fff;
  font-size:9px;
  font-weight:900;
  letter-spacing:.3px;
  pointer-events:none;
}
.shortcut-card.is-longpressing::after{
  content:"길게 눌러 삭제";
  background:linear-gradient(90deg,#7c3aed,#2563eb);
  background-size:0% 100%;
  background-repeat:no-repeat;
  box-shadow:inset 0 0 0 999px rgba(71,85,105,.32);
  animation:dukbapDeleteHold .68s linear forwards;
}
.shortcut-card.is-longpress-ready::after{
  content:"손을 떼면 삭제";
  background:linear-gradient(90deg,#c026d3,#7c3aed,#2563eb);
}
@keyframes dukbapDeleteHold{
  to{background-size:100% 100%}
}
html[data-theme="dark"] .shortcut-card.is-longpressing,
html[data-theme="dark"] .shortcut-card.is-longpress-ready{
  border-color:rgba(167,139,250,.58);
}
