@charset "UTF-8";
/* Foundation: shared typography, focus and interaction behavior. */
*{box-sizing:border-box}
html{scrollbar-gutter:stable}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--font-body);-webkit-font-smoothing:antialiased}
body.detail-open{overflow:hidden}
p,h1,h2,h3{margin:0}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button,a,summary,input,select,textarea{-webkit-tap-highlight-color:transparent;touch-action:manipulation;outline-offset:var(--focus-offset)}
:where(button,a,summary,input,select,textarea):focus-visible{outline:var(--focus-width) solid var(--accent)}
[hidden]{display:none!important}

/* Shared components. Every rounded surface/control uses this one rule. */
.surface,.rounded,.rounded-clip,.control,.control-row{border-radius:var(--radius)}
.surface{background:var(--surface-background,var(--surface));border:var(--border-width) solid var(--surface-border,var(--line))}
.surface-base{--surface-background:var(--bg);--surface-border:var(--line-strong)}
.surface-fill{background:var(--surface)}
.rounded-clip{overflow:hidden}
/* Internal sections stay straight; the outer surface owns their clipped corners. */
.surface-header{background:var(--surface);border-bottom:var(--border-width) solid var(--line)}
.control{min-height:var(--control-size);background:var(--control-background,var(--surface));color:var(--control-ink,var(--ink));border:var(--border-width) solid var(--control-border,var(--line));transition:background var(--motion-fast),border-color var(--motion-fast)}
.control:hover{background:var(--control-hover-background,var(--surface-hover));border-color:var(--control-hover-border,var(--line-hover))}
.control:active{background:var(--control-active-background,var(--surface-active))}
.control-quiet{--control-background:transparent;--control-ink:var(--accent);--control-border:transparent}
.control-accent{--control-background:var(--accent);--control-ink:var(--accent-ink);--control-border:var(--accent-edge);--control-hover-background:var(--accent-hover);--control-hover-border:var(--accent-edge);--control-active-background:var(--accent-hover)}
.control:disabled{background:var(--surface);color:var(--muted);border-color:var(--line);cursor:not-allowed}
.text-control{padding:var(--space-3) var(--space-5)}
.icon-control{display:inline-flex;align-items:center;justify-content:center;width:var(--control-size);height:var(--control-size);padding:0;flex-shrink:0}
.icon{width:var(--icon-size);height:var(--icon-size);fill:none;stroke:currentColor;stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.icon-filled{stroke:none;fill:currentColor}
.control-row{cursor:pointer;transition:background var(--motion-fast)}
.control-row:hover{background:var(--surface-hover)}
.field{display:flex;flex-direction:column;gap:var(--space-2)}
.field-stack{display:grid;gap:var(--space-5)}
.field-label{font-size:var(--font-small);line-height:var(--leading-normal);color:var(--muted)}
.field-control{width:100%;min-width:0;padding:var(--space-3) var(--space-4)}
.field-multiline{resize:vertical;line-height:var(--leading-normal)}
.field-actions{display:flex;justify-content:flex-end}
.field-note{font-size:var(--font-small);line-height:var(--leading-normal);color:var(--muted)}
.visually-hidden{position:absolute;width:var(--border-width);height:var(--border-width);padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);text-align:left}
.field-value{flex:1;min-width:0}
.field-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--icon-size);height:var(--icon-size);flex-shrink:0;color:var(--muted)}
.picker-trigger[data-placeholder="true"] .field-value{color:var(--muted)}
.picker-trigger[aria-expanded="true"]{border-color:var(--accent)}
.picker-trigger[aria-expanded="true"] .field-icon{color:var(--accent)}
.picker-popover{position:fixed;inset:auto;margin:0;padding:var(--space-2);color:var(--ink);overflow:auto;overscroll-behavior:contain;box-shadow:var(--shadow-floating)}
.picker-option{--control-ink:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;padding:var(--space-3);text-align:left}
.picker-option[data-active="true"]{outline:var(--focus-width) solid var(--muted);outline-offset:calc(-1 * var(--focus-width))}
.picker-option[aria-selected="true"]{color:var(--accent);background:var(--surface-active)}
.option-check{visibility:hidden}
.picker-option[aria-selected="true"] .option-check{visibility:visible}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}
.calendar-title{font-weight:var(--weight-medium);text-align:center}
.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays{font-size:var(--font-caption);color:var(--muted);text-align:center;padding:var(--space-2) 0}
.calendar-day{--control-ink:var(--ink);width:100%;min-height:var(--calendar-day-size);padding:0;font-variant-numeric:tabular-nums}
.calendar-day[data-outside="true"]{--control-ink:var(--muted)}
.calendar-day[aria-current="date"]{border-color:var(--line-hover)}
.calendar-day.control-accent{--control-ink:var(--accent-ink)}
.calendar-footer{display:flex;justify-content:flex-end;padding-top:var(--space-2);margin-top:var(--space-2);border-top:var(--border-width) solid var(--line)}

