/* Reference: supplied Antigravity logbook/modal; restrained institutional neobrutalism. */
:root { --ui-shadow: 2px 2px 0 var(--ink); }
h1 { font-family:'Aptos Display','Aptos','Segoe UI',Arial,sans-serif; font-weight:700; text-wrap:balance; }
h2,h3 { font-weight:700; }
button:not(.subtle):not(.icon-button) { border-color:var(--ink); }
.page-heading { margin-bottom:24px; }
.page-tools { min-width:0; flex-wrap:wrap; justify-content:flex-end; align-items:center; }
.page-tools input { font-size:15px; }
.stats { background:transparent; border:0; border-radius:0; gap:16px; }
.stats .stat,.stats .stat:last-child { background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:18px 20px; }
.stats .stat:first-child { border-color:var(--ink); box-shadow:var(--ui-shadow); }
.stat-title { text-transform:uppercase; font-size:12px; letter-spacing:.2px; }
.stat strong { font-size:28px; font-weight:700; }
.logbook-stats .stat-title { justify-content:flex-start; align-items:center; gap:8px; }
.paper,.table-wrap,.focus-box { border-color:var(--ink); border-radius:6px; }
.log-calendar { box-shadow:var(--ui-shadow); padding:24px; }
.log-calendar .section-head { padding-bottom:18px; border-bottom:1px solid var(--line); }
.log-calendar h2 { display:flex; align-items:center; gap:10px; font-size:18px; }
.calendar-grid { gap:8px; }
.calendar-weekday { font-weight:600; text-transform:uppercase; padding:10px 0; }
.calendar-day { min-height:92px; justify-content:space-between; padding:10px; text-align:left; font-weight:400; border:1px solid var(--line) !important; box-shadow:none; }
.calendar-day strong { font-size:13px; }
.calendar-day small { font-size:11px; }
.calendar-day.is-today { outline:0; border-color:var(--ink) !important; box-shadow:var(--ui-shadow); }
.calendar-day[data-unavailable=true] { cursor:help; }
button.calendar-day:hover { background:var(--soft); border-color:var(--ink) !important; }
nav a.active { box-shadow:1px 1px 0 var(--ink); }
dialog::backdrop { background:rgba(36,36,36,.44); }
dialog { box-shadow:3px 3px 0 var(--ink); }
dialog.log-editor { width:900px; }
.dialog-heading { background:var(--canvas); padding:14px 22px; border-bottom:1px solid var(--ink); }
.dialog-heading h2 { font-size:20px; }
.dialog-heading .eyebrow { display:none; }
#dialog-body { padding:24px; }
.log-editor label { font-size:14px; margin-bottom:20px; }
.log-editor input,.log-editor select,.log-editor textarea { border-color:var(--ink); }
.log-editor textarea[name=activity] { min-height:112px; }
.log-editor #result-fields textarea { min-height:88px; }
.log-editor .wide-space { margin-top:22px; }
.log-editor .task-picker { max-height:130px; overflow:auto; gap:8px; padding:2px; }
.log-editor .task-picker label { margin:0; border-color:var(--line); }
.task-picker label:has(input:checked) { background:var(--soft); border-color:var(--ink); }
.log-editor .dialog-actions { margin:24px -24px -24px; padding:16px 24px; background:var(--canvas); border-top:1px solid var(--line); }
[aria-invalid=true] { border-color:var(--danger) !important; outline:2px solid #f0c4bd; }
.toast-region { position:fixed; right:24px; bottom:max(24px,env(safe-area-inset-bottom)); width:min(390px,calc(100vw - 32px)); display:flex; flex-direction:column; gap:10px; z-index:300; pointer-events:none; }
.app-toast { display:flex; gap:12px; align-items:center; padding:12px 12px 12px 16px; background:#fff; border:1px solid var(--ink); border-left:5px solid #1967d2; border-radius:5px; box-shadow:var(--ui-shadow); font-size:14px; line-height:1.5; color:var(--ink); pointer-events:auto; animation:toast-enter 150ms ease-out; }
.toast-error { border-left-color:var(--danger); }
.toast-success { border-left-color:var(--success); }
.toast-icon { display:flex; flex-shrink:0; color:#1967d2; }
.toast-error .toast-icon { color:var(--danger); }
.toast-success .toast-icon { color:var(--success); }
.toast-message { flex:1; overflow-wrap:anywhere; }
.log-editor .toast-region { bottom:96px; }
.toast-close { min-width:44px; min-height:44px; padding:8px; border:0 !important; background:transparent; flex-shrink:0; }
@keyframes toast-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1100px) { .page-heading { flex-wrap:wrap; } .page-tools { justify-content:flex-start; } }
@media(max-width:700px) {
  .stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .stats .stat { padding:14px; }
  .stat strong { font-size:24px; }
  .page-tools { width:100%; gap:8px; }
  .page-tools input { flex:1; min-width:140px; max-width:none; }
  .page-tools #logbook-add { width:100%; }
  .log-calendar { padding:12px; }
  .log-calendar .section-head { display:block; }
  .log-calendar h2 { font-size:16px; margin-bottom:8px; }
  .calendar-grid { gap:4px; }
  .calendar-day { min-height:76px; padding:7px 4px; }
  .calendar-day small { font-size:10px; }
  .calendar-weekday { font-size:10px; }
  dialog.log-editor { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border-radius:0; box-shadow:none; }
  .log-editor .two { grid-template-columns:1fr; gap:0; }
  #dialog-body { padding:20px 16px; }
  .dialog-heading { padding:12px 16px; }
  .dialog-heading h2 { font-size:18px; }
  .log-editor .dialog-actions { margin:24px -16px -20px; padding:16px; padding-bottom:max(16px,env(safe-area-inset-bottom)); }
  .log-editor .dialog-actions button.primary { flex:1 0 100%; }
  .toast-region { right:16px; bottom:max(16px,env(safe-area-inset-bottom)); }
  .log-editor .toast-region { bottom:156px; }
}
@media(prefers-reduced-motion:reduce) { .app-toast { animation:none; } }
@media print { .toast-region { display:none; } }

/* Monthly recap: follows the supplied report reference and existing UI tokens. */
.monthly-recap { background:#fff; border:1px solid var(--ink); border-left:6px solid #806200; border-radius:6px; box-shadow:var(--ui-shadow); padding:28px; margin-bottom:24px; }
.recap-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.recap-heading h2 { font-size:20px; margin:0 0 8px; }
.recap-heading p { margin:0; color:var(--muted); font-size:14px; }
.recap-badge { display:inline-flex; gap:8px; align-items:center; padding:9px 12px; border:1px solid #e6c65c; background:#fff4c4; color:#765900; border-radius:4px; font-weight:700; white-space:nowrap; }
.recap-reasons { background:#fff4c4; color:#765900; padding:18px 16px; border-radius:4px; font-size:14px; line-height:1.6; }
.recap-reasons > strong { display:flex; align-items:center; gap:6px; }
.recap-reasons ul { margin:10px 0; padding-left:22px; }
.recap-reasons p { margin:0; }
.monthly-recap.is-final { border-left-color:var(--success); }
.is-final .recap-badge { background:#eaf6ed; border-color:#98bda2; color:var(--success); }
.recap-ready { padding:16px; background:var(--canvas); font-size:14px; }
.report-export { margin-bottom:24px; }
#report-preview { scroll-margin-top:20px; }
@media(max-width:700px) { .monthly-recap { padding:18px 16px; } .recap-heading { align-items:flex-start; flex-wrap:wrap; } .recap-heading h2 { font-size:18px; } #report-print-preview { width:100%; } }

@media print { .monthly-recap, .report-export { display:none !important; } }

/* Login motion is finite; only the account-check indicator loops while busy. */
.login-backdrop img { animation:login-scene 4.8s cubic-bezier(.2,.7,.2,1) both; }
.login-form { position:relative; animation:login-arrive 320ms ease-out both; }
.login-form > :not(.login-accent) { animation:login-content 280ms ease-out backwards; }
.login-form > .logo { animation-delay:60ms; }
.login-form > .eyebrow,.login-form > h1 { animation-delay:100ms; }
.login-form > .muted { animation-delay:140ms; }
.login-form > label { animation-delay:180ms; }
.login-form > label + label { animation-delay:220ms; }
.login-form > .primary { animation-delay:260ms; }
.login-form > .fine { animation-delay:300ms; }
.login-accent { display:block; width:44px; height:4px; margin:0 0 18px; background:var(--accent); transform-origin:left; animation:login-rule 420ms 140ms ease-out backwards; }
.login-form input { transition:border-color 140ms ease-out,box-shadow 140ms ease-out; }
.login-form input:focus { border-color:var(--ink); box-shadow:0 0 0 3px #f4d23c55; outline:2px solid var(--ink); outline-offset:2px; }
.login-form .primary { transition:transform 120ms ease-out,box-shadow 120ms ease-out,background-color 120ms ease-out; }
.login-form .primary:active:not(:disabled),.login-form .primary:hover:active:not(:disabled) { transform:translate(2px,2px); box-shadow:none; }
.login-form .primary > .fa-icon { transition:transform 140ms ease-out; }
.login-form[aria-busy="true"] .primary > .fa-icon { animation:login-check 1.2s linear infinite; }
#login-error:not(:empty) { animation:login-content 180ms ease-out; }
.login-shapes { position:absolute; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
.login-shapes span { position:absolute; width:108px; height:108px; border:1px solid #f4d23c80; border-radius:6px; animation:login-shape 4.8s ease-out both; }
.login-shapes span:first-child { top:18%; left:14%; transform:rotate(-12deg); }
.login-shapes span:last-child { right:15%; bottom:17%; width:68px; height:68px; border-color:#ffffff66; transform:rotate(12deg); }
@media(hover:hover) { .login-form .primary:hover:not(:disabled) { transform:translate(-1px,-1px); box-shadow:3px 3px 0 var(--ink); } .login-form .primary:hover:not(:disabled) > .fa-icon { transform:translateX(3px); } }
@keyframes login-scene { from { transform:scale(1.055); } to { transform:scale(1); } }
@keyframes login-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes login-content { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@keyframes login-rule { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes login-shape { from { opacity:0; translate:0 14px; } to { opacity:1; translate:0 0; } }
@keyframes login-check { to { transform:rotate(360deg); } }
@media(max-width:700px) { .login-shapes { display:none; } }
@media(prefers-reduced-motion:reduce) { .login-screen * { animation:none !important; transition:none !important; } }

/* Intern guide: existing paper, yellow accent and numbered workflow. */
.intern-nav[hidden] { display:none !important; }
.intern-nav { padding-bottom:12px; margin-bottom:8px; border-bottom:1px solid var(--line); }
.intern-guide { max-width:1060px; }
.guide-intro { padding:26px; margin-bottom:24px; }
.guide-intro h2 { margin:8px 0 12px; font-size:24px; }
.intern-guide p,.intern-guide li { line-height:1.7; }
.guide-flow { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:20px 0; font-size:14px; font-weight:700; }
.guide-flow span:not([aria-hidden]) { padding:8px 12px; border:1px solid var(--ink); border-radius:4px; background:var(--canvas); }
.guide-tip { padding:14px 16px; background:var(--soft); border-left:3px solid #806200; border-radius:3px; }
.guide-steps { list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.guide-steps > li > article { display:grid; grid-template-columns:44px minmax(0,1fr); gap:18px; padding:24px; }
.guide-step-number { color:#765900; background:#fff4c4; border:1px solid #e6c65c; border-radius:4px; display:flex; align-items:center; justify-content:center; height:42px; font-weight:700; }
.guide-steps h2 { margin:4px 0 12px; font-size:20px; }
.intern-guide ul { padding-left:22px; }
.intern-guide ul li { margin:6px 0; }
.guide-small { color:var(--muted); font-size:14px; }
.guide-link { color:var(--ink); font-weight:700; display:inline-flex; gap:12px; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
.guide-link:focus-visible,.guide-faq summary:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.guide-example { padding:16px; border:1px solid var(--line); background:var(--canvas); border-radius:4px; font-size:14px; }
.guide-example p { margin:6px 0; }
.guide-status,.guide-faq { padding:24px; margin-top:24px; }
.guide-status h2,.guide-faq h2 { font-size:20px; margin:0 0 16px; }
.guide-status dl { margin:0; }
.guide-status dl > div { display:grid; grid-template-columns:180px minmax(0,1fr); gap:16px; padding:14px 0; border-top:1px solid var(--line); }
.guide-status dt { font-weight:700; }
.guide-status dd { margin:0; color:var(--muted); line-height:1.6; }
.guide-faq details { border-top:1px solid var(--line); padding:4px 0; }
.guide-faq summary { min-height:44px; padding:12px 0; cursor:pointer; font-weight:600; }
.guide-faq details p { margin:0 0 16px; }
@media(max-width:700px) { .guide-intro,.guide-status,.guide-faq { padding:18px 16px; } .guide-intro h2 { font-size:21px; } .guide-steps > li > article { grid-template-columns:32px minmax(0,1fr); gap:12px; padding:18px 14px; } .guide-step-number { height:32px; font-size:13px; } .guide-steps h2 { font-size:18px; margin-top:2px; } .guide-status dl > div { grid-template-columns:1fr; gap:6px; } .guide-flow { gap:8px; font-size:12px; } }