/* Layouts use shared tokens; the floating link reserves no layout space. */
.page-shell{max-width:var(--page-max);margin:0 auto;padding:var(--space-8) var(--space-12) var(--space-10)}
.date-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-4)}
.date-button{aspect-ratio:1;width:100%;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2)}
.date-day{color:var(--accent);font-size:var(--font-display);line-height:1;font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums}
.date-month{font-size:var(--font-caption);line-height:var(--leading-tight);letter-spacing:var(--tracking-wide);font-weight:var(--weight-medium);color:var(--muted)}
.date-dialog{width:calc(100% - var(--space-16));max-width:var(--dialog-max);max-height:calc(100dvh - var(--space-16));margin:auto;padding:0;color:var(--ink);overflow:visible;box-shadow:var(--shadow-dialog)}
.date-dialog::backdrop{background:var(--backdrop)}
.detail-shell{display:flex;flex-direction:column;max-height:calc(100dvh - var(--space-16) - 2 * var(--border-width))}
.detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-4) var(--space-6);flex-shrink:0}
.detail-toolbar h1{min-width:0;font-family:var(--serif);font-size:var(--font-title);line-height:var(--leading-tight);font-weight:var(--weight-regular)}
.detail-content{overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding:var(--space-6) var(--space-7) var(--space-8)}
.decoded-section{padding-bottom:var(--space-6);margin-bottom:var(--space-2);border-bottom:var(--border-width) solid var(--line)}
.section-heading{padding:0 0 var(--space-3)}
.section-heading h2{font-size:var(--font-small);font-weight:var(--weight-medium);color:var(--accent)}
.case-detail{border-bottom:var(--border-width) solid var(--line-soft)}
.case-detail:last-child{border-bottom:0}
.case-detail summary{list-style:none;display:flex;gap:var(--space-3);align-items:center;min-height:var(--row-size)}
.case-detail summary::-webkit-details-marker{display:none}
.case-number{font-size:var(--font-caption);color:var(--muted);min-width:var(--space-5);font-variant-numeric:tabular-nums}
.case-name{font-size:var(--font-reading);line-height:var(--leading-normal);flex:1}
.case-plus{height:var(--icon-compact);width:var(--icon-compact);position:relative;flex-shrink:0;margin-left:var(--space-2)}
.case-plus:before,.case-plus:after{content:'';background:var(--muted);position:absolute;width:var(--icon-compact);height:var(--border-width);top:50%;left:50%;transform:translate(-50%,-50%)}
.case-plus:after{transform:translate(-50%,-50%) rotate(90deg)}
.case-detail[open] .case-plus:after{transform:translate(-50%,-50%)}
.case-detail summary:hover .case-name,.case-detail[open] .case-name{color:var(--accent)}
.case-body{padding:var(--space-2) 0 var(--space-6) var(--space-8)}
.case-task{border-left:var(--focus-width) solid var(--line-hover);margin-top:var(--space-4);padding-left:var(--space-4)}
.case-task>span{font-size:var(--font-caption);letter-spacing:var(--tracking-wide);color:var(--muted)}
.case-task p{margin-top:var(--space-2);font-size:var(--font-small);line-height:var(--leading-reading);color:var(--reading-ink);white-space:pre-wrap}
.originals-reading{margin:0;padding:0}
.recall-text-block{margin:0;padding:var(--space-6) 0}
.recall-text-block:first-child{padding-top:0}
.recall-text-block+.recall-text-block{border-top:var(--border-width) solid var(--line-soft)}
.recall-text{font-size:var(--font-reading);line-height:var(--leading-reading);color:var(--reading-ink);white-space:pre-wrap;overflow-wrap:anywhere}
.redaction-note{font-size:var(--font-caption);line-height:var(--leading-reading);color:var(--muted);margin-top:var(--space-4)}
.decoded-section+.originals-reading{padding-top:var(--space-6)}
.telegram-dock{position:fixed;bottom:calc(var(--space-6) + env(safe-area-inset-bottom));right:max(var(--space-7),env(safe-area-inset-right));z-index:var(--layer-floating);pointer-events:none}
.telegram-button{pointer-events:auto;box-shadow:var(--shadow-floating)}

@media(max-width:800px){
  .page-shell{padding:var(--space-7) var(--space-7) var(--space-8)}
  .date-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3)}
}
@media(max-width:600px){
  .page-shell{padding:var(--space-6) var(--space-5) var(--space-7)}
  .date-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .date-dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0}
  .detail-shell{height:100%;max-height:100%}
  .detail-toolbar{padding:var(--space-2) var(--space-4);gap:var(--space-3);padding-top:max(var(--space-2),env(safe-area-inset-top))}
  .detail-content{padding:var(--space-4) var(--space-4) var(--space-6)}
  .decoded-section{padding-bottom:var(--space-5)}
  .section-heading{padding-bottom:var(--space-2)}
  .case-plus{margin-left:0}
  .case-body{padding-left:var(--space-6)}
  .telegram-dock{right:max(var(--space-5),env(safe-area-inset-right));bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}
}


/* All website feedback shares these variants and component geometry. */
.feedback-stack:empty{display:none}
.feedback-stack{display:grid;gap:var(--space-2);margin-bottom:var(--space-4)}
.overlay-feedback{padding:var(--space-4) var(--space-6) 0;margin-bottom:0;flex-shrink:0}
.feedback{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--font-small);line-height:var(--leading-normal)}
.feedback-copy{flex:1;min-width:0;overflow-wrap:anywhere}
.feedback-icon{color:var(--muted)}
.feedback[data-type="success"] .feedback-icon{color:var(--accent)}
.feedback[data-type="error"] .feedback-icon{color:var(--feedback-error)}
.feedback[data-type="warning"] .feedback-icon{color:var(--feedback-warning)}
.feedback[data-type="loading"] .feedback-icon{animation:feedback-spin var(--motion-loading) linear infinite}
.feedback .text-control{padding:var(--space-2);flex-shrink:0}
.skeleton{animation:feedback-pulse var(--motion-loading) ease-in-out infinite alternate}
.reading-skeleton{height:var(--skeleton-reading);background:var(--surface)}
@keyframes feedback-spin{to{transform:rotate(360deg)}}
@keyframes feedback-pulse{to{opacity:.4}}
@media(max-width:600px){.overlay-feedback{padding:var(--space-3) var(--space-4) 0}.feedback{flex-wrap:wrap}.feedback-copy{flex-basis:60%}}
@media(prefers-reduced-motion:reduce){.skeleton,.feedback[data-type="loading"] .feedback-icon{animation:none}}
