/* Built by app/kit/portal-kit.js from app/kit; do not edit. */
:where(.k-kit){--ink: #15171C;
  --ink-2: #1F2228;          
  --ink-3: #272B34;          
  --ink-line: #2C3038;
  --ink-text: #C9CDD4;
  --ink-muted: #8B919C;
  --ink-quiet: #A1A7B1;      
  --ink-kbd: #3A3F49;        
  --ink-count: #2A3A4C; --ink-count-text: #CFDAE5;  
  --ink-brand: #EFE9DC;      
  --ink-terra: #E3A58E;   
  --on-dark: #FFFFFF;        
  --on-ink-soft: #F2F3F5;    

  
  --ground: #FAFBFC;         
  --surface: #FFFFFF;        
  --line: #E3E6EA;           
  --line-soft: #EDEFF2;      
  --line-faint: #F1F2F5;     
  --control: #D3D7DE;        
  --control-strong: #B3B8C1; 
  --control-inline: #C9CFD8; 
  
  --quiet: #F6F7F9;
  --note-wash: #FBF8F2; --note-line: #ECE4D3;

  
  --text: #16181D;
  --text-2: #474D58;
  --text-3: #5B616E;         
  --text-4: #6B717C;         
  --text-5: #8B919C;         

  
  --navy: #2D5277;   --navy-hover: #213E5C; --navy-tint: #E4EBF0; --navy-wash: #F3F6FA; --navy-line: #DDE5EE;
  --navy-ring: #C9D6E2;      
  --olive: #687147;  --olive-text: #5C6540; --olive-tint: #E8EBDF;
  --terra: #A45A43;  --terra-tint: #F4E9E4; --terra-line: #EBD6CD;
  --plum: #6A4F80;   --plum-tint: #F1ECF5;
  --sand: #6F6552;   --sand-dot: #A0957E;   --sand-tint: #EAE7DC; --sand-wash: #F4F2EC; --sand-line: #E6E1D3;
  --gold: #D4AE62;
  --gold-ink: color-mix(in srgb, var(--gold) 50%, var(--ink));   
  --neutral-tint: #EBEDF1;   

  
  --font: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-serif: 'Instrument Serif', Georgia, serif;   
  --font-mono: 'Geist Mono', ui-monospace, monospace; 
  --fs-title: 30px;      
  --fs-panel: 17px;      
  --fs-section: 14px;    
  --fs-body: 13px;       
  --fs-small: 12.5px;    
  --fs-label: 12px;      
  --fs-micro: 11.5px;    

  
  --gutter: 32px;        
  --gap-section: 14px;
  --row-list: 50px;      
  --row-table: 34px;     
  --row-data: 26px;      
  --line-cell: 16.9px;   
  --pad-row-table: calc((var(--row-table) - var(--line-cell) - 1px) / 2);      
  --line-cell-2: 32.5px; 
  --pad-row-list: calc((var(--row-list) - var(--line-cell-2) - 1px) / 2);    

  
  --r-card: 12px;
  --r-control: 8px;
  --r-small: 7px;
  --r-pill: 999px;
  --r-tag: 4px;
  --shadow-float: 0 10px 28px rgba(21, 23, 28, 0.14);   
  --shadow-panel: -14px 0 32px rgba(21, 23, 28, 0.08);  
  --shadow-toast: 0 10px 28px rgba(21, 23, 28, 0.28);
  --focus-ring: 0 0 0 3px var(--navy-tint);

  
  --sidebar: 232px;
  --sidebar-rail: 60px;
  --toolbar: 52px;
  --panel: 380px;
  --menu-gap: 4px;       

  
  --t-fast: .12s ease;
  --t-panel: .2s ease;}
:where(.k-kit) .k-kicker{font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--terra);}
:where(.k-kit) [hidden]{display: none !important;}
:where(.k-kit) .k-btn{height: 36px; padding: 0 14px; border-radius: var(--r-control); border: 1px solid var(--control); background: var(--surface);
  font-size: 13px; font-weight: 500; color: var(--text) !important; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;}
:where(.k-kit) .k-btn:hover{border-color: var(--control-strong); background: var(--surface);}
:where(.k-kit) .k-btn.primary{background: var(--navy); border-color: var(--navy); color: var(--on-dark) !important;}
:where(.k-kit) .k-btn.primary:hover{background: var(--navy-hover);}
:where(.k-kit) .k-btn.btn-danger:not(.armed){color: var(--danger) !important;}
:where(.k-kit) .k-btn.btn-danger:not(.armed):hover{border-color: var(--danger); background: var(--danger-bg);}
:where(.k-kit) .k-btn.sm{height: 30px; padding: 0 11px; font-size: 12.5px;}
:where(.k-kit) .k-btn.icon{width: 36px; padding: 0; justify-content: center;}
:where(.k-kit) .k-btn[disabled],:where(.k-kit) .k-btn.disabled{opacity: .45; cursor: not-allowed;}
:where(.k-kit) .k-link{border: 0; background: none; padding: 4px 0; font-size: var(--fs-body); font-weight: 500; color: var(--navy);}
:where(.k-kit) .k-link:hover{background: none; color: var(--navy-hover);}
:where(.k-kit) .k-btn:focus-visible,:where(.k-kit) .k-link:focus-visible,:where(.k-kit) .k-tab:focus-visible,:where(.k-kit) .k-seg button:focus-visible{outline: none; box-shadow: var(--focus-ring);}
@keyframes k-menu-in{ from { opacity: 0; transform: translateY(-4px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce){:where(.k-kit) details::details-content{transition: none !important;}}
:where(.k-kit) .k-btn.k-decline{border-color: transparent; background: transparent; color: var(--text-2);}
:where(.k-kit) .k-btn.k-decline:hover{color: var(--terra); background: var(--terra-tint); border-color: transparent;}
@media (max-width: 640px){:where(.k-kit) .k-pagebar-actions > :last-child:is(details, .k-btn){margin-left: auto;}}
@keyframes k-in{ from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translate(-50%, 0); } }
:where(.k-kit) .k-toast .k-kbd,:where(.k-kit) .k-btn.primary .k-kbd{background: transparent; border-color: rgba(255,255,255,.3); color: rgba(255,255,255,.8);}
:where(.k-kit) [data-icon]::before,:where(.k-kit) [data-icon-end]::after{content: ""; width: 15px; height: 15px; flex-shrink: 0; background: currentColor;
  -webkit-mask: var(--k-icon) center / contain no-repeat; mask: var(--k-icon) center / contain no-repeat;}
:where(.k-kit) [data-icon-end]::after{-webkit-mask-image: var(--k-icon-end); mask-image: var(--k-icon-end);}
:where(.k-kit) .k-btn.sm[data-icon]::before,:where(.k-kit) .k-btn.sm[data-icon-end]::after{width: 14px; height: 14px;}
:where(.k-kit) .k-btn.sm .k-icon{width: 14px; height: 14px;}
:where(.k-kit) [data-icon="plus"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="plus"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="arrow-right"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="arrow-right"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="sliders"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h10M18 7h2M4 17h4M12 17h8'/%3E%3Ccircle cx='16' cy='7' r='2'/%3E%3Ccircle cx='10' cy='17' r='2'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="sliders"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h10M18 7h2M4 17h4M12 17h8'/%3E%3Ccircle cx='16' cy='7' r='2'/%3E%3Ccircle cx='10' cy='17' r='2'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="video"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6' width='13' height='12' rx='2'/%3E%3Cpath d='M16 10l5-3v10l-5-3'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="video"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6' width='13' height='12' rx='2'/%3E%3Cpath d='M16 10l5-3v10l-5-3'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="mic"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='3' width='6' height='11' rx='3'/%3E%3Cpath d='M5.5 11a6.5 6.5 0 0 0 13 0M12 17.5V21'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="mic"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='3' width='6' height='11' rx='3'/%3E%3Cpath d='M5.5 11a6.5 6.5 0 0 0 13 0M12 17.5V21'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="calendar"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="calendar"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="search"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="search"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="chevron-left"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 6l-6 6 6 6'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="chevron-left"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 6l-6 6 6 6'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="chevron-right"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="chevron-right"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="chevron-down"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="chevron-down"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="mail"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="mail"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="phone"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="phone"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="edit"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L18.5 9.5a2.1 2.1 0 0 0-3-3L5 17z'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="edit"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L18.5 9.5a2.1 2.1 0 0 0-3-3L5 17z'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="check"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="check"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="external"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="external"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="download"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="download"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="note"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="note"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="x"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="x"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="upload"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V9M7 14l5-5 5 5M5 4h14'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="upload"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V9M7 14l5-5 5 5M5 4h14'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="inbox"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13l2.5-7h11l2.5 7v5H4z'/%3E%3Cpath d='M4 13h5l1 2h4l1-2h5'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="inbox"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13l2.5-7h11l2.5 7v5H4z'/%3E%3Cpath d='M4 13h5l1 2h4l1-2h5'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="clock"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 8v4l3 2'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="reply"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 14l-5-5 5-5'/%3E%3Cpath d='M4 9h10a6 6 0 0 1 6 6v4'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="send"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l16-8-6 16-2.5-6.5z'/%3E%3Cpath d='M11.5 13.5L20 4'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="list"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11'/%3E%3Cpath d='M4.5 6h.01M4.5 12h.01M4.5 18h.01'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="pin"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16v6'/%3E%3Cpath d='M8.5 3h7l-1 6 3.5 4h-12L9.5 9z'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon="message"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3C/svg%3E");}
:where(.k-kit) [data-icon-end="clock"]{--k-icon-end: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 8v4l3 2'/%3E%3C/svg%3E");}
:where(.k-kit) .k-link[data-icon],:where(.k-kit) .k-link[data-icon-end]{display: inline-flex; align-items: center; gap: 5px; text-decoration: none;}
:where(.k-kit) .k-link[data-icon]::before,:where(.k-kit) .k-link[data-icon-end]::after{width: 14px; height: 14px;}
:where(.k-kit) .k-link:has(> .k-icon){display: inline-flex; align-items: center; gap: 5px; text-decoration: none;}
:where(.k-kit) .k-link > .k-icon{width: 14px; height: 14px;}
:where(.k-kit) .k-btn.quiet{border-color: transparent; background: transparent; color: var(--navy);}
:where(.k-kit) .k-btn.quiet:hover{background: var(--navy-wash); border-color: transparent; color: var(--navy-hover);}
:where(.k-kit) a.k-btn,:where(.k-kit) a.k-btn:hover,:where(.k-kit) a.k-btn:focus{text-decoration: none !important;}
:where(.k-kit) ::view-transition-group(k-seg-on),:where(.k-kit) ::view-transition-group(k-seg-sub-on){animation-duration: 220ms; animation-timing-function: cubic-bezier(.2,.7,.2,1);}
:where(.k-kit) ::view-transition-group(k-seg-l1),:where(.k-kit) ::view-transition-group(k-seg-l2),:where(.k-kit) ::view-transition-group(k-seg-l3),:where(.k-kit) ::view-transition-group(k-seg-l4),:where(.k-kit) ::view-transition-group(k-seg-l5),:where(.k-kit) ::view-transition-group(k-seg-sub-l1),:where(.k-kit) ::view-transition-group(k-seg-sub-l2),:where(.k-kit) ::view-transition-group(k-seg-sub-l3),:where(.k-kit) ::view-transition-group(k-seg-sub-l4),:where(.k-kit) ::view-transition-group(k-seg-sub-l5){animation-duration: 0s;}
:where(.k-kit) ::view-transition-group(k-page-head){animation-duration: 0s;}
:where(.k-kit) .k-btn.icon.faint{border-color: transparent; background: transparent; color: var(--text-4);}
:where(.k-kit) section:hover > .k-section-head .k-btn.icon.faint{color: var(--text-3);}
:where(.k-kit) .k-btn.icon.faint:hover,:where(.k-kit) .k-btn.icon.faint:focus-visible,:where(.k-kit) details[open] > .k-btn.icon.faint{color: var(--text); background: var(--navy-wash);}
:where(.k-kit) .k-tr:not(.head):not(:has(input, select, textarea)) .k-btn.sm{height: 24px; min-height: 24px; padding: 0 9px; font-size: 12px;}
:where(.k-kit) .k-contact-card > .k-row:first-child > .k-link{margin-top: 1px;}
:where(.k-kit) [data-icon="more"]{--k-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Ccircle cx='5' cy='12' r='2'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Ccircle cx='19' cy='12' r='2'/%3E%3C/svg%3E");}
:where(.k-kit) .k-section-head .k-btn.icon.sm{width: 28px; height: 28px; min-height: 28px; margin-right: 10px;}
:where(.k-kit) .k-section-head .k-picker:has(> .k-btn.icon.sm),:where(.k-kit) .k-section-head > .k-btn.icon.sm{align-self: flex-end; margin-bottom: -6px;}
:where(.k-kit) .k-btn.icon[data-icon="more"]::before{width: 16px; height: 16px;}
:where(.k-kit) .k-record-feed .k-rf-entry > .k-btn{flex-shrink: 0;}
:where(.k-kit) .k-open .k-section-head .k-picker:has(> .k-btn.icon.sm),:where(.k-kit) .k-open .k-section-head > .k-btn.icon.sm{align-self: center; margin-bottom: 0;}
:where(.k-kit) .k-open .k-section-head .k-btn.icon.sm{margin-right: -6px;}
:where(.k-kit) .k-open section:is([data-state="focus"], [data-state="queue"]) > .k-section-head > .k-link{padding: 4px 8px; font-size: 12.5px;}
:where(.k-kit) .k-open details[data-fold][data-state="quiet"] > summary.k-section-head > .k-hint .k-link{color: var(--navy); font-weight: 500;}
:where(.k-kit) [data-hold-row]{transition: opacity .18s;}
:where(.k-kit) [data-hold-row].is-gone{display: none;}
:where(.k-kit) .k-due-soon .k-two > span > a,:where(.k-kit) .k-by-stage .k-link{color: inherit; text-decoration: none;}
:where(.k-kit) .k-due-soon .k-two > span > a:hover,:where(.k-kit) .k-by-stage .k-link:hover{color: var(--navy);}
:where(.k-kit) .k-by-stage .k-link{padding: 0; font-weight: 400;}
@keyframes k-in-phone{ from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (min-width: 641px){:where(.k-kit) .app-workspace > .fp-mobile-menu{display: none;}}
@media (max-width: 640px){:where(.k-kit) .app-workspace > .fp-mobile-menu{display: none !important;}:where(.k-kit) .app-workspace.fp-menu-open{overflow: hidden;}}
:where(.k-kit) main .top > h2,:where(.k-kit) main .top > div:first-child > h2,:where(.k-kit) main .record-head h1,:where(.k-kit) main > h2:first-child{font-family: var(--font-serif); font-weight: 400; font-size: var(--fs-title); line-height: 1.1; letter-spacing: -0.01em;}
:where(.k-kit) main .tabs{gap: 20px; border-bottom: 1px solid var(--line); margin-bottom: 14px; flex-wrap: wrap;}
:where(.k-kit) main .tabs .tab{border-radius: 0; padding: 8px 1px; margin-bottom: -1px; border-bottom: 2px solid transparent; background: none;
  color: var(--text-3); font-weight: 500;}
:where(.k-kit) main .tabs .tab:hover{background: none; color: var(--text);}
:where(.k-kit) main .tabs .tab.on{background: none; color: var(--text); border-bottom-color: var(--navy); font-weight: 500;}
:where(.k-kit) main .tabs{position: relative;}
@media (max-width: 900px){:where(.k-kit) main .tabs{flex-wrap: nowrap; min-width: 0; max-width: 100%; overflow-x: auto; overflow-y: hidden; scrollbar-width: none;}:where(.k-kit) main .tabs::-webkit-scrollbar{display: none;}:where(.k-kit) main .tabs > .tab{flex: none; white-space: nowrap; margin-bottom: 0;}:where(.k-kit) main .tabs > .tab:focus-visible{box-shadow: inset var(--focus-ring);}}
:where(.k-kit) main button,:where(.k-kit) main .btn{border-radius: var(--r-control); font-weight: 500;}
:where(.k-kit) main button.ghost,:where(.k-kit) main .btn.ghost{background: var(--surface); border-color: var(--control); color: var(--text);}
:where(.k-kit) main button.ghost:hover,:where(.k-kit) main .btn.ghost:hover{background: var(--surface); border-color: var(--control-strong);}
:where(.k-kit) main button.ghost.btn-danger,:where(.k-kit) main .btn.ghost.btn-danger{color: var(--danger);}
:where(.k-kit) main button.ghost.btn-danger:hover,:where(.k-kit) main .btn.ghost.btn-danger:hover{border-color: var(--danger); background: var(--danger-bg);}
:where(.k-kit) main button:focus-visible,:where(.k-kit) main .btn:focus-visible{outline: none; box-shadow: var(--focus-ring);}
:where(.k-kit) main :not(.pipeline-layout) > a.btn:not(.ghost):not(.on):not(.ibtn):is(:hover, :focus-visible){color: var(--on-accent);}
@media (max-width: 640px){:where(.k-kit) main .top > h2,:where(.k-kit) main .top > div:first-child > h2,:where(.k-kit) main .record-head h1{font-size: 26px;}}
:where(.k-kit) main .top > div:first-child:has(> h2){display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; min-width: 0;}
:where(.k-kit) main .sec .top > div:first-child:has(> h2){display: block;}
:where(.k-kit) main .sec .top > h2,:where(.k-kit) main .sec .top > div:first-child > h2{font-family: var(--font); font-size: var(--fs-section); font-weight: 600;}
:where(.k-kit) main .pipeline-layout{display: inline-flex; gap: 2px; padding: 3px; background: var(--neutral-tint); border-radius: 9px;}
:where(.k-kit) main .pipeline-layout .btn{min-height: 28px; padding: 0 12px; border: 0; background: transparent; color: var(--text-2);}
:where(.k-kit) main .pipeline-layout .btn:hover{background: transparent; color: var(--text);}
:where(.k-kit) main .pipeline-layout .btn[aria-current]{background: var(--surface); color: var(--text); box-shadow: 0 1px 2px rgba(22,24,29,.08);}
:where(.k-kit) main .sec{border-color: var(--line); border-radius: var(--r-card); box-shadow: none;}
:where(.k-kit) main .sec h3{font-size: var(--fs-section); font-weight: 600; color: var(--text); text-transform: none; letter-spacing: 0;}
:where(.k-kit) main .sec details > summary{font-weight: 500;}
:where(.k-kit) main table{border-color: var(--line); border-radius: var(--r-card); box-shadow: none;}
:where(.k-kit) main th{font-size: var(--fs-label); font-weight: 500; color: var(--text-3); background: var(--ground);}
:where(.k-kit) main th,:where(.k-kit) main td{border-right: 0; border-bottom-color: var(--line-faint);}
:where(.k-kit) main td{padding-top: 6px; padding-bottom: 6px;}
:where(.k-kit) main tbody tr:hover{background: var(--ground);}
:where(.k-kit) main .tscroll th{height: 32px; padding-top: 0; padding-bottom: 0; font-size: 11.5px; white-space: nowrap;}
:where(.k-kit) main table tr.group > th,:where(.k-kit) main .tscroll tr.group > th{height: auto; padding-top: 14px; padding-bottom: 6px; font-size: 13px; font-weight: 600; color: var(--text); background: var(--surface); white-space: normal; text-align: left;}
:where(.k-kit) main table tr.subtotal > :is(td, th){background: var(--ground); font-weight: 600; color: var(--text);}
:where(.k-kit) main table.report tfoot tr:first-child > :is(td, th){border-top: 1px solid var(--text);}
:where(.k-kit) main .tscroll td{padding-top: var(--pad-row-table); padding-bottom: var(--pad-row-table); font-size: 13px; line-height: 1.3;}
:where(.k-kit) main .tscroll tbody tr:last-child > td{padding-bottom: calc(var(--pad-row-table) + 1px);}
:where(.k-kit) main .tscroll td:has(input, select, textarea, details, form, button, .k-btn){height: var(--row-table); padding-top: 0; padding-bottom: 0;}
:where(.k-kit) main .tscroll td:not(.wrap):not(:has(input, select, textarea, details, form)){white-space: nowrap; max-width: 30ch; overflow: hidden; text-overflow: ellipsis;}
:where(.k-kit) main .tscroll td.wrap{white-space: normal;}
:where(.k-kit) main .tscroll tbody tr:has(.k-two > small:not(:empty)) > td:not(:has(input, select, textarea, details, form, button, .k-btn)){padding-top: var(--pad-row-list); padding-bottom: var(--pad-row-list);}
:where(.k-kit) main .tscroll tbody tr:has(.k-two > small:not(:empty)) > td:has(input, select, textarea, details, form, button, .k-btn){height: var(--row-list);}
:where(.k-kit) main .tscroll tbody tr:last-child:has(.k-two > small:not(:empty)) > td:not(:has(input, select, textarea, details, form, button, .k-btn)){padding-bottom: calc(var(--pad-row-list) + 1px);}
:where(.k-kit) main .chip{border-color: transparent; font-size: 12px; padding: 2px 9px;}
:where(.k-kit) main input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]),:where(.k-kit) main select{min-height: 32px; padding: 4px 10px; border-color: var(--control); border-radius: var(--r-control); background: var(--surface);}
:where(.k-kit) main textarea{border-color: var(--control); border-radius: var(--r-control); padding: 6px 10px;}
:where(.k-kit) main input:focus,:where(.k-kit) main select:focus,:where(.k-kit) main textarea:focus{outline: none; border-color: var(--navy); box-shadow: var(--focus-ring);}
:where(.k-kit) main td input:not([type="checkbox"]):not([type="radio"]),:where(.k-kit) main td select{min-height: 28px; padding: 2px 8px;}
:where(.k-kit) main .irow{padding-top: 4.5px; padding-bottom: 4.5px; box-sizing: border-box; min-height: var(--row-table);}
:where(.k-kit) main .irow:last-child{padding-bottom: 5.5px;}
:where(.k-kit) main .frow{padding-top: 1px; padding-bottom: 1px;}
:where(.k-kit) main .frow > label{color: var(--text-3);}
:where(.k-kit) .app-workspace > .app-rail{background: var(--surface); border-right-color: var(--line); padding-top: 18px;}
:where(.k-kit) .app-rail .app-brand{border-bottom: 0; padding: 4px 12px 10px;}
:where(.k-kit) .app-rail .app-brand .app-mark,:where(.k-kit) .app-rail .app-brand strong{display: none;}
:where(.k-kit) .app-rail .app-brand div > span{font: 400 24px/1.15 var(--font-serif); color: var(--text); letter-spacing: -0.01em;}
:where(.k-kit) .app-rail a{color: var(--text-2); font-weight: 400;}
:where(.k-kit) .app-rail a.on{background: var(--navy-tint); color: var(--navy); font-weight: 500;}
:where(.k-kit) .app-rail .app-caption{color: var(--text-4); font-size: var(--fs-micro); font-weight: 500; text-transform: uppercase; letter-spacing: .05em;}
:where(.k-kit) .app-rail .app-exit > a[href="/today"]{display: none;}
:where(.k-kit) .app-rail .app-exit{border-top: 0;}
:where(.k-kit) main .list-head{align-items: center;}
:where(.k-kit) main .list-actions{display: flex; gap: 8px; align-items: center; flex-wrap: wrap;}
:where(.k-kit) main .list-toolbar{display: flex; gap: 8px; align-items: center; justify-content: flex-end; flex-wrap: wrap; margin: -4px 0 12px;}
:where(.k-kit) main .list-toolbar:empty{display: none;}
:where(.k-kit) main .list-toolbar .list-search{margin: 0;}
:where(.k-kit) main .list-toolbar .list-search input{width: 260px;}
:where(.k-kit) ::view-transition-old(root){animation: none; opacity: 0;}
:where(.k-kit) ::view-transition-new(root){animation: none;}
:where(.k-kit) ::view-transition-group(sidebar){animation-duration: 0s;}
:where(.k-kit) main{line-height: normal;}
:where(.k-kit) main :where(p, textarea, [style*="pre-wrap"], [style*="pre-line"], .crm-excerpt, .tl-quote, .client-peek-excerpt, .request-copy,
  .rq-preview-body, .rq-copy, .rq-bubble, .ask-answers-text, .report-prose, .report-pack-commentary, .project-outcome,
  .tax-review-prose, .tcr-discussion, .tax-projection-note, .meeting-import-source, .mt-prompt, .inbox-text, .inbox-body){line-height: 1.5;}
/* Documents, the shared block (UI-073 stage 8): the Documents page's head (Send files) and a document's own page, which also
   opens beside the list (what it is, its first page, who sent it and when, Read, Download and Ask about it, the requests it
   answered). The list itself is the Requests block (requests.js, requests.css). The markup is Documents' own
   (client-portal-documents.js); its root is .k-kit.k-dc on the page's head and on the document's body. Every rule is the
   portal's own for these parts, re-rooted here in the kit's tokens, so the page and a board draw the same look from this file.
   The resets keep their place under the rest (@layer k-dc-base); the portal's component rules come first, so its other rules
   win where they meet, as they do on the portal.
   A width rule is written twice: for the window (the portal) and for a frame (@container k-dc-frame, a phone board). */
@layer k-dc-base;
.k-dc { --k-dc-inset: 16px; --k-dc-action: 96px; font-family: inherit; font-size: 13px; line-height: 1.55; color: var(--text); }
@media (max-width: 700px) { .k-dc { --k-dc-action: 84px; } }
@container k-dc-frame (max-width: 700px) { .k-dc { --k-dc-action: 84px; } }
@media (max-width: 560px) { .k-dc { --k-dc-inset: 12px; } }
@container k-dc-frame (max-width: 560px) { .k-dc { --k-dc-inset: 12px; } }
/* A link reads as its words unless a rule below colours it (the portal's own base); outside the base layer, so a board's kit link colour does not reach it. */
.k-dc a { color: inherit; text-decoration: none; }
@layer k-dc-base {
:where(.k-dc), :where(.k-dc) *, :where(.k-dc) ::before, :where(.k-dc) ::after { box-sizing: border-box; border-width: 0; border-style: solid; }
:where(.k-dc) :is(h1, h2, h3, p, ul, ol, dl, dd, fieldset) { margin: 0; }
:where(.k-dc) :is(ul, ol) { list-style: none; padding: 0; }
:where(.k-dc) :is(fieldset, legend) { padding: 0; }
:where(.k-dc) :is(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.k-dc) button { cursor: pointer; background: transparent; }
:where(.k-dc) a { color: inherit; text-decoration: none; text-underline-offset: .2em; }
:where(.k-dc) :is(img, svg) { display: block; max-width: 100%; }
:where(.k-dc) :is(h1, h2, h3) { font: inherit; }

}
.portal-page-head.k-dc, .k-dc .portal-page-head { display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px; }
.portal-page-head.k-dc h1, .k-dc .portal-page-head h1 { margin-top: 4px;
    color: var(--text);
    font-family: var(--font), ui-sans-serif, system-ui, sans-serif;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.08; }
@media (max-width: 39.9375rem) { .portal-page-head.k-dc, .k-dc .portal-page-head { align-items: start; } }
@container k-dc-frame (max-width: 39.9375rem) { .portal-page-head.k-dc, .k-dc .portal-page-head { align-items: start; } }
.k-dc .portal-overview-panel { overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface); }
.k-dc .portal-overview-panel { overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface); }
.k-dc .portal-overview-section-title { display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px var(--k-dc-inset) 8px; }
.k-dc .portal-overview-section-title h2 { color: var(--text);
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.3; }
.k-dc .portal-overview-row-action { min-height: 34px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--control);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
    padding: 0 12px;
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none; }
.k-dc .portal-overview-row-action:hover { border-color: var(--text-5); background: var(--ground); }
.k-dc .portal-overview-row-action.is-primary { border-color: var(--navy); background: var(--navy); color: var(--on-dark); }
.k-dc .portal-overview-row-action.is-primary:hover { border-color: var(--navy-hover); background: var(--navy-hover); color: var(--on-dark); }
.k-dc h1 { font-family: var(--font-serif); }
.k-dc .portal-overview-row-action { gap:8px;white-space:normal;justify-content:center;text-align:center; }
.k-dc .portal-overview-row-action { min-width:var(--k-dc-action); }
.k-dc .upload { position:relative;cursor:pointer;min-height:40px; }
.k-dc .upload input { position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer; }
.k-dc .upload:focus-within { outline:3px solid var(--navy);outline-offset:3px; }
.k-dc .upload:has(input:disabled) { opacity:.6;cursor:wait; }
.proto-panel-stack.k-dc, .k-dc .proto-panel-stack { display:grid;gap:16px; }
.k-dc .proto-panel-foot { padding:12px var(--k-dc-inset);border-top:1px solid var(--line); }
.k-dc .proto-panel-foot a { display:inline-flex; }
.k-dc .proto-people { padding:8px var(--k-dc-inset); }
.k-dc .proto-people li { padding:8px 0;border-bottom:1px solid var(--line);font-size:12px; }
.k-dc .proto-people li:last-child { border-bottom:0; }
@media (max-width:450px) { .portal-page-head.k-dc, .k-dc .portal-page-head { flex-wrap:wrap; } }
@container k-dc-frame (max-width:450px) { .portal-page-head.k-dc, .k-dc .portal-page-head { flex-wrap:wrap; } }
@media (max-width:450px) { .k-dc .portal-overview-row-action { max-width:100%; } }
@container k-dc-frame (max-width:450px) { .k-dc .portal-overview-row-action { max-width:100%; } }
@media print { .k-dc .portal-overview-panel { break-inside:avoid; } }
.k-dc .proto-document-note { margin:6px 0 0;white-space:pre-line;overflow-wrap:anywhere; }
.k-dc .proto-note-edit { margin-top:6px; }
.k-dc .proto-note-edit>summary { display:list-item;width:max-content;max-width:100%;line-height:44px;cursor:pointer;font-weight:600;color:var(--navy); }
.k-dc .proto-note-edit form { display:grid;gap:8px;justify-items:start; }
.k-dc .proto-note-edit textarea { display:block;width:100%;min-height:4.5rem;padding:8px;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);resize:vertical; }
.k-dc .portal-overview-action-register li :is(button,input,select,textarea,summary,label,form,a:not(.portal-overview-register-copy>strong>a)) { position:relative;z-index:1; }
.k-dc .portal-overview-action-register li .upload input[type=file] { position:absolute; }
.portal-page-head.k-dc, .k-dc .portal-page-head { margin-bottom:20px; }
.portal-page-head.k-dc h1, .k-dc .portal-page-head h1 { margin:0;font-family:var(--font-serif);font-size:36px;font-weight:400;line-height:1.06;letter-spacing:-.01em; }
.k-dc .portal-eyebrow { margin:0 0 6px;color:var(--sand);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase; }
@media (max-width:1023px) { .portal-page-head.k-dc h1, .k-dc .portal-page-head h1 { font-size:30px;line-height:1.08; } }
@container k-dc-frame (max-width:1023px) { .portal-page-head.k-dc h1, .k-dc .portal-page-head h1 { font-size:30px;line-height:1.08; } }
.k-dc .doc-view { display:grid;gap:12px;padding:var(--k-dc-inset); }
.k-dc .doc-thumb { display:grid;place-items:center;height:230px;border-radius:8px;background:var(--pk-stone, var(--neutral-tint));color:var(--text-4);overflow:hidden; }
.k-dc .doc-thumb>svg { width:40px;height:40px; }
.k-dc .doc-thumb-page, .k-dc .doc-thumb-image { max-width:calc(100% - 24px);max-height:calc(100% - 24px);height:auto;width:auto;background:var(--surface);box-shadow:var(--pk-shadow, var(--shadow-float)); }
.k-dc .doc-thumb-page { height:calc(100% - 24px); }
.k-dc .facts { display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px 12px;margin:0;font-size:13.5px; }
.k-dc .facts>div { display:contents; }
.k-dc .facts dt { color:var(--text-2); }
.k-dc .facts dd { margin:0;min-width:0;overflow-wrap:anywhere; }
.k-dc .doc-actions { display:flex;flex-wrap:wrap;align-items:center;gap:8px; }
.k-dc .doc-actions .doc-ask { margin-left:auto;padding:0 2px;color:var(--text-2);font-size:13px;font-weight:400;text-decoration:none; }
.k-dc .doc-actions .doc-ask:hover { text-decoration:underline; }
@media (max-width:700px) { .k-dc .doc-thumb { height:260px; } }
@container k-dc-frame (max-width:700px) { .k-dc .doc-thumb { height:260px; } }
.k-dc .portal-eyebrow { font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pk-label, var(--text-2)); }
.k-dc .information-request-existing { margin-top:12px; }
.k-dc .information-request-existing summary { cursor:pointer;min-height:44px;align-content:center;font-weight:600; }

/* The block's own rules (not copies of the portal's). A document's page titles itself in the words' size, not the page title's:
   the portal's rule reads the page around the head (.portal-page), outside the root, so the block says it on the head and its
   body. */
.portal-page-head.k-dc:has(+ .k-dc.proto-panel-stack > .doc-view) h1 { font-family: inherit; font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: 0; }
@media (max-width: 700px) { .portal-page-head.k-dc:has(+ .k-dc.proto-panel-stack > .doc-view) h1 { font-size: 20px; } }
@container k-dc-frame (max-width: 700px) { .portal-page-head.k-dc:has(+ .k-dc.proto-panel-stack > .doc-view) h1 { font-size: 20px; } }
/* A document read beside the list (the page's card, .beside-open): the card is its frame, so its head stacks over the words and
   its panels lose their own frames, as the portal's frame rules draw it; said here on the block's parts so they outrank the
   block's own copies above. */
.beside-open .portal-page-head.k-dc { display: block; margin: 0 0 12px; }
.beside-open .portal-page-head.k-dc .portal-eyebrow { margin: 0 0 4px; font-size: 11.5px; letter-spacing: .08em; }
.beside-open .portal-page-head.k-dc p:not(.portal-eyebrow) { margin: 6px 0 0; color: var(--text-2); font-size: 13px; }
.beside-open .proto-panel-stack.k-dc { gap: 12px; }
.beside-open .k-dc .portal-overview-panel { padding: 12px 0 0; border: 0; border-top: 1px solid var(--line-soft); border-radius: 0; box-shadow: none; background: none; }
.beside-open > .proto-panel-stack.k-dc > .portal-overview-panel:first-child { padding-top: 0; border-top: 0; }
.beside-open .k-dc .portal-overview-section-title { padding: 0 0 6px; }
.beside-open .k-dc .portal-overview-panel .proto-panel-note, .beside-open .k-dc .portal-overview-panel > p { padding-left: 0; padding-right: 0; }
.beside-open .k-dc .portal-overview-action-register > li { padding-left: 0; padding-right: 0; }
.beside-open .k-dc .doc-view { padding: 0; }
/* Icons on Send files, Read and Download (the PortalDocuments board, Sonny 10/1), sized as the portal's button icons. */
.k-dc .portal-overview-row-action > svg { width: 15px; height: 15px; flex: none; }
.k-dc .portal-overview-row-action:has(> svg) { display: inline-flex; align-items: center; gap: 6px; }
.k-dc .facts dd a { color: var(--navy); text-decoration: underline; text-underline-offset: .2em; }

/* Messages, the shared block (UI-073 stage 9): the Messages page's head (New message), the conversation list (each
   conversation's words, its last line, its tag and day), a conversation on its own page and in the card beside the list, and
   New message. The bar and paging are the Requests block's (requests.js, requests.css). The markup is Messages' own
   (tax-report-question-inbox.js, client-portal-question-pages.js, tax-report-question-pages.js); its root is .k-kit.k-ms on the
   head, the list's card and a conversation's body. Every rule is the portal's own for these parts, re-rooted here in the kit's
   tokens, so the page and a board draw the same look from this file. The resets keep their place under the rest
   (@layer k-ms-base); the portal's component rules come first, so its other rules win where they meet, as they do on the portal.
   A width rule is written twice: for the window (the portal) and for a frame (@container k-ms-frame, a phone board). */
@layer k-ms-base;
.k-ms { --k-ms-inset: 16px; --k-ms-action: 96px; font-family: inherit; font-size: 13px; line-height: 1.55; color: var(--text); }
@media (max-width: 700px) { .k-ms { --k-ms-action: 84px; } }
@container k-ms-frame (max-width: 700px) { .k-ms { --k-ms-action: 84px; } }
@media (max-width: 560px) { .k-ms { --k-ms-inset: 12px; } }
@container k-ms-frame (max-width: 560px) { .k-ms { --k-ms-inset: 12px; } }
/* A link reads as its words unless a rule below colours it (the portal's own base); outside the base layer, so a board's kit link colour does not reach it. */
.k-ms a { color: inherit; text-decoration: none; }
@layer k-ms-base {
:where(.k-ms), :where(.k-ms) *, :where(.k-ms) ::before, :where(.k-ms) ::after { box-sizing: border-box; border-width: 0; border-style: solid; }
:where(.k-ms) :is(h1, h2, h3, p, ul, ol, dl, dd, fieldset) { margin: 0; }
:where(.k-ms) :is(ul, ol) { list-style: none; padding: 0; }
:where(.k-ms) :is(fieldset, legend) { padding: 0; }
:where(.k-ms) :is(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.k-ms) button { cursor: pointer; background: transparent; }
:where(.k-ms) a { color: inherit; text-decoration: none; text-underline-offset: .2em; }
:where(.k-ms) :is(img, svg) { display: block; max-width: 100%; }
:where(.k-ms) :is(h1, h2, h3) { font: inherit; }

}
.portal-page-head.k-ms, .k-ms .portal-page-head { display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px; }
.portal-page-head.k-ms h1, .k-ms .portal-page-head h1 { margin-top: 4px;
    color: var(--text);
    font-family: var(--font), ui-sans-serif, system-ui, sans-serif;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.08; }
@media (max-width: 39.9375rem) { .portal-page-head.k-ms, .k-ms .portal-page-head { align-items: start; } }
@container k-ms-frame (max-width: 39.9375rem) { .portal-page-head.k-ms, .k-ms .portal-page-head { align-items: start; } }
.portal-overview-panel.k-ms, .k-ms .portal-overview-panel { overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface); }
.k-ms .portal-overview-action-register { border-top: 0; }
.k-ms .portal-overview-action-register li { display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 56px;
  padding: 8px var(--k-ms-inset);
  border-top: 1px solid var(--line-soft);
  background: var(--surface);
  transition: background 120ms cubic-bezier(.2, .7, .2, 1); }
.k-ms .portal-overview-action-register li:hover { background: var(--ground); }
.k-ms .portal-overview-register-copy strong, .k-ms .portal-overview-register-copy small { display: block; }
.k-ms .portal-overview-register-copy strong { color: var(--text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3; }
.k-ms .portal-overview-register-copy small { margin-top: 2px;
  overflow: hidden;
  color: var(--text-3);
  font-size: 12.5px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap; }
.k-ms .portal-overview-action-register a, .k-ms .portal-overview-text-link { color: var(--navy);
  font-size: 13.5px;
  font-weight: 500;
  text-decoration: none; }
.k-ms .portal-overview-action-register a:hover, .k-ms .portal-overview-text-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.portal-overview-panel.k-ms, .k-ms .portal-overview-panel { overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface); }
.k-ms .portal-overview-row-action { min-height: 34px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--control);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
    padding: 0 12px;
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none; }
.k-ms .portal-overview-row-action:hover { border-color: var(--text-5); background: var(--ground); }
.k-ms .portal-overview-row-action.is-primary { border-color: var(--navy); background: var(--navy); color: var(--on-dark); }
.k-ms .portal-overview-row-action.is-primary:hover { border-color: var(--navy-hover); background: var(--navy-hover); color: var(--on-dark); }
.k-ms h1 { font-family: var(--font-serif); }
.k-ms .portal-overview-register-copy { min-width:0; }
.k-ms .proto-request-list>li { position:relative; }
.k-ms .proto-request-list .portal-overview-register-copy small { white-space:normal;overflow:visible; }
.k-ms .portal-overview-row-action { gap:8px;white-space:normal;justify-content:center;text-align:center; }
.k-ms .portal-overview-row-action { min-width:var(--k-ms-action); }
.proto-panel-stack.k-ms, .k-ms .proto-panel-stack { display:grid;gap:16px; }
.k-ms .proto-panel-note, .k-ms .proto-panel-body { padding:var(--k-ms-inset);color:var(--text-2); }
.k-ms .proto-profile-form { display:grid;gap:16px; }
.k-ms .proto-profile-other>label { font-weight:600; }
.k-ms .proto-profile-form :is(input:not([type=checkbox]):not([type=hidden]),select,textarea) { display:block;width:100%;min-width:0;min-height:40px;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--text); }
.k-ms .proto-profile-form textarea { resize:vertical; }
.k-ms .proto-profile-other { padding:var(--k-ms-inset); }
.k-ms .proto-profile-other h2 { font-size:16px;font-weight:650; }
.k-ms .proto-profile-other .proto-employment { padding-left:0;padding-right:0; }
.k-ms .proto-profile-other>label { display:block;margin-top:16px; }
.k-ms .proto-profile-other>p { color:var(--text-2);margin:6px 0 12px;max-width:75ch; }
@media (max-width:450px) { .portal-page-head.k-ms, .k-ms .portal-page-head { flex-wrap:wrap; } }
@container k-ms-frame (max-width:450px) { .portal-page-head.k-ms, .k-ms .portal-page-head { flex-wrap:wrap; } }
@media (max-width:450px) { .k-ms .portal-overview-row-action { max-width:100%; } }
@container k-ms-frame (max-width:450px) { .k-ms .portal-overview-row-action { max-width:100%; } }
@media print { .portal-overview-panel.k-ms, .k-ms .portal-overview-panel { break-inside:avoid; } }
.k-ms .proto-question-context>h2 { margin-bottom:12px; }
.k-ms .proto-new-reply { color:var(--navy);font-weight:700; }
.k-ms .portal-overview-register-copy>.proto-new-reply, .k-ms .request-row-actions>.proto-new-reply, .k-ms .request-row>.proto-new-reply { display:inline-block;margin-top:2px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--terra) 13%,var(--surface));color:var(--terra);font-size:12px;line-height:1.5; }
.proto-question-workspace.k-ms, .k-ms .proto-question-workspace { max-width:52rem;min-width:0; }
.proto-question-workspace.k-ms .proto-profile-form :is(input, textarea), .k-ms .proto-question-workspace .proto-profile-form :is(input, textarea) { font-size:1rem;line-height:1.5; }
.proto-question-workspace.k-ms .proto-profile-form label, .k-ms .proto-question-workspace .proto-profile-form label { display:block;font-weight:650;margin:16px 0 8px; }
.proto-question-workspace.k-ms .proto-profile-form label:first-child, .k-ms .proto-question-workspace .proto-profile-form label:first-child { margin-top:0; }
.k-ms .proto-question-actions { display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:16px; }
.k-ms .proto-document-title { display:inline-flex;align-items:center;min-height:40px;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:.2em; }
.k-ms .proto-document-title:hover { text-decoration-color:currentColor; }
.k-ms .portal-overview-register-copy>strong>.proto-document-title { display:inline;min-height:0;color:var(--text);font-size:14px;font-weight:500;line-height:1.3;text-decoration:none; }
.k-ms .proto-profile-other>.portal-overview-section-title { margin:calc(var(--k-ms-inset) * -1) calc(var(--k-ms-inset) * -1) 8px;padding:12px var(--k-ms-inset) 4px; }
.k-ms .proto-profile-other h2 { margin-bottom:12px; }
.k-ms .proto-profile-other .proto-past-jobs { margin-top:8px;padding:0; }
.k-ms .proto-profile-other .proto-past-jobs summary { min-height:40px;align-content:center;cursor:pointer;font-weight:600;color:var(--text-2);text-decoration:none; }
.k-ms .proto-profile-other .proto-past-jobs summary::marker { color:var(--text-3); }
.k-ms .proto-profile-other .proto-past-jobs .proto-employment { padding:8px 0 0; }
.portal-page-head.k-ms h1+p, .k-ms .portal-page-head h1+p { margin-top:4px;color:var(--text-2); }
.k-ms .proto-visually-hidden { position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
.k-ms .portal-overview-action-register li { position:relative; }
.k-ms .portal-overview-action-register li:hover { transform:none;box-shadow:none;background:transparent; }
.k-ms .portal-overview-action-register li:has(.portal-overview-register-copy>strong>a):hover { background:color-mix(in srgb,var(--surface) 88%,var(--navy-tint)); }
.k-ms .portal-overview-register-copy>strong>a::after { content:"";position:absolute;inset:0; }
.k-ms .portal-overview-action-register li :is(button,input,select,textarea,summary,label,form,a:not(.portal-overview-register-copy>strong>a)) { position:relative;z-index:1; }
.portal-page-head.k-ms, .k-ms .portal-page-head { margin-bottom:20px; }
.portal-page-head.k-ms h1, .k-ms .portal-page-head h1 { margin:0;font-family:var(--font-serif);font-size:36px;font-weight:400;line-height:1.06;letter-spacing:-.01em; }
.k-ms .portal-eyebrow { margin:0 0 6px;color:var(--sand);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase; }
@media (max-width:1023px) { .portal-page-head.k-ms h1, .k-ms .portal-page-head h1 { font-size:30px;line-height:1.08; } }
@container k-ms-frame (max-width:1023px) { .portal-page-head.k-ms h1, .k-ms .portal-page-head h1 { font-size:30px;line-height:1.08; } }
.portal-overview-panel.k-ms>.portal-overview-action-register:first-child>li:first-child, .k-ms .portal-overview-panel>.portal-overview-action-register:first-child>li:first-child { border-top:0; }
.list-card.k-ms>.portal-overview-action-register>li:first-child, .k-ms .list-card>.portal-overview-action-register>li:first-child { border-top:1px solid var(--line-soft); }
.k-ms .doc-date { color:var(--text-2);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums; }
.k-ms .request-state:empty { display:none; }
.k-ms .convo-list li { align-items:start; }
.k-ms .convo-list .proto-document-title { display:inline-flex;align-items:center;gap:7px; }
.k-ms .convo-list li.is-unread .proto-document-title { font-weight:600; }
.k-ms .proto-request-list .portal-overview-register-copy small.convo-last { display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis; }
.k-ms .convo-tag { display:inline-block;margin-top:6px;padding:2px 8px;border-radius:999px;background:var(--pk-stone, var(--neutral-tint));color:var(--text-2);font-size:11.5px;font-weight:500; }
.k-ms .newdot { width:7px;height:7px;flex:none;border-radius:50%;background:var(--navy); }
.k-ms .convo-view { display:grid;gap:0;padding:0; }
.k-ms .convo-view>*:not(.convo):not(.convo-reply) { margin:var(--k-ms-inset) var(--k-ms-inset) 0; }
.k-ms .convo-private { margin:4px 0 0;color:var(--text-2);font-size:13px; }
.k-ms .convo { list-style:none;margin:8px 0 0;padding:0; }
.k-ms .convo-msg { display:flex;gap:12px;padding:16px var(--k-ms-inset);border-top:1px solid var(--line-soft); }
.k-ms .convo-msg:first-child { border-top:0; }
.k-ms .convo-av { display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:50%;background:var(--pk-bar-3, var(--text));color:var(--on-dark);font-size:11.5px;font-weight:600; }
.k-ms .convo-msg.is-angelus .convo-av { background:var(--navy-tint);color:var(--navy); }
.k-ms .convo-body { min-width:0;flex:1; }
.k-ms .convo-head { font-size:13px; }
.k-ms .convo-head strong { font-weight:600; }
.k-ms .convo-head span { color:var(--text-2); }
.k-ms .convo-body p { margin:4px 0 0;font-size:14px;line-height:1.55;color:var(--text); }
.k-ms .convo-reply { display:grid;gap:10px;padding:14px var(--k-ms-inset) var(--k-ms-inset);border-top:1px solid var(--line-soft); }
.k-ms .convo-reply textarea { display:block;width:100%;min-height:5rem;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:14px;resize:vertical; }
.k-ms .convo-reply .reply-actions { justify-content:flex-end;margin-top:0; }
.k-ms .portal-eyebrow { font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pk-label, var(--text-2)); }
.k-ms .reply-actions { display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px; }
.k-ms .reply-actions .portal-overview-row-action { min-height:44px; }
@media (max-width:600px) { .k-ms .reply-actions .portal-overview-row-action { width:100%;justify-content:center; } }
@container k-ms-frame (max-width:600px) { .k-ms .reply-actions .portal-overview-row-action { width:100%;justify-content:center; } }

/* The block's own rules (not copies of the portal's). A conversation's page titles itself in the words' size, not the page
   title's: the portal's rule reads the page around the head (.portal-page), outside the root, so the block says it on the head
   and its body. */
.portal-page-head.k-ms:has(+ .k-ms.proto-panel-stack > .convo-view) h1 { font-family: inherit; font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: 0; }
@media (max-width: 700px) { .portal-page-head.k-ms:has(+ .k-ms.proto-panel-stack > .convo-view) h1 { font-size: 20px; } }
@container k-ms-frame (max-width: 700px) { .portal-page-head.k-ms:has(+ .k-ms.proto-panel-stack > .convo-view) h1 { font-size: 20px; } }
/* A conversation read beside the list (the page's card, .beside-open): the card is its frame, so its head stacks over the
   words, its panels lose their own frames and the conversation runs to the card's edges, as the portal's frame rules draw it;
   said here on the block's parts so they outrank the block's own copies above. */
.beside-open .portal-page-head.k-ms { display: block; margin: 0 0 12px; }
.beside-open .portal-page-head.k-ms .portal-eyebrow { margin: 0 0 4px; font-size: 11.5px; letter-spacing: .08em; }
.beside-open .portal-page-head.k-ms p:not(.portal-eyebrow) { margin: 6px 0 0; color: var(--text-2); font-size: 13px; }
.beside-open .proto-panel-stack.k-ms { gap: 12px; }
.beside-open .k-ms .portal-overview-panel { padding: 12px 0 0; border: 0; border-top: 1px solid var(--line-soft); border-radius: 0; box-shadow: none; background: none; }
.beside-open > .proto-panel-stack.k-ms > .portal-overview-panel:first-child { padding-top: 0; border-top: 0; }
.beside-open .k-ms .portal-overview-section-title { padding: 0 0 6px; }
.beside-open .k-ms .portal-overview-panel .proto-panel-note, .beside-open .k-ms .portal-overview-panel > p { padding-left: 0; padding-right: 0; }
.beside-open .k-ms .portal-overview-action-register > li { padding-left: 0; padding-right: 0; }
.beside-open .k-ms .convo-view { margin: 0 -16px; }
.beside-open .k-ms .convo-view > .convo-reply { padding-bottom: 0; }
/* The PortalMessages board (Sonny 10/1): a plus on New message, a lock before Private between you and Angelus, and the
   conversation's tag in its head under its status. */
.k-ms .portal-overview-row-action > svg { width: 15px; height: 15px; flex: none; }
.k-ms .portal-overview-row-action:has(> svg) { display: inline-flex; align-items: center; gap: 6px; }
.k-ms .convo-private { display: inline-flex; align-items: center; gap: 6px; }
.k-ms .convo-private > svg { width: 13px; height: 13px; flex: none; }
.k-ms .convo-about { margin: 8px 0 0; }

/* Plan, the shared block (UI-073 stage 7): the client's Plan (what waits on them, one card per kind of fact with each
   row's figure and date, the written plan, the search once the plan is long) and a record's own page (its figure, its facts,
   what is asked about it). The markup is Plan's own (client-portal-plan-view.js); its root is .k-kit.k-pl on the page's head,
   the search and the body. Every rule is the portal's own for these parts, re-rooted here in the kit's tokens, so the page and
   a board draw the same look from this file. The resets keep their place under the rest (@layer k-pl-base); the portal's
   component rules come first, so its other rules win where they meet, as they do on the portal.
   A width rule is written twice: for the window (the portal) and for a frame (@container k-pl-frame, a phone board). */
@layer k-pl-base;
.k-pl { --k-pl-inset: 16px; --k-pl-action: 96px; font-family: inherit; font-size: 13px; line-height: 1.55; color: var(--text); }
@media (max-width: 700px) { .k-pl { --k-pl-action: 84px; } }
@container k-pl-frame (max-width: 700px) { .k-pl { --k-pl-action: 84px; } }
@media (max-width: 560px) { .k-pl { --k-pl-inset: 12px; } }
@container k-pl-frame (max-width: 560px) { .k-pl { --k-pl-inset: 12px; } }
/* A link reads as its words unless a rule below colours it (the portal's own base); outside the base layer, so a board's kit link colour does not reach it. */
.k-pl a { color: inherit; text-decoration: none; }
@layer k-pl-base {
:where(.k-pl), :where(.k-pl) *, :where(.k-pl) ::before, :where(.k-pl) ::after { box-sizing: border-box; border-width: 0; border-style: solid; }
:where(.k-pl) :is(h1, h2, h3, p, ul, ol, dl, dd, fieldset) { margin: 0; }
:where(.k-pl) :is(ul, ol) { list-style: none; padding: 0; }
:where(.k-pl) :is(fieldset, legend) { padding: 0; }
:where(.k-pl) :is(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.k-pl) button { cursor: pointer; background: transparent; }
:where(.k-pl) a { color: inherit; text-decoration: none; text-underline-offset: .2em; }
:where(.k-pl) :is(img, svg) { display: block; max-width: 100%; }
:where(.k-pl) :is(h1, h2, h3) { font: inherit; }

}
.portal-page-head.k-pl, .k-pl .portal-page-head { display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px; }
.portal-page-head.k-pl h1, .k-pl .portal-page-head h1 { margin-top: 4px;
    color: var(--text);
    font-family: var(--font), ui-sans-serif, system-ui, sans-serif;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.08; }
@media (max-width: 39.9375rem) { .portal-page-head.k-pl, .k-pl .portal-page-head { align-items: start; } }
@container k-pl-frame (max-width: 39.9375rem) { .portal-page-head.k-pl, .k-pl .portal-page-head { align-items: start; } }
.k-pl .portal-overview-panel { overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface); }
.k-pl .portal-overview-panel { overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface); }
.k-pl .portal-overview-row-action { min-height: 34px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--control);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
    padding: 0 12px;
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none; }
.k-pl .portal-overview-row-action:hover { border-color: var(--text-5); background: var(--ground); }
.k-pl .portal-overview-row-action.is-primary { border-color: var(--navy); background: var(--navy); color: var(--on-dark); }
.k-pl .portal-overview-row-action.is-primary:hover { border-color: var(--navy-hover); background: var(--navy-hover); color: var(--on-dark); }
.k-pl h1 { font-family: var(--font-serif); }
.k-pl .portal-overview-row-action { gap:8px;white-space:normal;justify-content:center;text-align:center; }
.k-pl .portal-overview-row-action { min-width:var(--k-pl-action); }
.proto-panel-stack.k-pl, .k-pl .proto-panel-stack { display:grid;gap:16px; }
.k-pl .proto-panel-note, .k-pl .proto-panel-body { padding:var(--k-pl-inset);color:var(--text-2); }
.k-pl .proto-panel-body h2:not(.portal-overview-section-title>h2), .k-pl .proto-panel-body legend { font-size:16px;font-weight:700;color:var(--text); }
@media (max-width:450px) { .portal-page-head.k-pl, .k-pl .portal-page-head { flex-wrap:wrap; } }
@container k-pl-frame (max-width:450px) { .portal-page-head.k-pl, .k-pl .portal-page-head { flex-wrap:wrap; } }
@media (max-width:450px) { .k-pl .portal-overview-row-action { max-width:100%; } }
@container k-pl-frame (max-width:450px) { .k-pl .portal-overview-row-action { max-width:100%; } }
@media print { .k-pl .portal-overview-panel { break-inside:avoid; } }
.proto-question-filters.k-pl, .k-pl .proto-question-filters { display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:16px; }
.proto-question-filters.k-pl>div, .k-pl .proto-question-filters>div { display:grid;gap:6px;min-width:8rem;flex:1 1 9rem; }
.proto-question-filters.k-pl>div:first-child, .k-pl .proto-question-filters>div:first-child { flex:2 1 16rem;min-width:12rem; }
.proto-question-filters.k-pl :is(input, select), .k-pl .proto-question-filters :is(input, select) { width:100%;min-width:0;min-height:40px;padding:8px;color:var(--text);background:var(--surface);border:1px solid var(--line); }
.k-pl .proto-plan-request-link { display:flex!important;font-size:12px;text-decoration:underline;color:var(--navy);margin-top:6px; }
.proto-plan-record.k-pl [id^="fact-"], .k-pl .proto-plan-record [id^="fact-"] { scroll-margin-top:20px; }
.proto-plan-record.k-pl [id^="fact-"]:target, .k-pl .proto-plan-record [id^="fact-"]:target { background:var(--navy-tint); }
.k-pl .proto-plan-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start; }
.k-pl .proto-plan-card>.pcard-head { padding-block:12px; }
.k-pl .proto-plan-sub { margin:4px 0 0;color:var(--text-3); }
.k-pl .proto-plan-rows { list-style:none;margin:0;padding:0; }
.k-pl .proto-plan-row { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;padding:12px var(--k-pl-inset);border-bottom:1px solid var(--line);color:var(--text);text-decoration:none; }
.k-pl .proto-plan-rows>li:last-child>.proto-plan-row { border-bottom:0; }
.k-pl .proto-plan-row:hover { background:var(--navy-tint); }
.k-pl .proto-plan-row:focus-visible { outline:2px solid var(--navy);outline-offset:-2px; }
.k-pl .proto-plan-row-name { min-width:0;font-weight:650;color:var(--navy);overflow-wrap:anywhere; }
.k-pl .proto-plan-row-figure { font-weight:650;color:var(--text);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap; }
.k-pl .proto-plan-row-figure small { display:block;font-size:12px;font-weight:400;color:var(--text-3); }
.k-pl .proto-plan-row-sub, .k-pl .proto-plan-row-when { font-size:12px;color:var(--text-3); }
.k-pl .proto-plan-row-sub { min-width:0;overflow-wrap:anywhere; }
.k-pl .proto-plan-row-when { text-align:right;white-space:nowrap; }
.k-pl .proto-plan-chip { display:inline-block;padding:0 8px;border:1px solid var(--control);border-radius:7px;font-size:12px;font-weight:600;color:var(--text-2); }
.k-pl .proto-plan-read { color:var(--navy); }
.k-pl .proto-plan-waiting { border-left:4px solid var(--terra); }
.k-pl .proto-plan-total { display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px var(--k-pl-inset);border-top:1px solid var(--control);font-weight:650;font-variant-numeric:tabular-nums; }
.k-pl .proto-plan-total small { font-weight:400;color:var(--text-3); }
.k-pl .proto-plan-more { border-top:1px solid var(--line); }
.k-pl .proto-plan-more>summary { min-height:40px;align-content:center;padding:0 var(--k-pl-inset);color:var(--navy);font-size:12px;font-weight:600;cursor:pointer; }
.k-pl .proto-plan-clear { align-self:center;color:var(--navy);font-weight:600; }
.k-pl .proto-plan-figure { display:grid;gap:4px;padding:20px var(--k-pl-inset);border-bottom:1px solid var(--line); }
.k-pl .proto-plan-figure strong { font-size:calc(24px * 1.6);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere; }
.k-pl .proto-plan-figure span { color:var(--text-3); }
.k-pl .proto-plan-facts { display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr);margin:0; }
.k-pl .proto-plan-facts>div { display:contents; }
.k-pl .proto-plan-facts dt, .k-pl .proto-plan-facts dd { margin:0;padding:12px var(--k-pl-inset);border-bottom:1px solid var(--line); }
.k-pl .proto-plan-facts dt { color:var(--text-3); }
.k-pl .proto-plan-facts dd { min-width:0;overflow-wrap:anywhere; }
.k-pl .proto-plan-actions { display:flex;flex-wrap:wrap;gap:8px;padding:16px var(--k-pl-inset); }
@media (max-width:860px) { .k-pl .proto-plan-grid { grid-template-columns:minmax(0,1fr); } }
@container k-pl-frame (max-width:860px) { .k-pl .proto-plan-grid { grid-template-columns:minmax(0,1fr); } }
@media (max-width:560px) { .k-pl .proto-plan-figure strong { font-size:calc(24px * 1.33); } }
@container k-pl-frame (max-width:560px) { .k-pl .proto-plan-figure strong { font-size:calc(24px * 1.33); } }
@media (max-width:560px) { .k-pl .proto-plan-facts { grid-template-columns:minmax(0,1fr); } }
@container k-pl-frame (max-width:560px) { .k-pl .proto-plan-facts { grid-template-columns:minmax(0,1fr); } }
@media (max-width:560px) { .k-pl .proto-plan-facts dt { padding-bottom:0;border-bottom:0; } }
@container k-pl-frame (max-width:560px) { .k-pl .proto-plan-facts dt { padding-bottom:0;border-bottom:0; } }
@media (max-width:560px) { .k-pl .proto-plan-facts dd { padding-top:4px; } }
@container k-pl-frame (max-width:560px) { .k-pl .proto-plan-facts dd { padding-top:4px; } }
.k-pl .pcard { min-width:0;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:12px; }
.k-pl .pcard-head { display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px var(--k-pl-inset) 8px; }
.k-pl .pcard-head h2 { margin:0;font-size:14.5px;font-weight:600;line-height:1.3;color:var(--text); }
.k-pl .pcard-head small { font-size:12px;color:var(--text-3);text-align:right; }
.portal-page-head.k-pl h1+p, .k-pl .portal-page-head h1+p { margin-top:4px;color:var(--text-2); }
.k-pl .portal-overview-action-register li :is(button,input,select,textarea,summary,label,form,a:not(.portal-overview-register-copy>strong>a)) { position:relative;z-index:1; }
.portal-page-head.k-pl, .k-pl .portal-page-head { margin-bottom:20px; }
.portal-page-head.k-pl h1, .k-pl .portal-page-head h1 { margin:0;font-family:var(--font-serif);font-size:36px;font-weight:400;line-height:1.06;letter-spacing:-.01em; }
.k-pl .portal-eyebrow { margin:0 0 6px;color:var(--sand);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase; }
@media (max-width:1023px) { .portal-page-head.k-pl h1, .k-pl .portal-page-head h1 { font-size:30px;line-height:1.08; } }
@container k-pl-frame (max-width:1023px) { .portal-page-head.k-pl h1, .k-pl .portal-page-head h1 { font-size:30px;line-height:1.08; } }
.k-pl .portal-eyebrow { font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pk-label, var(--text-2)); }

/* Records, the shared blocks (UI-073 stage 2; markup from records.js). Loaded by the boards (kit-boards build-kit) and by the
   portal (/kit-portal.css), so both draw a Records place from this one file. Kit tokens only, inside the block's own .k-kit
   scope; the block's own classes only, so neither the boards' additions nor the portal's stylesheet reach it. A narrow
   container (a phone, or a phone board) is the phone composition. */
.k-rec, .k-rec-head { container: k-rec / inline-size; min-width: 0; }
.k-rec-icon { display: block; width: 14px; height: 14px; flex: none; }

/* A button: the kit's small button, a quiet one, the primary one. */
.k-rec-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 32px; padding: 0 12px; border: 1px solid var(--control); border-radius: var(--r-control); background: var(--surface); color: var(--text); font: inherit; font-size: 13px; font-weight: 500; line-height: 1; text-decoration: none; white-space: nowrap; cursor: pointer; }
.k-rec-btn:hover { border-color: var(--control-strong); }
.k-rec-btn.quiet { border-color: transparent; background: none; }
.k-rec-btn.quiet:hover { background: var(--neutral-tint); border-color: transparent; }
.k-rec-btn.primary { border-color: var(--navy); background: var(--navy); color: var(--on-dark); }
.k-rec-btn.primary:hover { background: var(--navy-hover); }
.k-rec-btn:focus-visible, .k-rec-seg a:focus-visible, .k-rec-tabs a:focus-visible, .k-rec-links a:focus-visible { outline: none; box-shadow: var(--focus-ring); }

/* The header: the serif title, the switches at its right, the places as underlined tabs. */
.k-rec-head { display: block; margin: 0 0 16px; }
.k-rec-head-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.k-rec-head h1 { margin: 0; font-family: var(--font-serif); font-size: 36px; font-weight: 400; line-height: 1.1; letter-spacing: 0; color: var(--text); }
.k-rec-head-right { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.k-rec-tabs { display: flex; gap: 22px; margin-top: 14px; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.k-rec-tabs a { margin-bottom: -1px; padding: 0 0 10px; border-bottom: 2px solid transparent; font-size: 13.5px; font-weight: 500; color: var(--text-3); text-decoration: none; white-space: nowrap; }
.k-rec-tabs a:hover { color: var(--text); }
.k-rec-tabs a[aria-current=page] { border-bottom-color: var(--text); color: var(--text); }

/* A segmented switch: a quiet ground, the chosen segment raised. A month with entries kept is tinted. */
.k-rec-seg { display: inline-flex; gap: 2px; max-width: 100%; padding: 3px; border-radius: 9px; background: var(--neutral-tint); overflow-x: auto; scrollbar-width: none; }
.k-rec-seg a { display: inline-flex; align-items: center; height: 32px; padding: 0 13px; border-radius: var(--r-control); font-size: 13px; font-weight: 500; color: var(--text-2); text-decoration: none; white-space: nowrap; }
.k-rec-seg a:hover { color: var(--text); }
.k-rec-seg a.kept { color: var(--olive-text); }
.k-rec-seg a.kept::after { content: ""; width: 5px; height: 5px; margin-left: 6px; border-radius: 50%; background: var(--olive); }
.k-rec-seg a[aria-current=page] { background: var(--surface); color: var(--text); box-shadow: 0 1px 2px rgba(22, 24, 29, .08); }

.k-rec-notice { margin: 0 0 16px; padding: 10px 14px; border: 1px solid var(--navy-line); border-radius: var(--r-control); background: var(--navy-wash); font-size: 13px; color: var(--text); }
.k-rec-notice.alert { border-color: var(--terra-line); background: var(--terra-tint); color: var(--terra); }

/* The Month view: the months, the year, then the two columns. */
.k-rec-month { display: flex; flex-direction: column; gap: 16px; }
.k-rec-months { align-self: flex-start; }
.k-rec-figs, .k-rec-pick, .k-rec-switch, .k-rec-links { display: none; }
.k-rec-cols { display: flex; align-items: flex-start; gap: 24px; min-width: 0; }
.k-rec-main { display: flex; flex-direction: column; gap: 14px; flex: 1 1 auto; min-width: 0; }
.k-rec-aside { display: flex; flex-direction: column; gap: 16px; flex: 0 0 340px; min-width: 0; }
.k-rec-year { min-width: 0; margin-bottom: 8px; }

/* A side: its title and total over one card. */
.k-rec-side-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; min-height: 28px; margin: 0 0 8px; }
.k-rec-side-head > h2, .k-rec-card-head > h2 { margin: 0; font-size: 14.5px; font-weight: 600; line-height: 1.3; color: var(--text); }
.k-rec-side-head > span, .k-rec-card-head > span { font-size: 13px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.k-rec-card { display: block; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); }
.k-rec-entry + .k-rec-entry, .k-rec-card > .k-rec-kept, .k-rec-entry + .k-rec-adding, .k-rec-entry + .k-rec-addrow, .k-rec-kept + .k-rec-entry { border-top: 1px solid var(--line-soft); }
.k-rec-row { position: relative; display: flex; align-items: center; gap: 14px; min-height: 34px; padding: 11px 18px; }
.k-rec-two { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.k-rec-two > span { font-size: 14px; font-weight: 500; line-height: 1.3; color: var(--text); }
.k-rec-two > small { margin-top: 2px; font-size: 12.5px; line-height: 1.35; color: var(--text-3); }
.k-rec-two > small > a { color: inherit; }
.k-rec-num { font-size: 13px; color: var(--text); font-variant-numeric: tabular-nums; white-space: nowrap; }
.k-rec-row > .k-rec-icon { display: none; color: var(--text-4); }
.k-rec-kept { margin: 0; padding: 10px 18px 0; font-size: 12.5px; color: var(--text-3); }
.k-rec-edit, .k-rec-adding { padding: 4px 18px 16px; }
.k-rec-adding { padding-top: 16px; }
.k-rec-addrow { padding-top: 11px; padding-bottom: 11px; }

/* The side cards: figures as rows, a card of words. */
.k-rec-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 14px 18px 10px; }
.k-rec-figures .k-rec-card-head > h2 { font-size: 15px; }
.k-rec-tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 34px; padding: 0 16px 0 18px; border-top: 1px solid var(--line-faint); font-size: 13px; color: var(--text); font-variant-numeric: tabular-nums; }
.k-rec-tr > span:last-child { text-align: right; }
.k-rec-tr.quiet { color: var(--text-3); }
.k-rec-tr.total { background: var(--ground); font-weight: 600; }
.k-rec-note { margin: 0; padding: 10px 18px 14px; border-top: 1px solid var(--line-faint); font-size: 12.5px; line-height: 1.45; color: var(--text-3); }
.k-rec-words { padding-bottom: 16px; }
.k-rec-words > .k-rec-card-head { padding: 16px 20px 0; }
.k-rec-words > .k-rec-card-head > h2 { font-size: 13px; font-weight: 700; }
.k-rec-words > p { margin: 13px 20px 0; font-size: 13px; line-height: 1.3; color: var(--text-3); }
.k-rec-words > .k-rec-act, .k-rec-words > .k-slot { margin: 16px 20px 0; }
/* While a side's add form is open, its Add button gives way. */
.k-rec-adding:not([hidden]) + .k-rec-addrow { display: none; }
.k-rec-facts { margin: 10px 0 0; padding: 0; list-style: none; }
.k-rec-facts > li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 20px; border-top: 1px solid var(--line-faint); font-size: 13px; }
.k-rec-facts > li > span { color: var(--text-2); }
.k-rec-facts > li > b { font-weight: 500; }
.k-rec-facts a { color: var(--navy); }

/* ---- A phone (the block under 700px): the figures at the top, staying on screen; the month as a picker with the one add
   action for the side showing; Money in and Money out as one switch, one list at a time; the side cards as rows; the year
   after the lists. ---- */
@container k-rec (max-width: 700px) {
  .k-rec-head h1 { font-size: 30px; }
  .k-rec-head-right { width: 100%; }
  .k-rec-tabs { gap: 6px; margin-top: 10px; border-bottom: 0; }
  .k-rec-tabs a { margin: 0; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r-pill); background: var(--surface); font-size: 13.5px; color: var(--text); }
  .k-rec-tabs a[aria-current=page] { border-color: var(--ink); background: var(--ink); color: var(--on-dark); }
  .k-rec-month { gap: 14px; }
  .k-rec-months, .k-rec-month .k-rec-aside, .k-rec-addrow, .k-rec-side-head { display: none; }
  /* A Year or Tax basis view: one column, the year-end package first. */
  .k-rec-view .k-rec-aside, .k-rec-view .k-rec-main { display: contents; }
  .k-rec-view .k-rec-send { order: -1; }
  .k-rec-figs { position: sticky; top: var(--k-rec-stick, 0px); z-index: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); order: -2; border-top: 1px solid var(--text); border-bottom: 1px solid var(--line); background: var(--ground); }
  .k-rec-figs > div { display: flex; flex-direction: column; gap: 2px; padding: 12px 0; }
  .k-rec-figs > div + div { padding-left: 16px; border-left: 1px solid var(--line); }
  .k-rec-figs span, .k-rec-figs small { font-size: 12.5px; color: var(--text-3); }
  .k-rec-figs b { font-family: var(--font-serif); font-size: 30px; font-weight: 400; line-height: 1.1; color: var(--text); font-variant-numeric: tabular-nums; }
  .k-rec-pick { display: flex; align-items: center; gap: 12px; order: -1; }
  .k-rec-pick > select { flex: 1 1 auto; min-width: 0; height: 44px; padding: 0 12px; border: 1px solid var(--control); border-radius: var(--r-control); background: var(--surface); color: var(--text); font: inherit; font-size: 14px; }
  .k-rec-pick > .k-rec-btn { height: 44px; padding: 0 18px; font-size: 14.5px; }
  .k-rec-switch { display: flex; align-self: flex-start; gap: 2px; padding: 3px; border-radius: 9px; background: var(--neutral-tint); }
  .k-rec-switch > label { display: inline-flex; align-items: center; height: 36px; padding: 0 14px; border-radius: var(--r-control); font-size: 13.5px; font-weight: 500; color: var(--text-2); white-space: nowrap; cursor: pointer; }
  .k-rec-switch > label:has(:checked) { background: var(--surface); color: var(--text); box-shadow: 0 1px 2px rgba(22, 24, 29, .08); }
  .k-rec-switch > label:has(:focus-visible) { box-shadow: var(--focus-ring); }
  .k-rec-switch input { position: absolute; opacity: 0; pointer-events: none; }
  .k-rec:has(.k-rec-switch input[value=in]:checked) :is(.k-rec-side.out, .k-rec-pick-add.out),
  .k-rec:has(.k-rec-switch input[value=out]:checked) :is(.k-rec-side.in, .k-rec-pick-add.in) { display: none; }
  .k-rec-year { order: 3; margin: 6px 0 0; }
  .k-rec-row { min-height: 44px; padding: 12px 16px; }
  .k-rec-row > .k-rec-num { font-weight: 600; }
  .k-rec-row > .k-rec-icon { display: block; }
  /* On a phone the whole row opens its entry: Edit stretches over the row, unseen. */
  .k-rec-row > .k-rec-btn.quiet { position: absolute; inset: 0; z-index: 1; width: 100%; height: auto; border: 0; border-radius: 0; background: none; color: transparent; }
  .k-rec-card { border-radius: 16px; }
  .k-rec-links { display: block; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
  .k-rec-links > a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 12px 16px; color: var(--text); text-decoration: none; }
  .k-rec-links > a + a { border-top: 1px solid var(--line-soft); }
  .k-rec-links .k-rec-num { font-weight: 600; }
  .k-rec-links .k-rec-icon { color: var(--text-4); }
  .k-rec-cols { flex-direction: column; align-items: stretch; gap: 14px; }
  /* A refused entry is scrolled into view with its reason; keep it clear of the sticky figures. */
  .k-rec-month .k-slot > form { scroll-margin-top: calc(var(--k-rec-stick, 0px) + 112px); }
}

/* The open request, the shared block (UI-073 stage 5): the body of a request a person opens (its facts, its words, the thread,
   the reply box, a task's tick, a form's items, a document's slots, what was sent), on its own page, in the card beside
   Requests, under its row, and on the Requests boards. The markup is the request's own (client-request-portal.js,
   client-request-form.js); its root is .k-kit.k-rq: the body's section (.k-rq.request-view), or a reply box placed on its
   own in a row (.k-rq.reply-composer). Every rule is the portal's own for these parts, re-rooted here in the kit's tokens, so
   the page and a board draw the same look from this file. The resets keep their place under the rest (@layer k-rq-base);
   the portal's component rules come first, so its other rules win where they meet, as they do on the portal. The page's
   frame (its head, the card a request opens in, a row's accordion) stays the page's.
   A width rule is written twice: for the window (the portal) and for a frame (@container k-rq-frame, a phone board). */
@layer k-rq-base;
.k-rq { --k-rq-inset: 16px; --k-rq-action: 96px; font-family: inherit; font-size: 13px; line-height: 1.55; color: var(--text); }
@media (max-width: 700px) { .k-rq { --k-rq-action: 84px; } }
@container k-rq-frame (max-width: 700px) { .k-rq { --k-rq-action: 84px; } }
@media (max-width: 560px) { .k-rq { --k-rq-inset: 12px; } }
@container k-rq-frame (max-width: 560px) { .k-rq { --k-rq-inset: 12px; } }
/* A link in the body reads as its words unless a rule below colours it (the portal's own base); outside the base layer, so a board's kit link colour does not reach it. */
.k-rq a { color: inherit; text-decoration: none; }
@layer k-rq-base {
:where(.k-rq), :where(.k-rq) *, :where(.k-rq) ::before, :where(.k-rq) ::after { box-sizing: border-box; border-width: 0; border-style: solid; }
:where(.k-rq) :is(h1, h2, h3, p, ul, ol, dl, dd, fieldset) { margin: 0; }
:where(.k-rq) :is(ul, ol) { list-style: none; padding: 0; }
:where(.k-rq) :is(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.k-rq) button { cursor: pointer; background: transparent; }
:where(.k-rq) a { color: inherit; text-decoration: none; text-underline-offset: .2em; }
:where(.k-rq) :is(img, svg) { display: block; max-width: 100%; }
:where(.k-rq) :is(h1, h2, h3) { font: inherit; }

}
.k-rq.request-view { overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface); }
.k-rq .portal-overview-action-register { border-top: 0; }
.k-rq .portal-overview-action-register li { display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 56px;
  padding: 8px var(--k-rq-inset);
  border-top: 1px solid var(--line-soft);
  background: var(--surface);
  transition: background 120ms cubic-bezier(.2, .7, .2, 1); }
.k-rq .portal-overview-action-register li:hover { background: var(--ground); }
.k-rq .portal-overview-register-copy strong, .k-rq .portal-overview-register-copy small { display: block; }
.k-rq .portal-overview-register-copy strong { color: var(--text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3; }
.k-rq .portal-overview-register-copy small { margin-top: 2px;
  overflow: hidden;
  color: var(--text-3);
  font-size: 12.5px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap; }
.k-rq.request-view { overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface); }
.k-rq .portal-overview-row-action { min-height: 34px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--control);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
    padding: 0 12px;
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none; }
.k-rq .portal-overview-row-action:hover { border-color: var(--text-5); background: var(--ground); }
.k-rq .portal-overview-row-action.is-primary { border-color: var(--navy); background: var(--navy); color: var(--on-dark); }
.k-rq .portal-overview-row-action.is-primary:hover { border-color: var(--navy-hover); background: var(--navy-hover); color: var(--on-dark); }
.k-rq .portal-overview-register-copy { min-width:0; }
.k-rq .proto-request-list>li { position:relative; }
.k-rq .proto-request-list .portal-overview-register-copy small { white-space:normal;overflow:visible; }
.k-rq .proto-status { font-size:12px;color:var(--text-2); }
.k-rq .portal-overview-row-action { gap:8px;white-space:normal;justify-content:center;text-align:center; }
.k-rq .portal-overview-row-action { min-width:var(--k-rq-action); }
.k-rq .upload { position:relative;cursor:pointer;min-height:40px; }
.k-rq .upload input { position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer; }
.k-rq .notice { padding:16px;border:1px solid var(--navy);background:var(--navy-tint);margin-bottom:16px; }
.k-rq .proto-profile-form .notice { margin:0; }
.k-rq .proto-profile-form .notice a { text-decoration:underline;display:inline-flex;min-height:40px;align-items:center; }
@media (max-width:450px) { .k-rq .portal-overview-row-action { max-width:100%; } }
@container k-rq-frame (max-width:450px) { .k-rq .portal-overview-row-action { max-width:100%; } }
@media print { .k-rq.request-view { break-inside:avoid; } }
.k-rq .proto-reply-receipt { display:block;min-height:1px; }
.k-rq .season-state[data-state=received] { color:var(--olive); }
.k-rq .taxyear-change .notice { margin:0 0 12px; }
.k-rq .portal-chips { display:inline-flex;flex-wrap:wrap;gap:4px;min-width:0; }
.k-rq .portal-chips label { position:relative;display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text-2);font-size:12px;font-weight:600;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s; }
.k-rq .portal-chips input { position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer; }
.k-rq .portal-chips label:has(input:checked) { background:var(--navy);border-color:var(--navy);color:var(--pk-on-ac, var(--on-dark)); }
.k-rq .portal-chips label:has(input:focus-visible) { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .reply-quick { display:flex;margin-bottom:8px; }
@media (prefers-reduced-motion:reduce) { .k-rq .portal-chips label { transition:none; } }
.k-rq .proto-profile-other h2, .k-rq .ask-panel h2, .k-rq .ask-sent h2 { margin-bottom:12px; }
.k-rq .information-request-files>* { display:flex;flex-wrap:wrap;gap:8px;align-items:baseline; }
.k-rq .proto-visually-hidden { position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
@media (max-width:700px) { .k-rq .portal-overview-action-register .portal-overview-row-action, .k-rq .request-row-actions .portal-overview-row-action { min-height:40px; } }
@container k-rq-frame (max-width:700px) { .k-rq .portal-overview-action-register .portal-overview-row-action, .k-rq .request-row-actions .portal-overview-row-action { min-height:40px; } }
.k-rq .portal-overview-action-register li { position:relative; }
.k-rq .portal-overview-action-register li:hover { transform:none;box-shadow:none;background:transparent; }
.k-rq .portal-overview-action-register li :is(button,input,select,textarea,summary,label,form,a:not(.portal-overview-register-copy>strong>a)) { position:relative;z-index:1; }
.k-rq .portal-overview-action-register li .upload input[type=file] { position:absolute; }
.k-rq .portal-overview-action-register li .portal-chips label>input:is([type=radio],[type=checkbox]) { position:absolute; }
.k-rq .notice[role=alert] { border-color:var(--terra); }
.k-rq .kind-tile { display:grid;place-items:center;width:32px;height:32px;border-radius:9px;flex:none; }
.k-rq .kind-tile svg { width:16px;height:16px; }
.k-rq .kind-tile[data-kind=document] { background:var(--sand-tint);color:var(--sand); }
.k-rq .portal-overview-action-register li:has(>.kind-tile) { grid-template-columns:auto minmax(0,1fr) auto; }
.k-rq .portal-overview-action-register li .reply-attach-button input[type=file] { position:absolute; }
@media (max-width:700px) { .k-rq .kind-tile { width:30px;height:30px; } }
@container k-rq-frame (max-width:700px) { .k-rq .kind-tile { width:30px;height:30px; } }
.k-rq .doc-drop { display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin:8px var(--k-rq-inset) var(--k-rq-inset);border:1.5px dashed var(--control);border-radius:8px;color:var(--text-2);font-size:13.5px;cursor:pointer; }
.k-rq .doc-drop svg { width:16px;height:16px; }
.k-rq .doc-drop u { color:var(--navy);font-weight:500;text-decoration:none; }
.k-rq .doc-drop:hover { border-color:var(--navy);background:var(--navy-tint); }
.k-rq .facts { display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px 12px;margin:0;font-size:13.5px; }
.k-rq .facts>div { display:contents; }
.k-rq .facts dt { color:var(--text-2); }
.k-rq .facts dd { margin:0;min-width:0;overflow-wrap:anywhere; }
.k-rq.request-view { display:grid;gap:12px;padding:var(--k-rq-inset); }
.k-rq .request-state:empty { display:none; }
.k-rq .request-thread { list-style:none;margin:0;padding:0;display:grid;gap:8px; }
.k-rq .request-thread>li.thread-item { padding:0;border:0; }
.k-rq .request-thread[hidden] { display:none; }
.k-rq.request-view .reply-composer, .k-rq.request-view .confirm-task, .k-rq.request-view .request-upload, .k-rq.request-view>.request-note, .k-rq.request-view>.ask-panel, .k-rq.request-view>.ask-sent, .k-rq.request-view>.reply-other[open] { padding-top:12px;border-top:1px solid var(--line-soft); }
.js-folds .k-rq details[data-fold]:not([open]) { display:none; }
.k-rq .reply-tools .reply-existing>summary { list-style:none; }
.k-rq .reply-tools .reply-existing>summary::-webkit-details-marker { display:none; }
.k-rq .thread-who { margin:0 0 4px 2px;color:var(--text-2);font-size:12px; }
.k-rq .thread-bubble { padding:10px 12px;border-radius:12px;background:var(--pk-stone, var(--neutral-tint));font-size:13.5px;line-height:1.5; }
.k-rq .thread-item.is-mine .thread-bubble { background:var(--navy-tint); }
.k-rq .thread-bubble>:first-child { margin-top:0; }
.k-rq .thread-bubble>:last-child { margin-bottom:0; }
.k-rq .request-note { padding:12px 14px;border-radius:10px;background:var(--sand-tint);color:var(--text-2);font-size:13px;line-height:1.5; }
.k-rq .request-why>summary { cursor:pointer;color:var(--text-2);font-size:13px;font-weight:500; }
.k-rq .opts { display:grid;gap:6px; }
.k-rq .opt { display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:13.5px;cursor:pointer; }
.k-rq .opt input { margin:0;accent-color:var(--navy); }
.k-rq .opt:has(input:checked), .k-rq .opt-fold[open]>summary.opt { border-color:var(--navy);background:var(--navy-tint); }
.k-rq .opt-fold>summary { list-style:none; }
.k-rq .opt-fold>summary::-webkit-details-marker { display:none; }
.k-rq .reply-other .opt-fold>summary.opt { min-height:40px;color:var(--text);font-size:13.5px;font-weight:400;text-decoration:none; }
.k-rq .opt-fold-body { display:grid;gap:8px;padding:10px 2px 2px; }
.k-rq .quiet-link { margin-left:auto;padding:0 2px;border:0;background:none;color:var(--text-2);font:inherit;font-size:13px;cursor:pointer; }
.k-rq .quiet-link:hover { text-decoration:underline; }
.js-folds .k-rq details[data-fold]>summary { display:none; }
.k-rq.request-view .reply-actions { margin-top:0; }
.k-rq.request-view .reply-other, .k-rq.request-view .reply-existing { margin-top:0; }
.k-rq .reply-panel { display:grid;gap:8px; }
.k-rq .reply-tools { display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px; }
.k-rq .reply-tools .reply-attach { margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px; }
.k-rq .reply-tools .reply-attach-button { display:inline-flex;align-items:center;gap:6px;min-height:32px;color:var(--navy);font-size:13px;font-weight:500; }
.k-rq .reply-tools .reply-attach-button svg { width:15px;height:15px; }
.k-rq .reply-tools .reply-existing>summary { min-height:32px;color:var(--navy);font-size:13px;font-weight:500;text-decoration:none; }
.k-rq .request-upload { display:grid;gap:6px; }
.k-rq.request-view>.request-handoff>summary { min-height:32px;color:var(--text-2);font-size:13px;font-weight:400; }
.k-rq.request-view:has(.reply-other[open]) .request-upload, .k-rq.request-view:has(.reply-other[open]) .request-fold-row { display:none; }
.k-rq .request-upload [data-request-upload-title]:empty { display:none; }
.k-rq .request-upload .doc-drop { margin:0; }
.k-rq .request-files-to { margin:8px 0 0;font-size:13px;color:var(--text-3); }
.k-rq .ask-attached .information-request-files { margin:6px 0 0; }
@media (max-width:700px) { .k-rq .portal-overview-action-register .request-row-actions>.request-link { display:none; } }
@container k-rq-frame (max-width:700px) { .k-rq .portal-overview-action-register .request-row-actions>.request-link { display:none; } }
.k-rq .information-request-summary details, .k-rq .information-request-upload details { margin-top:12px; }
.k-rq .information-request-summary summary, .k-rq .information-request-upload summary { cursor:pointer;min-height:44px;align-content:center;font-weight:600; }
.k-rq .information-request-form .proto-profile-field { margin-top:12px; }
.k-rq .information-request-form .proto-profile-actions { margin-top:16px; }
.k-rq .information-request-upload details { margin-top:0; }
.k-rq .information-request-upload .proto-profile-form { gap:12px; }
.k-rq .information-request-messages { margin-top:12px; }
.k-rq .information-request-messages>li { padding:16px 0;border-top:1px solid var(--line); }
.k-rq .information-request-messages>li:last-child { padding-bottom:0; }
.k-rq .information-request-message-head { display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:8px; }
.k-rq .information-request-message-head>span, .k-rq .information-request-muted { font-size:12px;color:var(--text-2); }
.k-rq .request-prose { white-space:pre-wrap;overflow-wrap:anywhere; }
.k-rq .information-request-files { display:grid;gap:6px;margin-top:8px; }
.k-rq .information-request-files a { display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:.2em;overflow-wrap:anywhere; }
.k-rq #request-upload-status:empty { display:none; }
.k-rq .information-request-muted a { color:var(--text);text-decoration:underline;text-underline-offset:.2em; }
.k-rq .reply-composer, .reply-composer.k-rq { margin:0; }
.k-rq .reply-panel h2 { margin-bottom:8px; }
.k-rq .reply-label { display:block;font-weight:600;margin-bottom:6px; }
.k-rq .reply-message textarea { display:block;width:100%;min-height:5.5rem;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;resize:vertical; }
.k-rq .reply-message textarea:focus-visible { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .reply-attach { display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px;padding:12px;border:1px dashed var(--line);border-radius:7px;transition:border-color .15s ease,background-color .15s ease; }
.k-rq .reply-attach.is-over { border-color:var(--navy);background:var(--navy-tint); }
.k-rq .reply-attach-button { position:relative;overflow:hidden;cursor:pointer;min-height:44px; }
.k-rq .reply-attach-button input { position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer; }
.k-rq .reply-attach-button:has(input:focus-visible) { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .reply-attach-hint { font-size:12px;color:var(--text-2); }
.k-rq .reply-chips { list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;flex-basis:100%; }
.k-rq .reply-chips:empty { display:none; }
.k-rq .reply-chip { display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:12px; }
.k-rq .reply-chip button, .k-rq .information-request-files button { border:0;background:none;cursor:pointer;min-width:32px;min-height:32px;color:var(--text-2);font-size:13px; }
.k-rq .reply-chip-progress { color:var(--text-2); }
.k-rq .reply-other, .k-rq .reply-existing { margin-top:12px; }
.k-rq .reply-other summary, .k-rq .reply-existing summary { cursor:pointer;min-height:44px;align-content:center;font-size:12px;color:var(--text-2);text-decoration:underline;text-underline-offset:.2em; }
.k-rq .reply-kinds { display:flex;flex-wrap:wrap;gap:6px;padding:8px 0; }
.k-rq .reply-kinds label { display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:12px; }
.k-rq .reply-kinds label:has(input:checked) { border-color:var(--navy);background:var(--navy-tint);font-weight:600; }
.k-rq .reply-kinds label:has(input:focus-visible) { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .reply-kinds input { margin:0; }
.k-rq .reply-actions { display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px; }
.k-rq .reply-actions .portal-overview-row-action { min-height:44px; }
.k-rq .reply-status { font-size:12px;color:var(--text-2); }
.k-rq .reply-status[data-error] { color:var(--terra); }
.k-rq .reply-status a { text-decoration:underline;text-underline-offset:.2em; }
.k-rq .request-row-actions { display:flex;align-items:center;gap:8px;justify-self:end; }
.k-rq .request-row-actions .portal-overview-row-action { min-height:34px; }
.k-rq .request-row-actions:has(.portal-overview-row-action:not([hidden]))>.proto-status { display:none; }
.k-rq .reply-row-note { margin-top:6px;font-size:12px;color:var(--text-2); }
@media (prefers-reduced-motion:reduce) { .k-rq .reply-attach { transition:none; } }
@media (max-width:600px) { .k-rq .reply-actions .portal-overview-row-action { width:100%;justify-content:center; } }
@container k-rq-frame (max-width:600px) { .k-rq .reply-actions .portal-overview-row-action { width:100%;justify-content:center; } }
.k-rq .reply-attach[hidden] { display:none; }
.k-rq .information-request-handoff summary { cursor:pointer;min-height:44px;align-content:center;font-weight:600; }
.k-rq .information-request-handoff form { margin-top:8px; }
.k-rq .information-request-handoff fieldset { border:0;margin:0;min-width:0; }
.k-rq .information-request-handoff legend { padding:0;margin-bottom:6px; }
.k-rq .information-request-handoff textarea { display:block;width:100%;min-height:4rem;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;resize:vertical; }
.k-rq .information-request-handoff textarea:focus-visible { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .information-request-handoff>p { margin-top:12px; }
.k-rq .access-select { display:block;width:100%;max-width:24rem;min-height:44px;margin:6px 0 8px;padding:0 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit; }
.k-rq .access-select:focus-visible { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .confirm-task { display:grid;gap:12px; }
.k-rq .confirm-task .reply-actions { margin-top:0; }
.k-rq .confirm-task-check, .k-rq .confirm-row-check { display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-weight:600;line-height:1.4; }
.k-rq .confirm-task-check { padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--surface); }
.k-rq .confirm-task-check:has(input:checked) { border-color:var(--navy);background:var(--navy-tint); }
.k-rq .confirm-task-check input, .k-rq .confirm-row-check input, .k-rq .ask-row>[data-ask-tick] { width:20px;height:20px;margin:0;flex:none;accent-color:var(--navy); }
.k-rq .confirm-task-check:has(input:focus-visible) { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .ask-row>[data-ask-tick] { margin-top:9px; }
.k-rq .information-request-done { font-weight:600;margin:0 0 6px; }
.k-rq .information-request-review { list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px; }
.k-rq .information-request-review li { display:grid; }
.k-rq .information-request-review span { color:var(--text-2); }
.k-rq .ask-form { display:grid;gap:16px; }
.k-rq .ask-item { display:grid;gap:6px;min-width:0;margin:0;padding:0;border:0; }
.k-rq .ask-prompt { font-weight:600;padding:0;overflow-wrap:anywhere; }
.k-rq .ask-help { margin:0;font-size:12px;color:var(--text-2); }
.k-rq .ask-required { margin-left:6px;font-size:12px;font-weight:400;color:var(--text-2); }
.k-rq [data-ask-item] input[type=text], .k-rq .ask-item textarea { display:block;width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit; }
.k-rq .ask-item textarea { min-height:6rem;resize:vertical; }
.k-rq .ask-choices { margin-top:4px; }
.k-rq .ask-drop { display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px;border:1px dashed var(--line);border-radius:7px;transition:border-color .15s ease,background-color .15s ease; }
.k-rq .ask-drop.is-over { border-color:var(--navy);background:var(--navy-tint); }
.k-rq .ask-drop-button { position:relative;overflow:hidden;cursor:pointer;min-height:44px; }
.k-rq .ask-drop-button input { position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer; }
.k-rq .ask-drop-button:has(input:focus-visible) { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .ask-drop-hint { font-size:12px;color:var(--text-2); }
.k-rq .ask-file-list { margin-top:6px; }
.k-rq .ask-form .reply-actions { margin-top:0; }
.k-rq .ask-cant>summary { cursor:pointer;list-style:none;display:flex;align-items:center;width:fit-content;min-height:36px;font-size:12px;color:var(--text-2);text-decoration:underline;text-underline-offset:.2em; }
.k-rq .ask-cant>summary::-webkit-details-marker { display:none; }
.k-rq .ask-cant[open]>summary { color:var(--text);text-decoration:none;font-weight:600; }
.k-rq .ask-cant[hidden] { display:none; }
.k-rq .ask-cant-list { list-style:none;margin:6px 0 0;padding:0;display:grid; }
.k-rq .ask-cant-row { display:grid;gap:6px;min-width:0;padding:12px 0;border-top:1px solid var(--line); }
.k-rq .ask-cant-row:first-child { border-top:0;padding-top:8px; }
.k-rq .ask-cant-row[hidden] { display:none; }
.k-rq .ask-cant-row label { font-weight:600;line-height:1.4;overflow-wrap:anywhere; }
.k-rq .ask-cant-row select { min-height:44px;width:100%;max-width:24rem;padding:6px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit; }
.k-rq .ask-cant-row input[type=text] { display:none;width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit; }
.k-rq .ask-cant-row:has(select option:checked:not([value=""])) input[type=text] { display:block; }
.k-rq .ask-cant-row :is(select,input[type=text]):focus-visible { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .ask-row.is-missing :is(.ask-drop,.ask-choices,[data-ask-tick],input[type=text],textarea), .k-rq .ask-slot.is-missing .upload { opacity:.55; }
.k-rq .ask-count { font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums; }
.k-rq .ask-form [data-ask-send]:disabled { opacity:.5;cursor:not-allowed; }
.k-rq .ask-sent .ask-change { margin-top:8px; }
.k-rq .ask-change>summary { cursor:pointer;min-height:44px;align-content:center;font-weight:600;color:var(--navy); }
.k-rq .ask-change[open]>summary { margin-bottom:12px; }
.k-rq .ask-answers { display:grid;gap:8px;margin:6px 0 0; }
.k-rq .ask-answers>div { display:grid;gap:4px;padding-bottom:8px;border-bottom:1px solid var(--line); }
.k-rq .ask-answers>div:last-child { border-bottom:0;padding-bottom:0; }
.k-rq .ask-answers dt { font-weight:600;overflow-wrap:anywhere; }
.k-rq .ask-answers dd { margin:0;overflow-wrap:anywhere; }
.k-rq .ask-answers-text { white-space:pre-line; }
.k-rq .ask-answers-none { color:var(--text-2); }
.k-rq .ask-answers .information-request-files { margin:0; }
@media (prefers-reduced-motion:reduce) { .k-rq .ask-drop { transition:none; } }
.k-rq .ask-rows { display:grid; }
.k-rq .ask-row { display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:16px;row-gap:8px;align-items:start;padding:12px 0;border-top:1px solid var(--line); }
.k-rq .ask-row:first-child { border-top:0;padding-top:4px; }
.k-rq .ask-row[hidden] { display:none; }
.k-rq .ask-mark { width:18px;height:18px;margin-top:9px;border:1.5px solid var(--control);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;line-height:1;color:transparent; }
.k-rq .ask-row.is-answered .ask-mark { background:var(--olive);border-color:var(--olive);color:var(--on-dark); }
.k-rq .ask-row.is-answered .ask-mark::before { content:"✓"; }
.k-rq .ask-row:has([data-ask-tick]) label.ask-prompt { cursor:pointer; }
.k-rq .ask-lead { display:grid;gap:2px;min-width:0;padding-top:7px; }
.k-rq .ask-row .ask-prompt { line-height:1.4; }
.k-rq .ask-row .ask-help { line-height:1.4; }
.k-rq .ask-given { display:none;margin:0;font-size:12px;color:var(--text);overflow-wrap:anywhere;white-space:pre-line; }
.k-rq .ask-control { grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;min-width:0; }
.k-rq .ask-control>input[type=text], .k-rq .ask-control>textarea, .k-rq .ask-control>.ask-file-list { flex:1 1 100%; }
.k-rq .ask-row .ask-choices { margin:0;flex:0 1 auto; }
.k-rq .ask-row .ask-drop { padding:0;border:0;flex:0 0 auto; }
.k-rq .ask-row:has(.ask-drop.is-over) { background:var(--navy-tint); }
.k-rq .ask-row .ask-file-list { margin:0; }
.k-rq .ask-file-list:empty { display:none; }
.k-rq .ask-row.is-folded { grid-template-columns:20px minmax(0,1fr) auto;align-items:center;padding:8px 0; }
.k-rq .ask-row.is-folded .ask-lead { padding-top:0; }
.k-rq .ask-row.is-folded .ask-mark { margin-top:0; }
.k-rq .ask-row.is-folded .ask-help, .k-rq .ask-row.is-folded .ask-control { display:none; }
.k-rq .ask-row.is-folded .ask-given { display:block; }
.k-rq .ask-row.is-folded .ask-prompt { font-weight:500;color:var(--text-2); }
.k-rq .ask-edit { grid-column:3;justify-self:end;min-height:36px;padding:0 6px;border:0;background:none;font:inherit;font-size:12px;color:var(--text-2);text-decoration:underline;text-underline-offset:.2em;cursor:pointer; }
.k-rq .ask-edit[hidden] { display:none; }
.k-rq .ask-edit:focus-visible { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .ask-dropbox[hidden] { display:none; }
.k-rq .ask-dropzone { display:grid;justify-items:center;gap:8px;padding:16px;border:1.5px dashed var(--control);border-radius:7px;text-align:center;transition:border-color .15s ease,background-color .15s ease; }
.k-rq .ask-dropzone p { margin:0;color:var(--text-2); }
.k-rq .ask-dropzone.is-over { border-color:var(--navy);background:var(--navy-tint); }
.k-rq .ask-sort { list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px; }
.k-rq .ask-sort:empty { display:none; }
.k-rq .ask-sort li { display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:center;font-size:12px;overflow-wrap:anywhere; }
.k-rq .ask-sort select { min-height:40px;width:100%;padding:6px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit; }
@media (pointer:coarse) { .k-rq .ask-cant>summary, .k-rq .ask-edit { min-height:44px; } }
.k-rq .ask-control:empty { display:none; }
@media (pointer:coarse) { .k-rq .confirm-task-check input, .k-rq .confirm-row-check input, .k-rq .ask-row>[data-ask-tick] { width:28px;height:28px; } }
@media (pointer:coarse) { .k-rq .ask-row:has([data-ask-tick]) { grid-template-columns:28px minmax(0,1fr); } }
@media (pointer:coarse) { .k-rq .ask-row>[data-ask-tick] { margin-top:5px; } }
.k-rq .ask-form .ask-slot:has(>.kind-tile) { grid-template-columns:auto minmax(0,1fr); }
.k-rq .ask-form .ask-slot>.request-row-actions { grid-column:2;justify-self:start; }
@media (prefers-reduced-motion:reduce) { .k-rq .ask-dropzone { transition:none; } }
.k-rq .request-upload-list { list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px; }
.k-rq .request-upload-list:empty { display:none; }
.k-rq .request-upload-list li { display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;font-size:12px;overflow-wrap:anywhere; }
.k-rq .information-request-alt>summary { font-weight:600; }
.k-rq .information-request-alt-body { margin-top:12px; }
.k-rq .ask-sent-back { margin:6px 0 0;padding:6px 8px;border-left:3px solid var(--terra);background:var(--surface);font-size:12px; }
.k-rq .ask-previous { margin:6px 0 0;color:var(--text-2);font-size:12px; }
.k-rq .ask-dropzone .ask-drop-button { justify-self:center; }

/* The block's own rules, not copies of the portal's: an item's own "Can't send this?" / "Can't do this?" (UI-073, Sonny 10/1). */
.k-rq .ask-cant-own { margin:0;color:var(--text);font-size:13px; }
.k-rq .ask-cant-own[open] { display:grid;gap:8px;padding:2px 0 4px; }
.k-rq .ask-cant-choices { display:grid;gap:6px;min-width:0;margin:0;padding:0;border:0; }
.k-rq .ask-cant-choices label { display:flex;align-items:center;gap:10px;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-size:13.5px;font-weight:400;cursor:pointer; }
.k-rq .ask-cant-choices input { margin:0;accent-color:var(--navy); }
.k-rq .ask-cant-choices label:has(input:checked) { border-color:var(--navy);background:var(--navy-tint); }
.k-rq .ask-cant-note { color:var(--text-2);font-size:12.5px;font-weight:500; }
.k-rq .ask-cant-own textarea { width:100%;min-height:60px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;resize:vertical; }
.k-rq .ask-cant-own:not(:has(input:checked)) :is(.ask-cant-note,textarea) { display:none; }
.k-rq .ask-cant-undo { justify-self:start;min-height:32px;padding:0;border:0;background:none;color:var(--text-2);font:inherit;font-size:12.5px;text-decoration:underline;text-underline-offset:.2em;cursor:pointer; }
.k-rq .ask-cant-own :is(input,textarea,button):focus-visible { outline:2px solid var(--navy);outline-offset:2px; }
.k-rq .ask-slot:has(.ask-cant-own[open])>.kind-tile { align-self:start; }
.k-rq .ask-slot .information-request-files>* { flex-wrap:nowrap;align-items:center; }
.k-rq .ask-slot .information-request-files>*>span { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.k-rq .ask-file-size { flex:none;color:var(--text-2);font-size:12.5px;white-space:nowrap; }
@media (pointer:coarse) { .k-rq .ask-cant-undo { min-height:44px; } }

/* Requests, the shared block (UI-073 stage 4; requests.js): the list bar, the list in its card, its rows and paging. Live's
   Requests drawing (CP-095, CP-106, CP-107; Sonny 9/27 to 9/30) in the kit's tokens, so the Requests boards and the page are one
   stylesheet. The frame around the list (the card a request opens in beside it, the accordion under a row) is the page's own
   (client-portal.css). On a phone (the page, or a phone board on a wide screen) the rules read the list's own width. */
.k-req-page { container: k-req / inline-size; }
.k-req-bar, .k-req-card, .k-req-rows, .k-req-paging { line-height: 1.55; }

/* The bar: where things stand as one switch, then the kind and the search. */
.k-req-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 12px; }
.k-req-seg { position: relative; display: inline-flex; gap: 2px; padding: 3px; border-radius: 9px; background: var(--neutral-tint); }
.k-req-seg > a { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 0 12px; border-radius: 7px; color: var(--text-2); font-size: 13px; font-weight: 500; text-decoration: none; white-space: nowrap; transition: color .12s ease; }
.k-req-seg > a > i { font-style: normal; font-size: 12px; font-weight: 600; color: var(--text-4); }
.k-req-seg > a[aria-current=page] { background: var(--surface); color: var(--text); box-shadow: 0 1px 2px rgba(22, 24, 29, .06); }
/* The page's script lays one pill under the current option and slides it (the kit's segmented control, Sonny 9/30). */
.k-req-seg > .k-req-pill { display: none; }
.k-req-seg.has-pill > .k-req-pill { display: block; position: absolute; z-index: 0; left: 0; top: 0; width: 0; height: 0; border-radius: 7px; background: var(--surface); box-shadow: 0 1px 2px rgba(22, 24, 29, .06); pointer-events: none; }
.k-req-seg.has-pill > .k-req-pill.is-moving { transition: left .16s cubic-bezier(.2, .8, .2, 1), width .16s cubic-bezier(.2, .8, .2, 1); }
.k-req-seg.has-pill > a[aria-current=page] { background: transparent; box-shadow: none; }
.k-req-search { display: flex; gap: 8px; margin: 0 0 0 auto; }
.k-req-field { position: relative; display: flex; align-items: center; width: 260px; }
.k-req-field > svg { position: absolute; left: 11px; width: 16px; height: 16px; color: var(--text-4); pointer-events: none; }
.k-req-field > input { width: 100%; min-height: 36px; padding: 0 12px 0 34px; border: 1px solid var(--line); border-radius: var(--r-control); background: var(--surface); color: var(--text); font: inherit; font-size: 13.5px; }
.k-req-field > input:focus, .k-req-kind:focus { border-color: var(--navy); outline: 2px solid var(--navy-tint); outline-offset: 0; }
.k-req-kind { min-height: 36px; padding: 0 30px 0 12px; border: 1px solid var(--line); border-radius: var(--r-control); background-color: var(--surface); color: var(--text); font: inherit; font-size: 13.5px; }
@media (prefers-reduced-motion: reduce) { .k-req-seg > a, .k-req-seg > .k-req-pill.is-moving { transition: none !important; } }

/* The card: a title and a way to all of it (Today's For you), or groups under their names (Requests). */
.k-req-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); }
.k-req-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px 8px; }
.k-req-head > h2 { margin: 0; color: var(--text); font-size: 14.5px; font-weight: 600; line-height: 1.3; }
.k-req-group { margin: 0; padding: 12px 16px 6px; border-top: 1px solid var(--line-soft); color: var(--text-4); font-size: 11.5px; font-weight: 600; line-height: 1.55; letter-spacing: .07em; text-transform: uppercase; }
.k-req-card > .k-req-group:first-child { border-top: 0; }
.k-req-empty { margin: 0; padding: 16px; color: var(--text-2); }
.k-req-foot { padding: 12px 16px; border-top: 1px solid var(--line); background: var(--quiet); }
.k-req-link { display: block; padding: 4px 0; color: var(--navy); font-size: 13px; font-weight: 500; line-height: 1.3; text-align: center; text-decoration: none; }
.k-req-link:hover { text-decoration: underline; }
/* On Today the card fills its place in the raised row and its footer sits at the bottom. */
.k-req-home { display: flex; flex-direction: column; }
.k-req-home > .k-req-foot { margin-top: auto; }

/* A row: the kind's tile, what it is and one line of purpose, then where it stands and its one action. The title's link covers
   the row (the whole row opens it); the row's own buttons, forms and other links sit above it (Sonny 9/24). */
.k-req-rows { margin: 0; padding: 0; list-style: none; }
.k-req-row { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 56px; padding: 8px 16px; border-top: 1px solid var(--line-soft); background: var(--surface); transition: background 120ms cubic-bezier(.2, .7, .2, 1); }
.k-req-card > .k-req-rows:first-child > .k-req-row:first-child { border-top: 0; }
.k-req-row:has(.k-req-title):hover { background: color-mix(in srgb, var(--surface) 88%, var(--navy-tint)); }
.k-req-row :is(button, input, select, textarea, summary, label, form, a:not(.k-req-title)) { position: relative; z-index: 1; }
/* A file input lies over its button (Upload, Attach), a chip's radio over its pill: out of the flow, as on the request's page. */
.k-req-row :is(.upload, .reply-attach-button) input[type=file], .k-req-row .portal-chips label > input:is([type=radio], [type=checkbox]) { position: absolute; }
.k-req-tile { display: grid; place-items: center; width: 32px; height: 32px; flex: none; border-radius: 9px; }
.k-req-tile > svg { width: 16px; height: 16px; }
.k-req-tile[data-kind=document] { background: var(--sand-tint); color: var(--sand); }
.k-req-tile:is([data-kind=form], [data-kind=information], [data-kind=doorway]) { background: var(--navy-tint); color: var(--navy); }
.k-req-tile[data-kind=task] { background: var(--olive-tint); color: var(--olive); }
.k-req-tile[data-kind=signature] { background: var(--terra-tint); color: var(--terra); }
.k-req-copy { min-width: 0; }
.k-req-copy > strong { display: block; color: var(--text); font-size: 14px; font-weight: 500; line-height: 1.3; }
.k-req-copy .k-req-title { display: inline; color: inherit; font: inherit; text-decoration: none; }
.k-req-title::after { content: ""; position: absolute; inset: 0; }
.k-req-purpose { display: block; margin-top: 2px; overflow: hidden; color: var(--text-3); font-size: 12.5px; line-height: 1.35; text-overflow: ellipsis; }
.k-req-dot { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--navy); vertical-align: 1px; }
.k-req-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.k-req-place { display: none; color: var(--text-2); }
.k-req-tag { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: var(--r-pill); background: var(--navy-tint); color: var(--text-2); font-size: 11.5px; font-weight: 600; vertical-align: 1px; }
.k-req-tag.business { background: var(--sand-tint); }
.k-req-tag.draft { background: var(--quiet); }
.k-req-acts { display: flex; align-items: center; gap: 8px; justify-self: end; }
.k-req-status { color: var(--text-2); font-size: 12px; line-height: 1.55; }
/* A document's date at the row's end, and the place to drop files at the card's end (Documents). */
.k-req-when { color: var(--text-2); font-size: 13px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.k-req-drop { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; margin: 8px 16px 16px; border: 1.5px dashed var(--control); border-radius: 8px; color: var(--text-2); font-size: 13.5px; cursor: pointer; }
.k-req-drop > svg { width: 16px; height: 16px; }
.k-req-drop u { color: var(--navy); font-weight: 500; text-decoration: none; }
.k-req-drop:hover { border-color: var(--navy); background: var(--navy-tint); }
@media (max-width: 560px) { .k-req-drop { margin: 8px 12px 12px; } }
@container k-rq-frame (max-width: 560px) { .k-req-drop { margin: 8px 12px 12px; } }
.k-req-chip.due { color: var(--text-2); font-size: 12px; line-height: 1.55; }
.k-req-chip.new { display: inline-block; margin-top: 2px; padding: 0 6px; border-radius: var(--r-pill); background: color-mix(in srgb, var(--terra) 13%, var(--surface)); color: var(--terra); font-size: 12px; font-weight: 700; line-height: 1.5; }
/* A row's action: every action the same width, so buttons line up whatever the label (CP-033). */
.k-req-acts > .k-btn, .k-req-acts > .k-slot .k-btn, .k-req-paging > .k-btn { height: auto; text-decoration: none; min-width: 96px; min-height: 34px; gap: 8px; padding: 0 12px; justify-content: center; font-size: 13.5px; font-weight: 500; line-height: 1.55; text-align: center; white-space: normal; }
.k-req-acts > .k-btn:hover, .k-req-acts > .k-slot .k-btn:hover, .k-req-paging > .k-btn:hover { border-color: var(--text-5); background: var(--ground); }
.k-req-acts > .k-btn > svg { width: 15px; height: 15px; flex: none; }
.k-req-acts > .k-btn:has(> svg) { gap: 6px; }
.k-req-chev { display: none; color: var(--text-3); }
.k-req-chev > svg { width: 18px; height: 18px; }
.k-req-paging { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 16px 0 0; }

/* A request open under its row on a computer narrower than the list and its card (Sonny 9/30, an accordion): the open row stays
   tinted under the pointer (the page's frame gives it the current-row bar); the request is indented to the row's text edge. The
   page's script adds the holder (.k-req-opened). */
.is-inline .k-req-row.is-open, .is-inline .k-req-row.is-open:hover { background: var(--navy-tint); }
.k-req-rows > li.k-req-opened { display: block; min-height: 0; padding: 0 16px 16px calc(16px + 32px + 12px); border-top: 1px solid var(--line-soft); background: var(--surface); }

/* A phone: the switch is one scrolling row of chips; each row keeps its tile, its purpose is one line, and a row that answers in
   place (a reply, two actions) puts them under its words. A checkbox task is one row that opens the task. */
@container k-req (max-width: 700px) {
  .k-req-bar { flex-direction: column; align-items: stretch; gap: 8px; }
  .k-req-seg { min-width: 0; contain: inline-size; gap: 8px; margin: 0 -16px; padding: 0 16px; background: none; overflow-x: auto; scrollbar-width: none; }
  .k-req-seg > a { min-height: 36px; padding: 0 14px; border: 1px solid var(--control); border-radius: var(--r-pill); background: var(--surface); }
  .k-req-seg > a[aria-current=page], .k-req-seg.has-pill > a[aria-current=page] { border-color: var(--text); background: var(--text); color: var(--surface); box-shadow: none; }
  .k-req-seg > a[aria-current=page] > i { color: inherit; opacity: .75; }
  .k-req-seg.has-pill > .k-req-pill { display: none; }
  .k-req-search { margin: 0; }
  .k-req-field { flex: 1 1 0; width: 100%; min-width: 0; }
  .k-req-field > input, .k-req-kind { min-height: 44px; font-size: 16px; }
}
@container k-req (max-width: 700px) {
  .k-req-group { padding: 12px 12px 6px; }
  .k-req-row { padding: 8px 12px; }
  .k-req-tile { width: 30px; height: 30px; }
  .k-req-acts > .k-btn, .k-req-acts > .k-slot .k-btn { min-width: 84px; max-width: 100%; }
  .k-req-paging > .k-btn { min-width: 84px; }
  .k-req-head { padding: 12px 12px 8px; }
  .k-req-foot, .k-req-empty { padding: 12px; }
  .k-req-purpose { white-space: nowrap; }
  .k-req-acts > .k-slot:has(> .request-link) { display: none; }
  /* The row's dot already says a reply is new; the chip beside the button would squeeze the title to a word a line. */
  .k-req-acts > .k-req-chip.new { display: none; }
  .k-req-row.is-task { grid-template-columns: auto minmax(0, 1fr) auto; }
  .k-req-row.is-task > .k-req-acts { display: none; }
  .k-req-row.is-task > .k-req-chev { display: grid; place-items: center; align-self: center; }
  .k-req-copy > strong > .k-req-tag:not(.draft) { display: none; }
  .k-req-place { display: inline; }
}
@container k-td (max-width: 700px) {
  .k-req-group { padding: 12px 12px 6px; }
  .k-req-row { padding: 8px 12px; }
  .k-req-tile { width: 30px; height: 30px; }
  .k-req-acts > .k-btn, .k-req-acts > .k-slot .k-btn { min-width: 84px; max-width: 100%; }
  .k-req-paging > .k-btn { min-width: 84px; }
  .k-req-head { padding: 12px 12px 8px; }
  .k-req-foot, .k-req-empty { padding: 12px; }
  .k-req-purpose { white-space: nowrap; }
  .k-req-acts > .k-slot:has(> .request-link) { display: none; }
  /* The row's dot already says a reply is new; the chip beside the button would squeeze the title to a word a line. */
  .k-req-acts > .k-req-chip.new { display: none; }
  .k-req-row.is-task { grid-template-columns: auto minmax(0, 1fr) auto; }
  .k-req-row.is-task > .k-req-acts { display: none; }
  .k-req-row.is-task > .k-req-chev { display: grid; place-items: center; align-self: center; }
  .k-req-copy > strong > .k-req-tag:not(.draft) { display: none; }
  .k-req-place { display: inline; }
}

/* A row whose button says what to do does not also show its status (Sonny 9/26); a due date shows beside the button. */
.k-req-acts:has(> .k-btn:not([hidden]), .portal-overview-row-action:not([hidden])) > .k-req-status { display: none; }
.k-req-chip.due { display: inline-flex; }
.k-req-acts > [hidden] { display: none; }
/* A question's reply in its row, under the row's words and actions; once sent, the row says so and glows once. */
.k-req-inline { grid-column: 1 / -1; margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--line); }
.k-req-inline[hidden] { display: none; }
.k-req-copy > .reply-row-note { margin: 6px 0 0; color: var(--text-2); font-size: 12px; }
.k-req-row.is-sent { animation: k-req-sent .9s ease-out; }
@keyframes k-req-sent { from { box-shadow: inset 0 0 0 999px var(--navy-tint); } to { box-shadow: none; } }
@media (prefers-reduced-motion: reduce) { .k-req-row.is-sent { animation: none; } }

/* Sign-in, the shared block (UI-073 stage 11): the client portal's sign-in pages: the brand side (the firm's mark, its
   three-colour rule, Private to you and the firm) and the card (Sign in, Signed out, a refused address, Not saved, Not
   available), on Angelus and on a firm's own address (Blanchard CPA). The markup is the pages' own (client-sign-in.js page and
   signInForm); its root is .k-kit.k-si on the frame. Every rule is the portal's own for these parts, re-rooted here in the kit's
   tokens (the bar's colours through kit/portal.css's bridges), so the pages and a board draw the same look from this file. The
   resets keep their place under the rest (@layer k-si-base); the portal's component rules come first.
   A width rule is written twice: for the window (the portal) and for a frame (@container k-si-frame, a phone board). */
@layer k-si-base;
.k-si { --k-si-inset: 16px; --k-si-action: 96px; font-family: inherit; font-size: 13px; line-height: 1.55; color: var(--text); }
@media (max-width: 700px) { .k-si { --k-si-action: 84px; } }
@container k-si-frame (max-width: 700px) { .k-si { --k-si-action: 84px; } }
@media (max-width: 560px) { .k-si { --k-si-inset: 12px; } }
@container k-si-frame (max-width: 560px) { .k-si { --k-si-inset: 12px; } }
/* A link reads as its words unless a rule below colours it (the portal's own base); outside the base layer, so a board's kit link colour does not reach it. */
.k-si a { color: inherit; text-decoration: none; }
@layer k-si-base {
:where(.k-si), :where(.k-si) *, :where(.k-si) ::before, :where(.k-si) ::after { box-sizing: border-box; border-width: 0; border-style: solid; }
:where(.k-si) :is(h1, h2, h3, p, ul, ol, dl, dd, fieldset) { margin: 0; }
:where(.k-si) :is(ul, ol) { list-style: none; padding: 0; }
:where(.k-si) :is(fieldset, legend) { padding: 0; }
:where(.k-si) :is(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.k-si) button { cursor: pointer; background: transparent; }
:where(.k-si) a { color: inherit; text-decoration: none; text-underline-offset: .2em; }
:where(.k-si) :is(img, svg) { display: block; max-width: 100%; }
:where(.k-si) :is(h1, h2, h3) { font: inherit; }

}
.k-si h1 { font-family: var(--font-serif); }
.sign-in-brand.k-si, .k-si .sign-in-brand { position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:20px;padding:48px 56px;background:var(--pk-bar, var(--ink));color:var(--pk-bar-text, var(--ink-text)); }
.k-si .sign-in-rule { position:absolute;top:0;right:0;bottom:0;width:4px;display:grid;grid-template-rows:repeat(3,1fr); }
.k-si .sign-in-rule i:nth-child(1) { background:var(--pk-tri-1, var(--navy)); }
.k-si .sign-in-rule i:nth-child(2) { background:var(--pk-tri-2, var(--terra)); }
.k-si .sign-in-rule i:nth-child(3) { background:var(--pk-tri-3, var(--olive)); }
.k-si .sign-in-logo { display:block;width:150px;height:auto; }
.k-si .sign-in-wordmark { margin:0;font-family:var(--font-serif);font-size:30px;line-height:1.1;color:var(--pk-bar-brand, var(--ink-brand)); }
.k-si .sign-in-wordmark strong { font-weight:400;color:var(--pk-bar-brand, var(--ink-brand)); }
.sign-in-shell.k-si, .k-si .sign-in-shell { display:grid;grid-template-columns:minmax(0,1fr);align-content:center;justify-items:center;min-width:0;padding:48px 24px; }
.k-si .sign-in-card { width:100%;max-width:400px;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:8px; }
.k-si .sign-in-card h1 { margin:0 0 6px;font-family:var(--font-serif);font-size:40px;font-weight:400;line-height:1.05;letter-spacing:-.01em;color:var(--text);text-wrap:balance; }
.k-si .sign-in-lede { color:var(--text-2);font-size:14.5px;line-height:1.55; }
.k-si .sign-in-form { display:grid;gap:8px;margin-top:12px; }
.k-si .sign-in-form label { font-weight:500;font-size:13px;color:var(--text-2); }
.k-si .sign-in-form input { display:block;width:100%;min-height:46px;padding:8px 12px;font-size:1rem;background:var(--surface);border:1px solid var(--control);border-radius:8px;color:var(--text);transition:border-color 120ms cubic-bezier(.2, .7, .2, 1); }
.k-si .sign-in-form input:focus { outline:none;border-color:var(--navy);box-shadow:0 0 0 3px var(--navy-tint); }
.k-si .sign-in-button { min-height:46px;margin-top:6px;border:0;border-radius:8px;background:var(--navy);color:var(--on-dark);font-weight:500;font-size:15px;transition:background 120ms cubic-bezier(.2, .7, .2, 1); }
.k-si .sign-in-button:hover { background:var(--navy-hover); }
.k-si .sign-in-help { font-size:13px;color:var(--text-3);margin-top:8px; }
.k-si .sign-in-form textarea { display:block;width:100%;padding:8px 12px;font:inherit;font-size:1rem;background:var(--surface);border:1px solid var(--control);border-radius:8px;color:var(--text);resize:vertical; }
.k-si .sign-in-form textarea:focus { outline:none;border-color:var(--navy);box-shadow:0 0 0 3px var(--navy-tint); }
.k-si .file-box-drop { position:relative;display:grid;place-items:center;min-height:132px;padding:16px 12px;border:2px dashed var(--control);border-radius:8px;background:var(--surface);text-align:center;transition:border-color 120ms cubic-bezier(.2, .7, .2, 1),background 120ms cubic-bezier(.2, .7, .2, 1); }
.k-si .file-box-drop:hover, .k-si .file-box-drop.is-over { border-color:var(--navy);background:var(--navy-tint); }
.k-si .file-box-drop:focus-within { border-color:var(--navy);box-shadow:0 0 0 3px var(--navy-tint); }
.k-si .sign-in-form .file-box-input { position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;border:0;opacity:0;cursor:pointer; }
.k-si .file-box-drop-text { display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:0;color:var(--text-2);font-size:12px; }
.k-si .file-box-choose { display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border:1px solid var(--navy);border-radius:8px;background:var(--surface);color:var(--navy);font-weight:650;font-size:1rem; }
.k-si .file-box-drop:hover .file-box-choose, .k-si .file-box-drop.is-over .file-box-choose { background:var(--navy);color:var(--on-dark); }
@media (hover:none) { .k-si .file-box-drag { display:none; } }
@media (hover:none) { .k-si .file-box-drop { min-height:0; } }
.k-si .file-box-limits { margin:calc(-1 * 6px) 0 0;font-size:12px;color:var(--text-3); }
.k-si .file-box-picked { display:grid;gap:6px;margin:0;padding:0;list-style:none; }
.k-si .file-box-picked li { display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 6px 6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface); }
.k-si .file-box-name { flex:1;min-width:0;overflow-wrap:anywhere;font-size:12px;color:var(--text); }
.k-si .file-box-size { flex:none;font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums; }
.k-si .file-box-remove { flex:none;min-height:36px;padding:0 8px;border:0;border-radius:8px;background:none;color:var(--navy);font-weight:600;font-size:12px;cursor:pointer; }
.k-si .file-box-remove:hover { text-decoration:underline;text-underline-offset:3px; }
.k-si .file-box-remove:focus-visible { outline:3px solid var(--navy-tint);outline-offset:1px; }
.k-si .file-box-website { position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden; }
.k-si .file-box-received { margin-top:16px; }
.k-si .file-box-received li { padding-left:8px; }
.k-si .file-box-done { flex:none;width:20px;height:20px; }
.k-si .file-box-done circle { fill:var(--olive-tint); }
.k-si .file-box-done path { fill:none;stroke:var(--olive);stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }
.k-si .file-box-received+.file-box-limits { margin:12px 0 0; }
.k-si .file-box-again { display:flex;align-items:center;justify-content:center;min-height:50px;margin-top:16px;border:1px solid var(--navy);border-radius:8px;background:var(--surface);color:var(--navy);font-weight:650;font-size:1rem;text-decoration:none;transition:background 120ms cubic-bezier(.2, .7, .2, 1),color 120ms cubic-bezier(.2, .7, .2, 1); }
.k-si .file-box-again:hover { background:var(--navy);color:var(--on-dark); }
.k-si .file-box-again:focus-visible { outline:3px solid var(--navy-tint);outline-offset:2px; }
.k-si .sign-in-notice { padding:8px 12px;border-radius:8px;background:var(--terra-tint);color:var(--text);font-size:12px; }
.k-si .sign-in-link { justify-self:start;margin-top:12px;font-weight:600;color:var(--navy);text-decoration:underline;text-underline-offset:3px; }
.k-si .sign-in-choices { display:grid;gap:8px;margin-top:16px; }
.k-si .sign-in-choices a { display:flex;align-items:center;min-height:50px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-weight:600; }
.k-si .sign-in-choices a:hover { border-color:var(--navy); }
.k-si .sign-in-foot { margin:0;font-size:13px;color:var(--pk-bar-muted, var(--ink-muted)); }
@media (max-width:760px) { .sign-in-brand.k-si, .k-si .sign-in-brand { padding:28px 24px 26px; } }
@container k-si-frame (max-width:760px) { .sign-in-brand.k-si, .k-si .sign-in-brand { padding:28px 24px 26px; } }
@media (max-width:760px) { .k-si .sign-in-logo { width:118px; } }
@container k-si-frame (max-width:760px) { .k-si .sign-in-logo { width:118px; } }
@media (max-width:760px) { .k-si .sign-in-wordmark { font-size:24px; } }
@container k-si-frame (max-width:760px) { .k-si .sign-in-wordmark { font-size:24px; } }
@media (max-width:760px) { .k-si .sign-in-foot { display:none; } }
@container k-si-frame (max-width:760px) { .k-si .sign-in-foot { display:none; } }
@media (max-width:760px) { .k-si .sign-in-rule { top:auto;left:0;width:auto;height:4px;grid-template-rows:none;grid-template-columns:repeat(3,1fr); } }
@container k-si-frame (max-width:760px) { .k-si .sign-in-rule { top:auto;left:0;width:auto;height:4px;grid-template-rows:none;grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px) { .sign-in-shell.k-si, .k-si .sign-in-shell { align-content:start;justify-items:stretch;padding:28px 24px; } }
@container k-si-frame (max-width:760px) { .sign-in-shell.k-si, .k-si .sign-in-shell { align-content:start;justify-items:stretch;padding:28px 24px; } }
@media (max-width:760px) { .k-si .sign-in-card h1 { font-size:34px; } }
@container k-si-frame (max-width:760px) { .k-si .sign-in-card h1 { font-size:34px; } }
.k-si a.sign-in-button { display:flex;align-items:center;justify-content:center;margin-top:12px;text-decoration:none; }
.k-si .portal-overview-action-register li :is(button,input,select,textarea,summary,label,form,a:not(.portal-overview-register-copy>strong>a)) { position:relative;z-index:1; }
.k-si .portal-eyebrow { margin:0 0 6px;color:var(--sand);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase; }
.k-si .portal-eyebrow { font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pk-label, var(--text-2)); }

/* The block's own rules (not copies of the portal's). Check your email (the PortalPhoneSignIn board, Sonny 10/1): a mail tile
   in place of the kicker, then at the card's end Send it again (a quiet button) and Use a different email; on a phone those
   two sit at the foot of the screen. */
.k-si .sign-in-tile { display: grid; place-items: center; width: 44px; height: 44px; margin: 0 0 8px; border-radius: 12px; background: var(--navy-tint); color: var(--navy); }
.k-si .sign-in-tile > svg { width: 22px; height: 22px; }
.k-si .sign-in-actions { display: grid; gap: 12px; justify-items: center; margin-top: 20px; }
.k-si .sign-in-again { width: 100%; }
.k-si .sign-in-again .sign-in-button { width: 100%; margin: 0; border: 1px solid var(--control); background: var(--surface); color: var(--text); }
.k-si .sign-in-again .sign-in-button:hover { background: var(--ground); }
.k-si .sign-in-actions .sign-in-link { justify-self: center; margin: 0; text-decoration: none; font-weight: 500; }
@media (max-width: 760px) {
  .sign-in-shell.k-si:has(.sign-in-actions) { align-content: stretch; }
  .k-si .sign-in-card:has(> .sign-in-actions) { grid-template-rows: auto auto auto auto 1fr; }
  .k-si .sign-in-card > .sign-in-actions { align-self: end; }
}
@container k-si-frame (max-width: 760px) {
  .sign-in-shell.k-si:has(.sign-in-actions) { align-content: stretch; }
  .k-si .sign-in-card:has(> .sign-in-actions) { grid-template-rows: auto auto auto auto 1fr; }
  .k-si .sign-in-card > .sign-in-actions { align-self: end; }
}
/* A notice reads at the page's own size, a long email breaks where it must and the words around it do not; between a phone
   and a computer the card stays centred (UI-044's walk, 10/1). */
.k-si .sign-in-notice { font-size: 13px; overflow-wrap: break-word; }
.k-si .sign-in-email { overflow-wrap: anywhere; }
@media (max-width: 760px) { .k-si .sign-in-card { justify-self: center; } }
@container k-si-frame (max-width: 760px) { .k-si .sign-in-card { justify-self: center; } }

/* Taxes, the shared block (UI-073 stage 6): the client's Taxes page (each open return, the year in progress with its
   estimates, how to pay and what is kept, earlier years) and a return's own page (where it stands, what it needs and what
   came in, who prepares it, what was kept during the year). The markup is Taxes' own (client-tax-season.js,
   client-tax-payments.js, client-tax-year.js); its root is .k-kit.k-tx on the page's head and on its body. Every rule is
   the portal's own for these parts, re-rooted here in the kit's tokens, so the page and a board draw the same look from this
   file. The resets keep their place under the rest (@layer k-tx-base); the portal's component rules come first, so its other
   rules win where they meet, as they do on the portal. A return package and an e-signature (the Tax project's) keep their
   own stylesheets.
   A width rule is written twice: for the window (the portal) and for a frame (@container k-tx-frame, a phone board). */
@layer k-tx-base;
.k-tx { --k-tx-inset: 16px; --k-tx-action: 96px; font-family: inherit; font-size: 13px; line-height: 1.55; color: var(--text); }
@media (max-width: 700px) { .k-tx { --k-tx-action: 84px; } }
@container k-tx-frame (max-width: 700px) { .k-tx { --k-tx-action: 84px; } }
@media (max-width: 560px) { .k-tx { --k-tx-inset: 12px; } }
@container k-tx-frame (max-width: 560px) { .k-tx { --k-tx-inset: 12px; } }
/* A link reads as its words unless a rule below colours it (the portal's own base); outside the base layer, so a board's kit link colour does not reach it. */
.k-tx a { color: inherit; text-decoration: none; }
@layer k-tx-base {
:where(.k-tx), :where(.k-tx) *, :where(.k-tx) ::before, :where(.k-tx) ::after { box-sizing: border-box; border-width: 0; border-style: solid; }
:where(.k-tx) :is(h1, h2, h3, p, ul, ol, dl, dd, fieldset) { margin: 0; }
:where(.k-tx) :is(ul, ol) { list-style: none; padding: 0; }
:where(.k-tx) :is(fieldset, legend) { padding: 0; }
:where(.k-tx) :is(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.k-tx) button { cursor: pointer; background: transparent; }
:where(.k-tx) a { color: inherit; text-decoration: none; text-underline-offset: .2em; }
:where(.k-tx) :is(img, svg) { display: block; max-width: 100%; }
:where(.k-tx) :is(h1, h2, h3) { font: inherit; }

}
.portal-page-head.k-tx, .k-tx .portal-page-head { display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px; }
.portal-page-head.k-tx h1, .k-tx .portal-page-head h1 { margin-top: 4px;
    color: var(--text);
    font-family: var(--font), ui-sans-serif, system-ui, sans-serif;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.08; }
@media (max-width: 39.9375rem) { .portal-page-head.k-tx, .k-tx .portal-page-head { align-items: start; } }
@container k-tx-frame (max-width: 39.9375rem) { .portal-page-head.k-tx, .k-tx .portal-page-head { align-items: start; } }
.k-tx .portal-overview-panel { overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface); }
.k-tx .portal-overview-action-register { border-top: 0; }
.k-tx .portal-overview-action-register li { display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 56px;
  padding: 8px var(--k-tx-inset);
  border-top: 1px solid var(--line-soft);
  background: var(--surface);
  transition: background 120ms cubic-bezier(.2, .7, .2, 1); }
.k-tx .portal-overview-action-register li:hover { background: var(--ground); }
.k-tx .portal-overview-register-copy strong, .k-tx .portal-overview-register-copy small { display: block; }
.k-tx .portal-overview-register-copy strong { color: var(--text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3; }
.k-tx .portal-overview-register-copy small { margin-top: 2px;
  overflow: hidden;
  color: var(--text-3);
  font-size: 12.5px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap; }
.k-tx .portal-overview-action-register a, .k-tx .portal-overview-text-link { color: var(--navy);
  font-size: 13.5px;
  font-weight: 500;
  text-decoration: none; }
.k-tx .portal-overview-action-register a:hover, .k-tx .portal-overview-text-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.k-tx .portal-overview-panel { overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface); }
.k-tx .portal-overview-section-title { display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px var(--k-tx-inset) 8px; }
.k-tx .portal-overview-section-title h2 { color: var(--text);
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.3; }
.k-tx .portal-overview-row-action { min-height: 34px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--control);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
    padding: 0 12px;
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none; }
.k-tx .portal-overview-row-action:hover { border-color: var(--text-5); background: var(--ground); }
.k-tx .portal-overview-row-action.is-primary { border-color: var(--navy); background: var(--navy); color: var(--on-dark); }
.k-tx .portal-overview-row-action.is-primary:hover { border-color: var(--navy-hover); background: var(--navy-hover); color: var(--on-dark); }
.k-tx :is(.portal-overview-action-register, .portal-overview-panel li, .pcard-rows li) .portal-overview-row-action.is-primary { border-color: var(--control); background: var(--surface); color: var(--text); }
.k-tx :is(.portal-overview-action-register, .portal-overview-panel li, .pcard-rows li) .portal-overview-row-action.is-primary:hover { border-color: var(--text-5); background: var(--ground); }
.k-tx h1 { font-family: var(--font-serif); }
.k-tx .portal-overview-register-copy { min-width:0; }
.k-tx .proto-request-list>li { position:relative; }
.k-tx .proto-request-list .portal-overview-register-copy small { white-space:normal;overflow:visible; }
.k-tx .proto-status { font-size:12px;color:var(--text-2); }
.k-tx .proto-status[data-state=needed] { color:var(--terra); }
.k-tx .portal-overview-row-action { gap:8px;white-space:normal;justify-content:center;text-align:center; }
.k-tx .portal-overview-row-action { min-width:var(--k-tx-action); }
.k-tx .upload { position:relative;cursor:pointer;min-height:40px; }
.k-tx .upload input { position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer; }
.proto-panel-stack.k-tx, .k-tx .proto-panel-stack { display:grid;gap:16px; }
.k-tx .proto-panel-note, .k-tx .proto-panel-body { padding:var(--k-tx-inset);color:var(--text-2); }
.k-tx .proto-panel-foot { padding:12px var(--k-tx-inset);border-top:1px solid var(--line); }
.k-tx .proto-panel-foot a { display:inline-flex; }
.k-tx .proto-panel-body h2:not(.portal-overview-section-title>h2), .k-tx .proto-panel-body legend { font-size:16px;font-weight:700;color:var(--text); }
.k-tx .proto-profile-form { display:grid;gap:16px; }
.k-tx .proto-profile-fields { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
.k-tx .proto-profile-field { display:grid;gap:6px;min-width:0; }
.k-tx .proto-profile-field label, .k-tx .proto-profile-other>label { font-weight:600; }
.k-tx .proto-profile-form :is(input:not([type=checkbox]):not([type=hidden]),select,textarea) { display:block;width:100%;min-width:0;min-height:40px;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--text); }
.k-tx .proto-profile-form textarea { resize:vertical; }
@media (max-width:700px) { .k-tx .proto-profile-grid, .k-tx .proto-profile-fields { grid-template-columns:minmax(0,1fr); } }
@container k-tx-frame (max-width:700px) { .k-tx .proto-profile-grid, .k-tx .proto-profile-fields { grid-template-columns:minmax(0,1fr); } }
@media (max-width:450px) { .portal-page-head.k-tx, .k-tx .portal-page-head { flex-wrap:wrap; } }
@container k-tx-frame (max-width:450px) { .portal-page-head.k-tx, .k-tx .portal-page-head { flex-wrap:wrap; } }
@media (max-width:450px) { .k-tx .portal-overview-row-action { max-width:100%; } }
@container k-tx-frame (max-width:450px) { .k-tx .portal-overview-row-action { max-width:100%; } }
@media print { .k-tx .portal-overview-panel { break-inside:avoid; } }
.k-tx .proto-question-actions { display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:16px; }
.k-tx .proto-question-actions>span { color:var(--text-2);font-size:12px; }
.portal-page-head.k-tx>div+div, .k-tx .portal-page-head>div+div { display:flex;gap:8px;flex-wrap:wrap;align-items:center; }
.k-tx .season-stop-card .season-line, .k-tx .season-stop-card .season-note { margin:0; }
.k-tx .season-now .season-line, .k-tx .season-now .season-note { margin:0; }
.k-tx .season-now .season-actions { margin-top:6px; }
.k-tx .tx-now { display:flex;align-items:center;gap:16px; }
.k-tx .tx-now-copy { flex:1;min-width:0;display:grid;gap:4px; }
.k-tx .tx-now-copy .season-note { margin:0;font-size:12px; }
.k-tx .tx-line { margin:6px 0 0;font-size:16px;font-weight:600;color:var(--text);line-height:1.3; }
.k-tx .tx-actions { display:flex;flex-wrap:wrap;gap:8px;flex:none; }
.k-tx .tx-what { margin:0;color:var(--text-2);font-size:13px; }
.k-tx .tx-figs { display:flex;flex-wrap:wrap;gap:8px 28px;margin:4px 0 6px; }
.k-tx .tx-figs>div { display:grid; }
.k-tx .tx-figs small { font-size:12px;color:var(--text-3); }
.k-tx .tx-figs b { font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);line-height:1.2; }
.k-tx .tx-read { font-size:12px;font-weight:600;color:var(--navy);white-space:nowrap; }
.k-tx .tx-phone-only { display:none!important; }
.season-page.k-tx .season-stop-card>.tx-actions, .k-tx .season-page .season-stop-card>.tx-actions, .season-page.k-tx .season-stop-card .season-moment, .k-tx .season-page .season-stop-card .season-moment { margin-top:6px; }
.season-page.k-tx .season-moment::before, .k-tx .season-page .season-moment::before { display:none; }
.season-page.k-tx .season-moment .season-big, .k-tx .season-page .season-moment .season-big { font-size:32px; }
.season-page.k-tx .doorway-actions, .k-tx .season-page .doorway-actions { margin-top:0; }
@media (max-width:560px) { .k-tx .tx-now { flex-direction:column;align-items:stretch; } }
@container k-tx-frame (max-width:560px) { .k-tx .tx-now { flex-direction:column;align-items:stretch; } }
@media (max-width:560px) { .k-tx .tx-now .tx-actions>* { flex:1; } }
@container k-tx-frame (max-width:560px) { .k-tx .tx-now .tx-actions>* { flex:1; } }
@media (max-width:560px) { .portal-page-head.k-tx .tx-head-actions, .k-tx .portal-page-head .tx-head-actions { display:none; } }
@container k-tx-frame (max-width:560px) { .portal-page-head.k-tx .tx-head-actions, .k-tx .portal-page-head .tx-head-actions { display:none; } }
@media (max-width:560px) { .k-tx .tx-phone-only { display:inline-flex!important; } }
@container k-tx-frame (max-width:560px) { .k-tx .tx-phone-only { display:inline-flex!important; } }
@media (max-width:560px) { .k-tx .tx-figs { gap:6px 16px; } }
@container k-tx-frame (max-width:560px) { .k-tx .tx-figs { gap:6px 16px; } }
@media (max-width:560px) { .k-tx .tx-figs b { font-size:16px; } }
@container k-tx-frame (max-width:560px) { .k-tx .tx-figs b { font-size:16px; } }
.k-tx .season-road { list-style:none;margin:0;padding:8px 0 0;display:grid;grid-template-columns:repeat(5,1fr);position:relative; }
.k-tx .season-road::before, .k-tx .season-road::after { content:"";position:absolute;left:10%;top:calc(8px + 8px);height:2px;border-radius:2px; }
.k-tx .season-road::before { right:10%;background:var(--line); }
.k-tx .season-road::after { width:0;background:var(--olive);transition:width .6s ease; }
.k-tx .season-road[data-position="1"]::after { width:20%; }
.k-tx .season-road[data-position="2"]::after { width:40%; }
.k-tx .season-road[data-position="3"]::after { width:60%; }
.k-tx .season-road[data-position="4"]::after { width:80%; }
.k-tx .season-road li { display:grid;justify-items:center;gap:6px;font-size:12px;color:var(--text-2);position:relative; }
.k-tx .season-road li i { width:18px;height:18px;border-radius:50%;background:var(--surface);border:2px solid var(--line);position:relative;z-index:1;transition:background .3s,border-color .3s,box-shadow .3s; }
.k-tx .season-road li.is-done i { background:var(--olive);border-color:var(--olive); }
.k-tx .season-road li.is-current i { border-color:var(--navy);box-shadow:0 0 0 4px var(--navy-tint); }
.k-tx .season-road li.is-current { color:var(--navy);font-weight:600; }
.k-tx .season-road li.is-current i { background:var(--navy); }
.k-tx .season-line { font-size:16px;font-weight:650;color:var(--text);line-height:1.3; }
.k-tx .season-note { color:var(--text-2); }
.k-tx .season-progress { display:grid;gap:6px;margin-bottom:12px; }
.k-tx .season-progress-head { display:flex;justify-content:space-between;font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums; }
.k-tx .season-bar { display:block;width:100%;height:6px;appearance:none;-webkit-appearance:none;border:0;background:var(--line);border-radius:6px;overflow:hidden; }
.k-tx .season-bar::-webkit-progress-bar { background:var(--line);border-radius:6px; }
.k-tx .season-bar::-webkit-progress-value { background:var(--olive);border-radius:6px;transition:width .6s ease; }
.k-tx .season-bar::-moz-progress-bar { background:var(--olive);border-radius:6px; }
.k-tx .season-state[data-state=needed] { color:var(--terra); }
.k-tx .season-state[data-state=received] { color:var(--olive); }
.k-tx .season-state[data-state=uploading] { color:var(--text-2);font-variant-numeric:tabular-nums; }
.k-tx .season-state[data-state=error] { color:var(--terra); }
.k-tx .season-item.is-over { outline:2px dashed var(--navy);outline-offset:6px;border-radius:7px; }
.k-tx .season-note-card { display:flex;gap:12px;align-items:flex-start;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--pk-warm-stone, var(--quiet)); }
.k-tx .season-note-card p { margin:0;line-height:1.55; }
.k-tx .season-actions { margin-top:16px;display:flex;flex-wrap:wrap;gap:8px; }
.k-tx .season-note-card { transition:opacity .5s ease .9s,transform .5s ease .9s; }
.k-tx .season-reveal.is-animating .season-note-card { opacity:0;transform:translateY(6px);transition:none; }
.k-tx .season-moment { position:relative;overflow:hidden;display:grid;gap:8px; }
.k-tx .season-moment::before { content:"";position:absolute;left:16px;right:16px;top:0;height:3px;background:linear-gradient(90deg,var(--terra),var(--navy),var(--olive));transform-origin:left;transition:transform 1s ease; }
.k-tx .season-moment.is-animating::before { transform:scaleX(0);transition:none; }
.k-tx .season-moment h2 { margin:8px 0 0; }
.k-tx .season-big { margin:0;font-size:38px;font-weight:700;letter-spacing:-.03em;color:var(--olive);font-variant-numeric:tabular-nums;line-height:1; }
.k-tx .season-moment[data-kind=owed] .season-big { color:var(--text); }
.k-tx .season-moment-line { margin:0;color:var(--text-2); }
.k-tx .season-archive { display:flex;flex-wrap:wrap;gap:8px;margin-top:6px; }
.k-tx .season-archive a { display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:999px;color:var(--text);text-decoration:none;font-size:12px; }
.k-tx .proto-panel-body>.portal-overview-section-title, .k-tx .proto-profile-other>.portal-overview-section-title { margin:calc(var(--k-tx-inset) * -1) calc(var(--k-tx-inset) * -1) 8px;padding:12px var(--k-tx-inset) 4px; }
.k-tx .proto-panel-body>:is(.portal-overview-action-register) { margin-left:calc(var(--k-tx-inset) * -1);margin-right:calc(var(--k-tx-inset) * -1); }
.k-tx .proto-panel-body>.proto-panel-foot { margin:var(--k-tx-inset) calc(var(--k-tx-inset) * -1) calc(var(--k-tx-inset) * -1); }
.k-tx .season-road.is-compact { padding-top:4px;margin:4px 0; }
.k-tx .season-road.is-compact::before, .k-tx .season-road.is-compact::after { top:calc(4px + 5px); }
.k-tx .season-road.is-compact li { font-size:12px; }
.k-tx .season-road.is-compact li i { width:12px;height:12px; }
.k-tx .season-road.is-compact li.is-current i { box-shadow:0 0 0 3px var(--navy-tint); }
.k-tx .month-business .month-lead .season-actions { margin-top:8px; }
@media (prefers-reduced-motion:reduce) { .k-tx .season-road::after, .k-tx .season-road li i, .k-tx .season-bar::-webkit-progress-value, .k-tx .season-moment::before, .k-tx .season-note-card { transition:none; } }
.k-tx .taxyear-panel { display:grid;gap:6px;transition:outline-color .2s; }
.k-tx .taxyear-panel.is-over { outline:2px dashed var(--navy);outline-offset:4px; }
.k-tx .taxyear-actions { display:flex;flex-wrap:wrap;gap:8px;margin-top:12px; }
.k-tx .taxyear-actions>[hidden], .k-tx .taxyear-change[hidden] { display:none; }
.k-tx .taxyear-status { margin:6px 0 0;color:var(--text-2);font-size:12px;overflow-wrap:anywhere; }
.k-tx .taxyear-status:empty { display:none; }
.k-tx .taxyear-status[data-error] { color:var(--terra); }
.k-tx .taxyear-status a { text-decoration:underline;text-underline-offset:.2em; }
.k-tx .taxyear-form { gap:16px; }
.k-tx .taxyear-kinds { border:0;padding:0;margin:0;min-width:0; }
.k-tx .taxyear-kinds legend { font-weight:650;margin-bottom:8px;padding:0; }
.k-tx .taxyear-kinds>div { display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:6px; }
.k-tx .taxyear-kind { display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);cursor:pointer; }
.k-tx .taxyear-form .taxyear-kind input[type=radio][name] { display:inline-block;flex:none;width:auto;min-width:0;min-height:0;margin:0;padding:0;border:0;accent-color:var(--navy); }
.k-tx .taxyear-kind:has(input:checked) { border-color:var(--navy);background:var(--navy-tint);font-weight:600; }
.k-tx .taxyear-kind:has(input:focus-visible) { outline:2px solid var(--navy);outline-offset:2px; }
.k-tx .taxyear-field { display:grid;gap:6px;min-width:0; }
.k-tx .taxyear-field label { font-weight:650; }
.k-tx .taxyear-field small { color:var(--text-2);font-weight:400;font-size:12px; }
.k-tx .taxyear-form select { max-width:16rem; }
.k-tx .taxyear-change .notice { margin:0 0 12px; }
.k-tx .taxyear-notice a, .k-tx .season-next a { text-decoration:underline;text-underline-offset:.2em; }
.k-tx .taxyear-return { display:grid;gap:6px; }
.k-tx .taxyear-return+.taxyear-return { margin-top:16px;padding-top:16px;border-top:1px solid var(--line); }
.k-tx .taxyear-return .season-actions { margin-top:8px; }
@media (prefers-reduced-motion:reduce) { .k-tx .taxyear-panel { transition:none; } }
.k-tx .doorway-intro { margin:0 0 12px;color:var(--text-2); }
.k-tx .doorway-choices { border:0;margin:0;padding:0; }
.k-tx .doorway-choices legend { position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
.k-tx .doorway-choices label:has(input[value=changed]:checked), .k-tx .doorway-choices label:has(input[value=gone]:checked) { background:var(--pk-warm-stone, var(--quiet));border-color:var(--terra);color:var(--text); }
.k-tx .doorway-note { grid-column:1/-1;display:none;gap:4px;min-width:0; }
.k-tx .doorway-row:has(input[value=changed]:checked) .doorway-note, .k-tx .doorway-row:has(input[value=gone]:checked) .doorway-note { display:grid; }
.k-tx .doorway-row:has(input[value=changed]:checked) [data-when=gone], .k-tx .doorway-row:has(input[value=gone]:checked) [data-when=changed] { display:none; }
.k-tx .doorway-note label { font-weight:600;font-size:12px; }
.k-tx .doorway-note small { color:var(--text-2);font-weight:400; }
.k-tx .doorway-note input { width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit; }
.k-tx .portal-overview-action-register li.doorway-row { grid-template-columns:minmax(0,1fr); }
.k-tx .doorway-row>.doorway-choices { justify-self:start; }
.k-tx .doorway-choices label { white-space:nowrap; }
.k-tx .doorway-actions { display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px; }
.k-tx .doorway-actions span { color:var(--text-2);font-size:12px; }
.k-tx .season-state[data-state=answered], .k-tx .season-state[data-state=missing] { color:var(--text-2); }
@media (max-width:700px) { .k-tx .portal-overview-action-register .portal-overview-row-action, .k-tx .request-row-actions .portal-overview-row-action { min-height:40px; } }
@container k-tx-frame (max-width:700px) { .k-tx .portal-overview-action-register .portal-overview-row-action, .k-tx .request-row-actions .portal-overview-row-action { min-height:40px; } }
@media (max-width:700px) { .k-tx .portal-overview-action-register li:has(>:last-child>.portal-overview-row-action~.portal-overview-row-action) { grid-template-columns:minmax(0,1fr); } }
@container k-tx-frame (max-width:700px) { .k-tx .portal-overview-action-register li:has(>:last-child>.portal-overview-row-action~.portal-overview-row-action) { grid-template-columns:minmax(0,1fr); } }
@media (max-width:700px) { .k-tx .portal-overview-action-register li:has(>:last-child>.portal-overview-row-action~.portal-overview-row-action)>:last-child { justify-self:start; } }
@container k-tx-frame (max-width:700px) { .k-tx .portal-overview-action-register li:has(>:last-child>.portal-overview-row-action~.portal-overview-row-action)>:last-child { justify-self:start; } }
@media (max-width:700px) { .k-tx .portal-overview-action-register li:has(>.kind-tile):has(>.request-row-actions form), .k-tx .portal-overview-action-register li:has(>.kind-tile):has(>:last-child>.portal-overview-row-action~.portal-overview-row-action) { grid-template-columns:auto minmax(0,1fr); } }
@container k-tx-frame (max-width:700px) { .k-tx .portal-overview-action-register li:has(>.kind-tile):has(>.request-row-actions form), .k-tx .portal-overview-action-register li:has(>.kind-tile):has(>:last-child>.portal-overview-row-action~.portal-overview-row-action) { grid-template-columns:auto minmax(0,1fr); } }
@media (max-width:700px) { .k-tx .portal-overview-action-register li:has(>.kind-tile):has(>.request-row-actions form)>.request-row-actions, .k-tx .portal-overview-action-register li:has(>.kind-tile):has(>:last-child>.portal-overview-row-action~.portal-overview-row-action)>:last-child { grid-column:1/-1; } }
@container k-tx-frame (max-width:700px) { .k-tx .portal-overview-action-register li:has(>.kind-tile):has(>.request-row-actions form)>.request-row-actions, .k-tx .portal-overview-action-register li:has(>.kind-tile):has(>:last-child>.portal-overview-row-action~.portal-overview-row-action)>:last-child { grid-column:1/-1; } }
.k-tx .portal-overview-action-register li { position:relative; }
.k-tx .portal-overview-action-register li:hover { transform:none;box-shadow:none;background:transparent; }
.k-tx .portal-overview-action-register li:has(.portal-overview-register-copy>strong>a):hover { background:color-mix(in srgb,var(--surface) 88%,var(--navy-tint)); }
.k-tx .portal-overview-register-copy>strong>a::after { content:"";position:absolute;inset:0; }
.k-tx .portal-overview-action-register li :is(button,input,select,textarea,summary,label,form,a:not(.portal-overview-register-copy>strong>a)) { position:relative;z-index:1; }
.k-tx .portal-overview-action-register li .upload input[type=file] { position:absolute; }
.k-tx .organizer-side { position:sticky;top:12px; }
.k-tx .organizer-rail { display:grid;gap:2px;padding:6px 0;border:1px solid var(--line);border-radius:8px;background:var(--surface); }
.k-tx .organizer-rail a { display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;min-height:40px;color:var(--text-2);text-decoration:none;font-size:12px;border-left:3px solid transparent; }
.k-tx .organizer-rail a[aria-current=page] { color:var(--text);font-weight:700;border-left-color:var(--navy);background:var(--navy-tint); }
.k-tx .organizer-rail i { font-style:normal;font-size:12px;color:var(--text-3);white-space:nowrap; }
.k-tx .organizer-rail i.is-done { color:var(--olive); }
.k-tx .organizer-main { min-width:0; }
.k-tx .organizer-lede { margin:0;padding:8px var(--k-tx-inset) 0;color:var(--text-2);font-size:12px; }
.k-tx .organizer-list { list-style:none;margin:0;padding:0; }
.k-tx .organizer-q { display:flex;align-items:flex-start;gap:12px;padding:8px var(--k-tx-inset);border-top:1px solid var(--line); }
.k-tx .organizer-q:first-child { border-top:0; }
.k-tx .organizer-q.is-follow { padding-left:calc(var(--k-tx-inset) + 16px);background:color-mix(in srgb,var(--surface) 88%,var(--navy-tint)); }
.k-tx .organizer-q-text { flex:1;min-width:0; }
.k-tx .organizer-prompt { margin:0;font-weight:600;color:var(--text); }
.k-tx .organizer-help { margin:2px 0 0;font-size:12px;color:var(--text-3); }
.k-tx .organizer-adds { color:var(--olive); }
.k-tx .organizer-required { display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--terra-tint);color:var(--terra);font-size:12px;font-weight:600; }
.k-tx .organizer-q-control { flex:none;display:flex;align-items:center;min-height:36px;max-width:60%; }
.k-tx .organizer-choices { border:0;margin:0;padding:0; }
.k-tx .organizer-choices legend { position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
.k-tx .organizer-amount { display:inline-flex;align-items:center;gap:4px;color:var(--text-3); }
.k-tx .organizer-amount input, .k-tx .organizer-count, .k-tx .organizer-q-control textarea { min-height:40px;padding:6px 8px;border:1px solid var(--control);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:1rem; }
.k-tx .organizer-amount input { width:9em; }
.k-tx .organizer-count { width:5em; }
.k-tx .organizer-q-control textarea { width:min(28em,100%);resize:vertical; }
.k-tx .organizer-onfile { margin:0;padding:0;list-style:none; }
.k-tx .organizer-onfile-row { display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px var(--k-tx-inset);border-top:1px solid var(--line); }
.k-tx .organizer-onfile-row:first-child { border-top:0; }
.k-tx .organizer-onfile-k { color:var(--text-3);font-size:12px; }
.k-tx .organizer-onfile-v { font-weight:500;overflow-wrap:anywhere; }
.k-tx .organizer-onfile-v.is-blank { color:var(--terra); }
.k-tx .organizer-onfile-act { display:flex;align-items:center;gap:6px;justify-content:flex-end; }
.k-tx .organizer-foot { display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px var(--k-tx-inset);border-top:1px solid var(--line); }
.k-tx .organizer-saved { font-size:12px;color:var(--olive); }
.k-tx .organizer-saved.is-error { color:var(--terra); }
.k-tx .organizer-card { display:flex;align-items:center;gap:12px; }
.k-tx .organizer-card-copy { flex:1;min-width:0; }
.k-tx .organizer-card-copy h2 { margin:0; }
.k-tx .organizer-bar { display:block;appearance:none;-webkit-appearance:none;width:100%;max-width:360px;height:6px;margin-top:6px;border:0;border-radius:3px;background:var(--line);overflow:hidden; }
.k-tx .organizer-bar::-webkit-progress-bar { background:var(--line);border-radius:3px; }
.k-tx .organizer-bar::-webkit-progress-value { background:var(--olive);border-radius:3px; }
.k-tx .organizer-bar::-moz-progress-bar { background:var(--olive);border-radius:3px; }
@media (max-width:760px) { .k-tx .organizer-side { position:static; } }
@container k-tx-frame (max-width:760px) { .k-tx .organizer-side { position:static; } }
@media (max-width:760px) { .k-tx .organizer-rail { display:flex;overflow-x:auto;gap:6px;padding:6px;border:0;background:none; } }
@container k-tx-frame (max-width:760px) { .k-tx .organizer-rail { display:flex;overflow-x:auto;gap:6px;padding:6px;border:0;background:none; } }
@media (max-width:760px) { .k-tx .organizer-rail a { flex:none;border:1px solid var(--line);border-radius:999px;background:var(--surface);min-height:36px; } }
@container k-tx-frame (max-width:760px) { .k-tx .organizer-rail a { flex:none;border:1px solid var(--line);border-radius:999px;background:var(--surface);min-height:36px; } }
@media (max-width:760px) { .k-tx .organizer-rail a[aria-current=page] { border-color:var(--navy); } }
@container k-tx-frame (max-width:760px) { .k-tx .organizer-rail a[aria-current=page] { border-color:var(--navy); } }
@media (max-width:760px) { .k-tx .organizer-q { flex-direction:column;align-items:stretch; } }
@container k-tx-frame (max-width:760px) { .k-tx .organizer-q { flex-direction:column;align-items:stretch; } }
@media (max-width:760px) { .k-tx .organizer-q-control { max-width:none; } }
@container k-tx-frame (max-width:760px) { .k-tx .organizer-q-control { max-width:none; } }
@media (max-width:760px) { .k-tx .organizer-onfile-row { grid-template-columns:1fr;gap:4px; } }
@container k-tx-frame (max-width:760px) { .k-tx .organizer-onfile-row { grid-template-columns:1fr;gap:4px; } }
@media (max-width:760px) { .k-tx .organizer-onfile-act { justify-content:flex-start; } }
@container k-tx-frame (max-width:760px) { .k-tx .organizer-onfile-act { justify-content:flex-start; } }
@media (max-width:760px) { .k-tx .organizer-card { flex-direction:column;align-items:stretch; } }
@container k-tx-frame (max-width:760px) { .k-tx .organizer-card { flex-direction:column;align-items:stretch; } }
.k-tx .season-from, .k-tx .season-arrives { display:block; }
.k-tx .season-from a { font-weight:600; }
.k-tx .doorway-reason { grid-column:1/-1;display:none;gap:4px;min-width:0; }
.k-tx .doorway-row:has(input[value=gone]:checked) .doorway-reason { display:grid; }
.k-tx .doorway-reason label { font-weight:600;font-size:12px; }
.k-tx .doorway-reason select { width:100%;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit; }
.k-tx .season-cover { margin:8px var(--k-tx-inset) 0;border-top:1px solid var(--line);padding-top:8px; }
.k-tx .season-cover summary { cursor:pointer;font-weight:600;color:var(--navy);padding:6px 0; }
.k-tx .season-cover-body { display:grid;gap:8px;padding-bottom:8px; }
.k-tx .season-cover-pick { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.k-tx .season-cover-file { position:relative;overflow:hidden; }
.k-tx .season-cover-file input { position:absolute;inset:0;opacity:0;cursor:pointer; }
.k-tx .season-cover-name { font-size:12px;color:var(--text-2);overflow-wrap:anywhere; }
.k-tx .season-cover-list { list-style:none;margin:0;padding:0;display:grid;gap:4px; }
.k-tx .season-cover-list label { display:flex;align-items:center;gap:8px;min-height:36px;cursor:pointer; }
.k-tx .season-cover-list input { width:20px;height:20px;margin:0;accent-color:var(--navy); }
.k-tx .season-cover-actions { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.k-tx .season-cover-status { font-size:12px;color:var(--olive); }
.k-tx .season-cover-status[data-error=true] { color:var(--terra); }
.k-tx .organizer-prior { color:var(--text-2); }
.k-tx .organizer-use { background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--navy);cursor:pointer;text-decoration:underline; }
.k-tx .organizer-use-all { margin-left:auto; }
.k-tx .organizer-main .portal-overview-section-title { flex-wrap:wrap;gap:8px; }
.k-tx .estimate-scroll { overflow-x:auto;margin:0 calc(var(--k-tx-inset) * -1); }
.k-tx .estimate-table { width:100%;min-width:520px;border-collapse:collapse;font-size:12px; }
.k-tx .estimate-table th { padding:6px var(--k-tx-inset);text-align:left;font-weight:600;color:var(--text-3);font-size:12px;border-bottom:1px solid var(--line); }
.k-tx .estimate-table td { padding:8px var(--k-tx-inset);border-top:1px solid var(--line);vertical-align:middle;color:var(--text); }
.k-tx .estimate-table tbody tr:first-child td { border-top:0; }
.k-tx .estimate-num { text-align:right;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap; }
.k-tx .estimate-dim { color:var(--text-3);font-weight:400; }
.k-tx .estimate-act { text-align:right;width:1%;white-space:nowrap; }
.k-tx .estimate-chip { display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap; }
.k-tx .estimate-chip.is-ok { background:var(--olive-tint);color:var(--olive); }
.k-tx .estimate-chip.is-need { background:var(--terra-soft);color:var(--terra); }
.k-tx .estimate-chip.is-soon { background:var(--terra-tint);color:var(--text-2); }
.k-tx .estimate-form-row td { padding-top:0;border-top:0;background:var(--navy-tint); }
.k-tx .estimate-report { gap:8px;padding:8px 0 6px; }
.k-tx .estimate-report-fields { grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
.k-tx .estimate-report .proto-profile-field label small { font-weight:400;color:var(--text-3); }
.k-tx .estimate-report-actions { display:flex;gap:6px; }
.k-tx .estimate-foot { margin:8px 0 0;font-size:12px;color:var(--text-2); }
.k-tx .estimate-how { margin:8px var(--k-tx-inset) 0;font-size:12px;color:var(--text-2); }
.k-tx .estimate-how summary { cursor:pointer;font-weight:600;color:var(--navy); }
.portal-page-head.k-tx, .k-tx .portal-page-head { margin-bottom:20px; }
.portal-page-head.k-tx h1, .k-tx .portal-page-head h1 { margin:0;font-family:var(--font-serif);font-size:36px;font-weight:400;line-height:1.06;letter-spacing:-.01em; }
.k-tx .portal-eyebrow { margin:0 0 6px;color:var(--sand);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase; }
.portal-page-head.k-tx:has(+.tx-page) .portal-eyebrow, .k-tx .portal-page-head:has(+.tx-page) .portal-eyebrow { display:none; }
@media (max-width:1023px) { .portal-page-head.k-tx h1, .k-tx .portal-page-head h1 { font-size:30px;line-height:1.08; } }
@container k-tx-frame (max-width:1023px) { .portal-page-head.k-tx h1, .k-tx .portal-page-head h1 { font-size:30px;line-height:1.08; } }
.k-tx .portal-overview-panel>.portal-overview-action-register:first-child>li:first-child { border-top:0; }
.k-tx .kind-tile { display:grid;place-items:center;width:32px;height:32px;border-radius:9px;flex:none; }
.k-tx .kind-tile svg { width:16px;height:16px; }
.k-tx .kind-tile[data-kind=document] { background:var(--sand-tint);color:var(--sand); }
.k-tx .kind-tile[data-kind=form], .k-tx .kind-tile[data-kind=information], .k-tx .kind-tile[data-kind=doorway] { background:var(--navy-tint);color:var(--navy); }
.k-tx .kind-tile[data-kind=task] { background:var(--olive-tint);color:var(--olive); }
.k-tx .portal-overview-action-register li:has(>.kind-tile) { grid-template-columns:auto minmax(0,1fr) auto; }
@media (max-width:700px) { .k-tx .kind-tile { width:30px;height:30px; } }
@container k-tx-frame (max-width:700px) { .k-tx .kind-tile { width:30px;height:30px; } }
.k-tx .doc-date { color:var(--text-2);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums; }
.k-tx .convo-av { display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:50%;background:var(--pk-bar-3, var(--text));color:var(--on-dark);font-size:11.5px;font-weight:600; }
.k-tx .tx-kicker { margin:12px 0 calc(6px * -1);color:var(--sand);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase; }
.k-tx .tx-chip { display:inline-flex;align-items:center;margin-left:8px;padding:2px 9px;border-radius:999px;background:var(--sand-tint);color:var(--sand);font-size:12px;font-weight:500;vertical-align:1px; }
.k-tx .figs { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--text);border-bottom:1px solid var(--line); }
.k-tx .fig { padding:12px 18px 14px 0; }
.k-tx .fig+.fig { padding-left:18px;border-left:1px solid var(--line); }
.k-tx .fig span { display:block;color:var(--text-2);font-size:12.5px;font-weight:500; }
.k-tx .fig b { display:block;margin:4px 0 2px;font-family:var(--font-serif);font-size:32px;font-weight:400;line-height:1.1;letter-spacing:-.01em;font-variant-numeric:tabular-nums; }
.k-tx .fig small { color:var(--text-2);font-size:12.5px; }
.k-tx .fig small.warn { color:var(--terra);font-weight:500; }
.k-tx .tx-table-wrap { overflow-x:auto;padding:4px var(--k-tx-inset) 6px; }
.k-tx .tx-table { width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums; }
.k-tx .tx-table th { padding:8px 10px 8px 0;border-bottom:1px solid var(--text);color:var(--text-2);font-size:12px;font-weight:600;text-align:left; }
.k-tx .tx-table td { padding:9px 10px 9px 0;border-bottom:1px solid var(--line-soft);vertical-align:middle; }
.k-tx .tx-table .r { text-align:right;padding-right:0;padding-left:10px;white-space:nowrap; }
.k-tx .tx-table tr.tot td { border-top:1px solid var(--text);border-bottom:0;font-weight:600; }
.k-tx .tx-table td small { display:block;color:var(--text-2);font-size:12px; }
.k-tx .tx-state { display:flex;align-items:center;justify-content:flex-end;gap:8px; }
.k-tx .tx-state .portal-overview-row-action { min-height:28px; }
.k-tx .tx-year { font-weight:600; }
.k-tx .tx-links { text-align:right; }
.k-tx .tx-links a { font-weight:500; }
.k-tx .tx-links a+a { margin-left:16px; }
.k-tx .tx-payments-foot { display:grid;gap:6px;padding:6px var(--k-tx-inset) 12px;font-size:13px; }
.k-tx .tx-from { margin:0;color:var(--text-2); }
.k-tx .tx-from a { font-weight:500; }
.k-tx .estimate-chip.is-done { background:var(--olive-tint);color:var(--olive); }
.k-tx .estimate-chip.is-missing { background:var(--terra-tint);color:var(--terra); }
.k-tx .tx-crumb { display:flex;align-items:center;gap:6px;margin-bottom:8px;color:var(--text-2);font-size:13px; }
.k-tx .tx-crumb a { color:var(--text-2); }
.k-tx .tx-head-actions { display:flex;align-items:center;gap:10px; }
.tx-return.k-tx, .k-tx .tx-return { display:grid;gap:12px; }
.k-tx .tx-road-card { padding:22px 24px 20px; }
.k-tx .tx-road { list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr)); }
.k-tx .tx-road li { position:relative;display:flex;flex-direction:column;gap:4px;padding-right:12px; }
.k-tx .tx-road li::before { content:'';position:absolute;top:10px;left:22px;right:0;height:2px;background:var(--line); }
.k-tx .tx-road li:last-child::before { display:none; }
.k-tx .tx-road li.is-done::before { background:var(--olive); }
.k-tx .tx-road i { position:relative;z-index:1;display:grid;place-items:center;width:22px;height:22px;box-sizing:border-box;border:2px solid var(--control);border-radius:50%;background:var(--surface); }
.k-tx .tx-road .is-done i { border-color:var(--olive);background:var(--olive); }
.k-tx .tx-road .is-current i { border-color:var(--navy);background:var(--navy);box-shadow:0 0 0 4px var(--navy-tint); }
.k-tx .tx-road .is-current i::after { content:'';width:6px;height:6px;border-radius:50%;background:var(--surface); }
.k-tx .tx-road b { margin-top:6px;font-size:13px;font-weight:600; }
.k-tx .tx-road .is-ahead b { color:var(--text-2);font-weight:500; }
.k-tx .tx-road small { color:var(--text-2);font-size:12px;line-height:1.35; }
.k-tx .tx-cols { display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start; }
.k-tx .tx-main, .k-tx .tx-side { display:grid;gap:12px;min-width:0; }
.k-tx .tx-docs { display:grid;gap:12px; }
.k-tx .tx-count { display:inline-block;margin-left:4px;padding:1px 8px;border-radius:999px;background:var(--pk-stone, var(--neutral-tint));color:var(--text-2);font-size:12px;font-weight:600; }
.k-tx .tx-cover { padding:10px var(--k-tx-inset) var(--k-tx-inset);border-top:1px solid var(--line-soft); }
.k-tx .tx-cover .season-cover>summary { display:flex;align-items:center;justify-content:center;min-height:42px;border:1.5px dashed var(--control);border-radius:8px;color:var(--text-2);font-size:13.5px;cursor:pointer;list-style:none; }
.k-tx .tx-stage { display:grid;gap:8px;padding:var(--k-tx-inset); }
.k-tx .tx-stage .season-line { margin:0;font-size:16px;font-weight:600; }
.k-tx .tx-person { display:flex;align-items:center;gap:12px;padding:14px var(--k-tx-inset); }
.k-tx .tx-person div { flex:1;min-width:0; }
.k-tx .tx-person small { display:block;color:var(--text-2);font-size:12px; }
.k-tx .tx-person strong { font-size:14px;font-weight:600; }
.k-tx .portal-page:has(.tx-return) { max-width:1148px; }
@media (max-width:900px) { .k-tx .tx-cols { grid-template-columns:minmax(0,1fr); } }
@container k-tx-frame (max-width:900px) { .k-tx .tx-cols { grid-template-columns:minmax(0,1fr); } }
@media (max-width:900px) { .k-tx .figs { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@container k-tx-frame (max-width:900px) { .k-tx .figs { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:900px) { .k-tx .fig:nth-child(odd) { padding-left:0;border-left:0; } }
@container k-tx-frame (max-width:900px) { .k-tx .fig:nth-child(odd) { padding-left:0;border-left:0; } }
@media (max-width:900px) { .k-tx .fig:nth-child(n+3) { border-top:1px solid var(--line); } }
@container k-tx-frame (max-width:900px) { .k-tx .fig:nth-child(n+3) { border-top:1px solid var(--line); } }
@media (max-width:900px) { .k-tx .tx-road { grid-template-columns:repeat(5,minmax(0,1fr)); } }
@container k-tx-frame (max-width:900px) { .k-tx .tx-road { grid-template-columns:repeat(5,minmax(0,1fr)); } }
@media (max-width:900px) { .k-tx .tx-road small { display:none; } }
@container k-tx-frame (max-width:900px) { .k-tx .tx-road small { display:none; } }
@media (max-width:900px) { .k-tx .tx-road-card { padding:16px; } }
@container k-tx-frame (max-width:900px) { .k-tx .tx-road-card { padding:16px; } }
@media (max-width:900px) { .k-tx .tx-head-actions { flex-wrap:wrap; } }
@container k-tx-frame (max-width:900px) { .k-tx .tx-head-actions { flex-wrap:wrap; } }
.k-tx .tx-table .estimate-form-row td { padding:10px 0 14px;background:var(--ground); }
.k-tx .tx-table .estimate-report-fields { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px; }
.k-tx .tx-table .estimate-report-actions { display:flex;gap:8px;margin-top:10px; }
.k-tx .portal-overview-row-action.is-quiet { border-color:transparent;background:none;color:var(--text-2); }
.k-tx .tx-payments-foot .estimate-how>summary { cursor:pointer;color:var(--text-2);font-size:13px;font-weight:500; }
.k-tx .tx-payments-foot .estimate-how p { margin:6px 0 0;color:var(--text-2);font-size:13px;line-height:1.5; }
@media (max-width:700px) { .k-tx .tx-table .estimate-report-fields { grid-template-columns:minmax(0,1fr); } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table .estimate-report-fields { grid-template-columns:minmax(0,1fr); } }
.k-tx .portal-page:has(.tx-page .tx-cols) { max-width:1148px; }
@media (min-width:901px) { .k-tx .tx-year-cols { grid-template-columns:minmax(0,1fr) 320px; } }
.k-tx .fig b { white-space:nowrap; }
@media (min-width:701px) { .k-tx .tx-table td:nth-child(-n+2) { white-space:nowrap; } }
.k-tx .portal-overview-row-action>svg { width:15px;height:15px;flex:none; }
.k-tx a.portal-overview-row-action:has(>svg) { display:inline-flex;align-items:center;gap:6px; }
.tx-page.k-tx>.taxyear-change, .k-tx .tx-page>.taxyear-change { margin-bottom:8px; }
.k-tx .tx-pay { display:grid; }
.k-tx .tx-pay-auth { display:grid;gap:10px;padding:14px var(--k-tx-inset);border-top:1px solid var(--line-soft); }
.k-tx .tx-pay-head { display:flex;align-items:baseline;justify-content:space-between;gap:10px; }
.k-tx .tx-pay-head b { font-size:14px;font-weight:600; }
.k-tx .tx-pay-head small { color:var(--text-2);font-size:12px; }
.k-tx .tx-pay-go { justify-content:center;width:100%;box-sizing:border-box; }
.k-tx .tx-pay-pick { display:grid;gap:4px;margin:0; }
.k-tx .tx-pay-pick div { display:grid;gap:1px;font-size:13px; }
.k-tx .tx-pay-pick dt { color:var(--text-2);font-size:12px; }
.k-tx .tx-pay-pick dd { margin:0;font-weight:500; }
.k-tx .tx-pay-mail { margin:0;font-size:13px;line-height:1.45;color:var(--text); }
.k-tx .tx-pay-mail span, .k-tx .tx-pay-after b { display:block;color:var(--text-2);font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px; }
.k-tx .tx-pay-after { margin:0;padding:12px var(--k-tx-inset) 14px;border-top:1px solid var(--line-soft);background:var(--ground);font-size:13px;line-height:1.45;border-radius:0 0 12px 12px; }
.k-tx .tx-pay-mail a { color:var(--navy);font-weight:500; }
@media (max-width:700px) { .k-tx .tx-table-wrap { overflow:visible;padding-top:0; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table-wrap { overflow:visible;padding-top:0; } }
@media (max-width:700px) { .k-tx .tx-table, .k-tx .tx-table tbody { display:block; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table, .k-tx .tx-table tbody { display:block; } }
@media (max-width:700px) { .k-tx .tx-table thead { display:none; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table thead { display:none; } }
@media (max-width:700px) { .k-tx .tx-table tr { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:12px 0;border-bottom:1px solid var(--line-soft); } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table tr { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:12px 0;border-bottom:1px solid var(--line-soft); } }
@media (max-width:700px) { .k-tx .tx-table td { display:block;padding:0;border:0;word-break:normal;overflow-wrap:normal;min-width:0; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table td { display:block;padding:0;border:0;word-break:normal;overflow-wrap:normal;min-width:0; } }
@media (max-width:700px) { .k-tx .tx-table td:empty { display:none; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table td:empty { display:none; } }
@media (max-width:700px) { .k-tx .tx-table td:nth-child(1) { grid-column:1;grid-row:1;font-weight:500; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table td:nth-child(1) { grid-column:1;grid-row:1;font-weight:500; } }
@media (max-width:700px) { .k-tx .tx-table td:nth-child(2) { grid-column:1;grid-row:2;color:var(--text-2);font-size:12.5px; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table td:nth-child(2) { grid-column:1;grid-row:2;color:var(--text-2);font-size:12.5px; } }
@media (max-width:700px) { .k-tx .tx-table td:nth-child(3) { grid-column:2;grid-row:1;text-align:right; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table td:nth-child(3) { grid-column:2;grid-row:1;text-align:right; } }
@media (max-width:700px) { .k-tx .tx-table td:nth-child(4) { grid-column:2;grid-row:2;text-align:right;font-size:12.5px; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table td:nth-child(4) { grid-column:2;grid-row:2;text-align:right;font-size:12.5px; } }
@media (max-width:700px) { .k-tx .tx-table td:nth-child(5) { grid-column:1/-1;grid-row:3; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table td:nth-child(5) { grid-column:1/-1;grid-row:3; } }
@media (max-width:700px) { .k-tx .tx-table .tx-state { justify-content:flex-start;margin-top:6px; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table .tx-state { justify-content:flex-start;margin-top:6px; } }
@media (max-width:700px) { .k-tx .estimate-row td:nth-child(3)::before, .k-tx .tx-table tr.tot td:nth-child(3)::before { content:'Planned ';color:var(--text-2);font-size:12px; } }
@container k-tx-frame (max-width:700px) { .k-tx .estimate-row td:nth-child(3)::before, .k-tx .tx-table tr.tot td:nth-child(3)::before { content:'Planned ';color:var(--text-2);font-size:12px; } }
@media (max-width:700px) { .k-tx .estimate-row td:nth-child(4)::before, .k-tx .tx-table tr.tot td:nth-child(4)::before { content:'Paid ';color:var(--text-2); } }
@container k-tx-frame (max-width:700px) { .k-tx .estimate-row td:nth-child(4)::before, .k-tx .tx-table tr.tot td:nth-child(4)::before { content:'Paid ';color:var(--text-2); } }
@media (max-width:700px) { .k-tx .tx-table tr.tot { border-top:1px solid var(--text);border-bottom:0; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table tr.tot { border-top:1px solid var(--text);border-bottom:0; } }
@media (max-width:700px) { .k-tx .tx-table tr.tot td { border:0; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table tr.tot td { border:0; } }
@media (max-width:700px) { .k-tx .tx-table .estimate-form-row { display:block;padding:0 0 12px; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table .estimate-form-row { display:block;padding:0 0 12px; } }
@media (max-width:700px) { .k-tx .tx-table .estimate-form-row[hidden] { display:none; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table .estimate-form-row[hidden] { display:none; } }
@media (max-width:700px) { .k-tx .tx-table .estimate-form-row td { display:block; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-table .estimate-form-row td { display:block; } }
@media (max-width:700px) { .k-tx .estimate-row td:nth-child(3):has(.estimate-dim) { display:none; } }
@container k-tx-frame (max-width:700px) { .k-tx .estimate-row td:nth-child(3):has(.estimate-dim) { display:none; } }
@media (max-width:700px) { .k-tx .tx-history .tx-table td.tx-result { font-size:13px; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-history .tx-table td.tx-result { font-size:13px; } }
@media (max-width:700px) { .k-tx .tx-history .tx-table td.tx-links { grid-column:1/-1;grid-row:3;white-space:normal;margin-top:4px;text-align:left; } }
@container k-tx-frame (max-width:700px) { .k-tx .tx-history .tx-table td.tx-links { grid-column:1/-1;grid-row:3;white-space:normal;margin-top:4px;text-align:left; } }
.k-tx .tx-history .tx-table td.tx-result { white-space:nowrap; }
@media (max-width:900px) { .k-tx .tx-year-cols { display:flex;flex-direction:column;align-items:stretch;gap:12px; } }
@container k-tx-frame (max-width:900px) { .k-tx .tx-year-cols { display:flex;flex-direction:column;align-items:stretch;gap:12px; } }
@media (max-width:900px) { .k-tx .tx-year-cols>.tx-main, .k-tx .tx-year-cols>.tx-side { display:contents; } }
@container k-tx-frame (max-width:900px) { .k-tx .tx-year-cols>.tx-main, .k-tx .tx-year-cols>.tx-side { display:contents; } }
@media (max-width:900px) { .k-tx .tx-year-cols .tx-pay { order:1; } }
@container k-tx-frame (max-width:900px) { .k-tx .tx-year-cols .tx-pay { order:1; } }
@media (max-width:900px) { .k-tx .tx-year-cols .tx-kept { order:2; } }
@container k-tx-frame (max-width:900px) { .k-tx .tx-year-cols .tx-kept { order:2; } }
@media (max-width:900px) { .k-tx .tx-year-cols .tx-history-kick, .k-tx .tx-year-cols .tx-history { order:3; } }
@container k-tx-frame (max-width:900px) { .k-tx .tx-year-cols .tx-history-kick, .k-tx .tx-year-cols .tx-history { order:3; } }
.k-tx table tbody tr { transition: background-color 120ms cubic-bezier(.2, .7, .2, 1); }
.k-tx table tbody tr:hover { background: color-mix(in srgb, var(--text) 2.5%, transparent); }
.k-tx .portal-eyebrow { font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pk-label, var(--text-2)); }
.k-tx .request-row-actions { display:flex;align-items:center;gap:8px;justify-self:end; }
.k-tx .request-row-actions .portal-overview-row-action { min-height:34px; }
.k-tx .request-row-actions:has(.portal-overview-row-action:not([hidden]))>.proto-status { display:none; }

/* The block's own rules, not copies of the portal's. On a phone, a received document with a chip (Angelus is reviewing, With
   Angelus) and its date had 36px left for its name, a word or less a line (UI-073 stage 6, found comparing the boards): there
   the chip and the date go under the name. */
@media (max-width: 560px) { .k-tx .tx-docs .portal-overview-action-register li:has(> .request-row-actions .estimate-chip) { grid-template-columns: auto minmax(0, 1fr); } .k-tx .tx-docs .portal-overview-action-register li:has(> .request-row-actions .estimate-chip) > .request-row-actions { grid-column: 2; justify-self: start; flex-wrap: wrap; } }
@container k-tx-frame (max-width: 560px) { .k-tx .tx-docs .portal-overview-action-register li:has(> .request-row-actions .estimate-chip) { grid-template-columns: auto minmax(0, 1fr); } .k-tx .tx-docs .portal-overview-action-register li:has(> .request-row-actions .estimate-chip) > .request-row-actions { grid-column: 2; justify-self: start; flex-wrap: wrap; } }

/* Today, the shared block (UI-073 stage 3; app/kit/blocks/today.js). The approved Today M4 boards in kit tokens: live Today and
   the boards load this same file (the portal through /kit-portal.css, the boards through kit-additions.css). No style
   attributes, data: URLs or scripts (the portal's CSP): a number per element (a delay) is a stepped class (k-td-dN).
   Widths are the block's own (container k-td), so a phone board on a wide screen reads as a phone, as the year block does.
   Motion (Sonny 9/30): every module fades in 160ms; the first view of a session (.is-first on an ancestor: the portal's session
   flag, a board's first: true) runs the sequence, slower and in order: figures share one entrance, rows arrive one by one,
   the balance line draws. The animation names come from --tm-* so a board's Replay control can restart them. Nothing blocks
   a click; reduced motion shows the finished page. */
.k-td { --k-td-e: cubic-bezier(.2, .8, .2, 1); --k-td-e-out: cubic-bezier(.16, 1, .3, 1); --k-td-e-io: cubic-bezier(.65, 0, .35, 1);
  --k-td-ink: var(--pk-bar, var(--ink)); --k-td-raise: 0 14px 36px rgba(21, 23, 28, .12);
  container: k-td / inline-size; min-width: 0; }
.k-td-body { min-width: 0; }
.k-td-grid { container: k-tdg / inline-size; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 28px 20px; align-items: stretch; padding: 18px 32px 20px 40px; }
.k-td-grid > * { min-width: 0; }
.k-td-body.is-split .k-td-grid { padding-right: 24px; }
.k-td-span-3 { grid-column: span 3; } .k-td-span-4 { grid-column: span 4; } .k-td-span-5 { grid-column: span 5; } .k-td-span-6 { grid-column: span 6; }
.k-td-span-7 { grid-column: span 7; } .k-td-span-12 { grid-column: span 12; }
@container k-tdg (max-width: 980px) { .k-td-span-3, .k-td-span-4, .k-td-span-5 { grid-column: span 6; } .k-td-span-7 { grid-column: span 12; } }
@container k-tdg (max-width: 640px) { .k-td-span-3, .k-td-span-4, .k-td-span-5, .k-td-span-6 { grid-column: span 12; } }

/* ---- The ink cover: the day, the greeting, where things stand as figures. No button and no track on the ink. ---- */
.k-td-cover { position: relative; overflow: hidden; padding: 34px 32px 104px 40px; color: var(--ink-text);
  background: radial-gradient(90% 160% at 100% 0%, color-mix(in srgb, var(--navy) 38%, var(--k-td-ink)) 0, var(--k-td-ink) 70%); }
.k-td-cover.is-flat { padding-bottom: 34px; }
.k-td-contour { position: absolute; right: -60px; bottom: -80px; width: 900px; max-width: none; height: auto; fill: none; stroke: var(--on-dark); stroke-opacity: .06; stroke-width: 1.2; pointer-events: none; }
.k-td-cover > :not(.k-td-contour) { position: relative; }
.k-td-kicker { margin: 0; line-height: normal; font-size: 11.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sand); }
.k-td-cover > .k-td-kicker { color: var(--gold); }
.k-td-cover > h1 { margin: 6px 0 0; font-family: var(--font-serif); font-size: 36px; font-weight: 400; line-height: 1.1; letter-spacing: normal; color: var(--on-dark); }
.k-td-figs { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 28px; border-top: 1px solid rgba(255, 255, 255, .55); }
.k-td-figs.n1 { grid-template-columns: minmax(0, 1fr); } .k-td-figs.n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.k-td-fig { display: flex; flex-direction: column; min-width: 0; padding: 16px 24px 0 0; color: inherit; text-decoration: none; }
.k-td-fig + .k-td-fig { padding-left: 24px; border-left: 1px solid var(--ink-line); }
.k-td-fig > span { font-size: 12.5px; font-weight: 500; color: var(--ink-text); }
.k-td-fig > b { margin: 6px 0 4px; font-family: var(--font-serif); font-weight: 400; font-size: 42px; line-height: 1.05; letter-spacing: -.01em; font-variant-numeric: tabular-nums; color: var(--on-dark); }
.k-td-fig > small { font-size: 12.5px; line-height: 1.5; color: var(--ink-muted); }
a.k-td-fig:hover > b { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .12em; }
.k-td .short { display: none; }
/* A return's five steps, a position on a scale and not a share. */
.k-td-steps { display: flex; gap: 3px; width: 120px; margin-top: 8px; }
.k-td-steps > i { flex: 1; height: 3px; border-radius: 2px; background: var(--line); }
.k-td-steps > i.on { background: var(--navy); }
.k-td-cover .k-td-steps > i { background: var(--ink-3); } .k-td-cover .k-td-steps > i.on { background: var(--gold); }
/* The season: line art standing on the figures' rule, right of the greeting, fading in from its left so it never reaches the words. */
.k-td-season { position: absolute; right: 0; bottom: calc(100% + 1px); width: min(560px, 48%); height: auto; aspect-ratio: 560 / 120; overflow: visible; pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 40%); mask-image: linear-gradient(90deg, transparent 0, #000 40%); }
.k-td-season :is(path, circle) { fill: none; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.k-td-season .g { stroke: var(--gold); stroke-opacity: .72; } .k-td-season .c { stroke: var(--ink-brand); stroke-opacity: .34; } .k-td-season .s { stroke: var(--sand-dot); stroke-opacity: .75; }
.k-td-season .o { stroke: color-mix(in srgb, var(--olive) 50%, var(--ink-brand)); stroke-opacity: .55; }
.k-td-season .f { stroke-opacity: .2; } .k-td-season .g.f { stroke-opacity: .34; }
.k-td-season .dot { stroke: none; fill: var(--ink-brand); fill-opacity: .5; } .k-td-season .dot.g { fill: var(--gold); fill-opacity: .8; }

/* ---- For you (or the welcome) and the note, or Your projects, rise over the cover's edge. ---- */
.k-td-raised-row { grid-column: 1 / -1; position: relative; z-index: 1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; margin-top: -72px; }
.k-td-raised-row > .k-td-foryou { grid-column: span 7; }
.k-td-raised-row > :is(.k-td-notes, .k-td-projects) { grid-column: span 5; }
.k-td-raised-row > .k-td-projects { align-self: start; }
.k-td-raised-row.is-single > * { grid-column: 1 / -1; }
/* Got it sets the last note aside in place (the page's script removes it): its column goes and For you takes the row. */
.k-td-raised-row > .k-td-notes:empty { display: none; }
.k-td-raised-row:has(> .k-td-notes:empty) > .k-td-foryou { grid-column: 1 / -1; }
@container k-tdg (max-width: 980px) { .k-td-raised-row > *, .k-td-raised-row > :is(.k-td-foryou, .k-td-notes, .k-td-projects) { grid-column: 1 / -1; } }
.k-td-foryou { display: flex; flex-direction: column; min-width: 0; }
.k-td-foryou > :is(.k-slot, .k-td-card) { flex: 1; display: flex; flex-direction: column; }
.k-td-foryou > .k-td-card, .k-td-foryou > .k-slot > :first-child { box-shadow: var(--k-td-raise); }
.k-td-foryou > .k-slot > :first-child { flex: 1; }
.k-td-standing > p, .k-td-welcome > p { margin: 0; padding: 16px 18px; font-size: 13.5px; line-height: 1.5; color: var(--text-2); }
.k-td-welcome > p { padding-bottom: 4px; }

/* ---- The advisor's note on warm paper, set aside with Got it; the verse its closing strip. ---- */
.k-td-notes { display: flex; flex-direction: column; gap: 20px; min-width: 0; align-self: start; }
.k-td-note { position: relative; display: flex; flex-direction: column; border: 1px solid var(--note-line); border-radius: var(--r-card); background: var(--note-wash); box-shadow: var(--k-td-raise); }
.k-td-note::before { content: ""; position: absolute; left: 22px; top: -1px; width: 36px; height: 3px; border-radius: 0 0 2px 2px; background: var(--gold); }
.k-td-note-body { display: flex; flex-direction: column; flex: 1; gap: 14px; padding: 22px 22px 20px; }
.k-td-note-from { display: flex; align-items: center; gap: 12px; padding-right: 28px; }
.k-td-note-from .k-td-av { width: 44px; height: 44px; font-size: 14px; background: var(--navy); color: var(--on-dark); box-shadow: none; }
.k-td-note-from .k-td-two > b { font-size: 15px; font-weight: 600; }
.k-td-note-text { display: flex; flex-direction: column; gap: 10px; font-size: 14px; line-height: 1.6; color: var(--text); overflow-wrap: anywhere; }
.k-td-note-text p { margin: 0; max-width: 680px; }
.k-td-note-text a { color: var(--navy); font-weight: 500; text-decoration: underline; text-underline-offset: .2em; }
.k-td-more, .k-td-more-label { display: none; }
.k-td-verse { margin-top: auto; padding: 14px 22px 16px; border-top: 1px solid var(--note-line); }
.k-td-verse > p { margin: 0; max-width: 680px; font-size: 14px; line-height: 1.5; color: var(--text-2); }
.k-td-verse > small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--text-3); }
.k-td-note-acts { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; }
.k-td-sign { font-size: 14px; font-weight: 600; color: var(--text); }
.k-td-note-set { position: absolute; top: 10px; right: 10px; margin: 0; }
.k-td-note-x { display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--text-4); cursor: pointer; }
.k-td-note-x:hover { background: var(--quiet); color: var(--text); }
.k-td-note-x .k-td-icon { width: 14px; height: 14px; }

/* ---- Cards and open sections ---- */
.k-td-card { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); }
.k-td-card.is-raised { box-shadow: var(--k-td-raise); }
.k-td-card-head { display: flex; align-items: baseline; gap: 12px; padding: 14px 18px 10px; border-bottom: 1px solid var(--line); }
.k-td-card-head h2 { margin: 0; font-size: 14.5px; font-weight: 600; line-height: normal; color: var(--text); }
.k-td-card-head h2 a { color: inherit; text-decoration: none; } .k-td-card-head h2 a:hover { text-decoration: underline; }
.k-td-card-head > .k-td-state { margin-left: auto; }
.k-td-link { margin-left: auto; padding: 0; font-size: 13px; font-weight: 500; color: var(--text); text-decoration: none; white-space: nowrap; }
.k-td-link::after { content: "\2192"; display: inline-block; margin-left: 5px; opacity: 0; transform: translateX(-4px); transition: opacity 150ms var(--k-td-e), transform 150ms var(--k-td-e); }
.k-td-link:is(:hover, :focus-visible)::after { opacity: 1; transform: none; }
label.k-td-link::after { content: none; }
.k-td-open { min-width: 0; }
.k-td-kick { display: flex; align-items: baseline; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--text); }
.k-td-body > p, .k-td .k-td-body { min-width: 0; }
.k-td-card > .k-td-body { flex: 1; padding: 12px 18px 14px; }
.k-td-card > .k-td-body > p { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--text-2); }
.k-td-card > .k-td-body > p + p { margin-top: 6px; }
.k-td-meta { font-size: 12.5px; color: var(--text-3); } .k-td-card > .k-td-body > .k-td-meta { font-size: 12.5px; color: var(--text-3); }
.k-td-meta a { color: var(--navy); font-weight: 500; text-decoration: none; } .k-td-meta a:hover { text-decoration: underline; }
.k-td-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 18px 14px; }
.k-td-card > .k-td-acts:last-child { margin-top: auto; }
.k-td .k-btn > .k-td-icon { width: 14px; height: 14px; }
/* A row: open on its card's hairlines; the chevron leans in on hover. */
.k-td-rows { margin: 0; padding: 0; list-style: none; }
.k-td-row { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 12px 18px; border-top: 1px solid var(--line-soft); color: inherit; text-decoration: none; }
.k-td-rows > li:first-child > .k-td-row { border-top: 0; }
.k-td-row:hover { background: var(--quiet); }
.k-td-two { display: flex; flex-direction: column; min-width: 0; }
.k-td-row > .k-td-two { flex: 1; }
.k-td-two > b, .k-td-two > span:first-child { font-size: 13px; font-weight: 400; line-height: 1.3; color: var(--text); }
.k-td-two > small { margin-top: 0; font-size: 12px; line-height: 1.3; color: var(--text-3); }
.k-td-team > .k-td-two > span:first-child { font-size: 13.5px; font-weight: 500; }
.k-td-team > .k-td-two > small { font-size: 12.5px; }
.k-td-chev { flex: none; display: grid; color: var(--text-3); transition: transform 150ms var(--k-td-e), color 150ms var(--k-td-e); }
.k-td-chev .k-td-icon { width: 15px; height: 15px; }
.k-td-row:hover .k-td-chev { transform: translateX(3px); color: var(--text-2); }
.k-td-row .k-td-steps { margin-top: 8px; }
/* Who has it: With you on sand (the reader's turn), With Angelus quiet. No navy: navy is the primary action. */
.k-td-state { flex: none; padding: 2px 9px; border-radius: 999px; background: var(--quiet); font-size: 12px; font-weight: 500; white-space: nowrap; color: var(--text-3); }
.k-td-state.you { background: var(--sand-tint); color: var(--text); font-weight: 600; }
.k-td-projects > .k-td-rows { flex: 1 1 auto; }
.k-td-grid > .k-td-projects { align-self: start; }
.k-td-team { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 12px 18px; border-top: 1px solid var(--line); }
.k-td-team.is-alone { justify-content: flex-end; }
.k-td-team > .k-td-two { flex: 1; }
.k-td-avs { display: flex; }
.k-td-av { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--navy-tint); color: var(--navy); font-size: 11.5px; font-weight: 600; box-shadow: 0 0 0 2px var(--surface); }
.k-td-av + .k-td-av { margin-left: -6px; }
/* Giving, on the quiet card: the figure, the goal in words (no bar), then the gifts. */
.k-td-quiet { border-color: transparent; background: var(--quiet); }
.k-td-quiet .k-td-row { border-top-color: var(--line); }
.k-td-quiet .k-td-rows > li:first-child > .k-td-row { border-top: 1px solid var(--line); }
.k-td-quiet .k-td-row:hover { background: color-mix(in srgb, var(--surface) 60%, var(--quiet)); }
.k-td-big { display: flex; flex-direction: column; min-width: 0; padding: 12px 18px 14px; }
.k-td-big > span { font-size: 12.5px; font-weight: 500; color: var(--text-3); }
.k-td-big > b { margin: 6px 0 4px; font-family: var(--font-serif); font-weight: 400; font-size: 42px; line-height: 1.05; letter-spacing: -.01em; font-variant-numeric: tabular-nums; color: var(--text); }
.k-td-big > small { font-size: 12.5px; line-height: 1.5; color: var(--text-3); }
.k-td-big small > b { font-weight: 600; color: var(--text); }
.k-td-gifts .k-td-row { padding: 10px 18px; }
.k-td-giving > .k-td-big { padding: 10px 18px 12px; }
.k-td-amt { flex: none; font-size: 13.5px; font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--text); }
/* Balance history, open on the page ground: the figure, then one line at its drawn width, shrinking only when narrower. */
.k-td-bal .k-td-big { padding: 16px 0 0; }
.k-td-chart { display: block; max-width: 100%; height: auto; margin-top: 14px; overflow: visible; }
.k-td-chart .ax { fill: none; stroke: var(--control-strong); stroke-width: 1; }
.k-td-chart .area { fill: var(--navy); fill-opacity: .07; }
.k-td-chart .line { fill: none; stroke: var(--navy); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; }
.k-td-chart .end { fill: var(--navy); stroke: var(--surface); stroke-width: 2.5; }
.k-td-chart .lab { font-size: 11.5px; font-weight: 500; fill: var(--text-3); } .k-td-chart .lab-x { font-weight: 400; fill: var(--text-5); }
.k-td-pt > :not(rect) { opacity: 0; transition: opacity 120ms var(--k-td-e); } .k-td-pt:hover > * { opacity: 1; }
.k-td-chart .pt-guide { fill: none; stroke: var(--text-5); stroke-width: 1; }
.k-td-chart .pt-dot { fill: var(--navy); stroke: var(--surface); stroke-width: 2; }
.k-td-chart .pt-tip rect { fill: var(--k-td-ink); } .k-td-chart .pt-tip text { font-size: 11.5px; font-weight: 500; fill: var(--on-dark); }

/* ---- The Community: the event with its date tile on the left, each item in its kind's colour on the right. ---- */
.k-td-c4 { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 0 36px; align-items: start; padding-top: 18px; }
.k-td-c4:not(:has(.k-td-c4-event)), .k-td-c4:not(:has(.k-td-list)) { grid-template-columns: minmax(0, 1fr); }
.k-td-c4-event { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 22px; align-items: stretch; }
.k-td-artband { overflow: hidden; line-height: 0; border-radius: 12px; background: linear-gradient(180deg, color-mix(in srgb, var(--gold) 16%, var(--note-wash)), var(--note-wash)); }
.k-td-art { display: block; width: 100%; height: 100%; min-height: 220px; max-width: none; transform-origin: 70% 100%; transition: transform 170ms var(--k-td-e); }
.k-td-c4-event:hover .k-td-art { transform: scale(1.03); }
.k-td-event { display: flex; flex-direction: column; justify-content: center; gap: 8px; min-width: 0; }
.k-td-event p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--text-2); }
.k-td-event p.k-td-when { font-size: 12.5px; color: var(--text-3); }
.k-td-c4-head { display: flex; align-items: flex-start; gap: 14px; }
.k-td-c4-head h3 { margin: 4px 0 0; display: block; font-size: 18px; font-weight: 600; line-height: 1.35; color: var(--text); }
.k-td-c4-head h3 a { color: inherit; text-decoration: none; } .k-td-c4-head h3 a:hover { text-decoration: underline; }
.k-td-date { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; flex: none; width: 44px; height: 48px; border: 1px solid var(--navy-ring); border-radius: var(--r-control); background: var(--navy-wash); line-height: 1; }
.k-td-date > small { font-size: 10.5px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--text-4); }
.k-td-date > b { margin-top: 4px; font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--text); }
.k-td-list .k-td-row { padding: 10px 0; }
.k-td-list > li:first-child > .k-td-row { border-top: 0; }
.k-td-list .k-td-row:hover { background: var(--surface); box-shadow: -10px 0 0 var(--surface), 10px 0 0 var(--surface); }
.k-td-community.is-day-one .k-td-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; }
.k-td-community.is-day-one .k-td-list > li:nth-child(2) > .k-td-row { border-top: 0; }
.k-td-tile { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: var(--r-control); }
.k-td-tile .k-td-icon { width: 16px; height: 16px; }
.k-td-tile.resource { background: var(--sand-tint); color: var(--sand); }
.k-td-tile.update { background: var(--plum-tint); color: var(--plum); }
.k-td-tile.course { background: var(--olive-tint); color: var(--olive); }
.k-td-tile.event { background: var(--navy-tint); color: var(--navy); }
.k-td-marks { display: flex; gap: 3px; margin-top: 6px; }
.k-td-marks > i { width: 20px; height: 4px; border-radius: 2px; background: var(--line); }
.k-td-marks > i.on { background: var(--olive); } .k-td-marks > i.now { background: color-mix(in srgb, var(--olive) 45%, var(--line)); }
@container k-tdg (max-width: 760px) { .k-td-c4 { grid-template-columns: minmax(0, 1fr); gap: 18px 0; } .k-td-c4-event { grid-template-columns: minmax(0, 1fr); gap: 16px; } .k-td-c4 .k-td-art { min-height: 0; height: 110px; } .k-td-community.is-day-one .k-td-list { grid-template-columns: minmax(0, 1fr); } }

/* ---- First arrival. A module's start (ms) is a stepped class; an element's own offset inside it is --o. ---- */
.k-td-d0 { --d: 0; } .k-td-d120 { --d: 120; } .k-td-d300 { --d: 300; } .k-td-d600 { --d: 600; } .k-td-d700 { --d: 700; } .k-td-d1550 { --d: 1550; }
.k-td-d1650 { --d: 1650; } .k-td-d1700 { --d: 1700; } .k-td-d1750 { --d: 1750; } .k-td-d1850 { --d: 1850; } .k-td-d2000 { --d: 2000; }
@keyframes k-td-rise { from { opacity: 0; transform: translateY(8px); } }
@keyframes k-td-risesm { from { opacity: 0; transform: translateY(4px); } }
@keyframes k-td-fade { from { opacity: 0; } }
@keyframes k-td-grow { from { transform: scaleX(0); } }
@keyframes k-td-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.k-td-in { animation: k-td-fade 160ms ease-out backwards; }
.is-first .k-td-in { animation: var(--tm-rise, k-td-rise) 420ms var(--k-td-e) backwards; animation-delay: calc(var(--d, 0) * 1ms); }
.k-td-foryou .k-slot li:nth-child(1) { --o: 140; } .k-td-foryou .k-slot li:nth-child(2) { --o: 220; } .k-td-foryou .k-slot li:nth-child(3) { --o: 300; }
.k-td-foryou .k-slot li:nth-child(4) { --o: 380; } .k-td-foryou .k-slot li:nth-child(n+5) { --o: 460; }
.k-td-rows > li:nth-child(1) { --o: 160; } .k-td-rows > li:nth-child(2) { --o: 240; } .k-td-rows > li:nth-child(3) { --o: 320; } .k-td-rows > li:nth-child(4) { --o: 400; } .k-td-rows > li:nth-child(n+5) { --o: 480; }
.k-td-team, .k-td-note-acts, .k-td-verse { --o: 400; }
.is-first :is(.k-td-foryou .k-slot li, .k-td-rows > li, .k-td-team, .k-td-note-acts, .k-td-verse) { animation: var(--tm-risesm, k-td-risesm) 300ms var(--k-td-e-out) backwards; animation-delay: calc((var(--d, 0) + var(--o, 0)) * 1ms); }
.is-first .k-td-fig > b { animation: var(--tm-risesm, k-td-risesm) 420ms var(--k-td-e-out) backwards; animation-delay: 60ms; }
.is-first .k-td-fig > small { animation: var(--tm-fade, k-td-fade) 400ms ease-out backwards; animation-delay: 220ms; }
.is-first .k-td-steps > i.on { transform-origin: left; animation: var(--tm-grow, k-td-grow) 400ms var(--k-td-e-io) backwards; animation-delay: calc((var(--d, 0) + 300) * 1ms); }
.is-first .k-td-season { animation: var(--tm-fade, k-td-fade) 900ms ease-out backwards; animation-delay: 520ms; }
.is-first .k-td-chart .line { animation: k-td-draw 800ms cubic-bezier(.45, 0, .2, 1) backwards; animation-delay: calc((var(--d, 0) + 260) * 1ms); }
.is-first .k-td-chart :is(.area, .end, .lab) { animation: var(--tm-fade, k-td-fade) 400ms ease-out backwards; animation-delay: calc((var(--d, 0) + 900) * 1ms); }
@media (prefers-reduced-motion: reduce) { .k-td *, .k-td *::before, .k-td *::after { animation: none !important; transition: none !important; } }

/* ---- A phone: its own composition. The cover keeps two figures and its drawing behind the greeting's end; For you rises over
   it; the note folds to three lines; the year is the agenda; each card is one column. ---- */
@container k-td (max-width: 700px) {
  .k-td .long { display: none; } .k-td .short { display: inline; }
  .k-td-cover { padding: 16px 16px 70px; } .k-td-cover.is-flat { padding-bottom: 20px; }
  .k-td-cover > h1 { z-index: 1; font-size: 34px; line-height: 1; text-shadow: 0 0 6px var(--k-td-ink), 0 0 14px var(--k-td-ink), 0 0 2px var(--k-td-ink); }
  .k-td-kicker { font-size: 12px; }
  .k-td-figs { margin-top: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-td-figs:has(> .k-td-season) > .k-td-fig:nth-child(n+4), .k-td-figs:not(:has(> .k-td-season)) > .k-td-fig:nth-child(n+3) { display: none; }
  .k-td-fig { padding: 10px 12px 0 0; } .k-td-fig + .k-td-fig { padding: 10px 0 0 12px; }
  .k-td-fig > b { font-size: 30px; }
  .k-td-fig > small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .k-td-season { width: 52%; aspect-ratio: 260 / 120; opacity: .75; overflow: hidden; }
  .k-td-grid { padding: 0 16px 8px; gap: 24px 0; }
  .k-td-raised-row { margin-top: -54px; gap: 16px; }
  .k-td-raised-row > * > :first-child, .k-td-note, .k-td-card.is-raised { box-shadow: 0 12px 28px rgba(21, 23, 28, .16); }
  .k-td-note-body { gap: 10px; padding: 16px 16px 14px; }
  .k-td-note-text { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .k-td-more { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); display: block; }
  .k-td-more-label { display: block; cursor: pointer; margin-left: 0; }
  .k-td-more:checked ~ .k-td-note-text { display: block; -webkit-line-clamp: unset; }
  .k-td-more:checked ~ .k-td-more-label { display: none; }
  .k-td-more:focus-visible ~ .k-td-more-label { outline: none; box-shadow: var(--focus-ring); }
  .k-td-note-acts { flex-wrap: wrap; }
  .k-td-sign, .k-td-verse { display: none; }
  .k-td-big { padding: 4px 16px 14px; } .k-td-bal .k-td-big { padding: 16px 0 0; }
  .k-td-big > b { font-size: 30px; }
  .k-td-card-head { padding: 14px 16px 12px; } .k-td-row { padding: 11px 16px; } .k-td-list .k-td-row { padding: 10px 0; }
  .k-td-card > .k-td-body { padding: 12px 16px 14px; } .k-td-acts { padding: 10px 16px 14px; }
  .k-td-team { padding: 12px 16px; }
  .k-td-team > .k-td-two { flex: 1 1 60%; }
  .k-td-team > .k-btn { flex: 1 1 100%; justify-content: flex-start; padding-left: 0; }
  .k-td-gifts .k-td-row { min-height: 52px; }
}

/* Work, the shared block (UI-073 stage 10): the client's work and business pages: Your work (what is in progress, what
   is done), a project's own page (what we need from you, where things stand, its milestones, its requests, documents and
   messages), a business month (the months, where it stands, its transactions and statement) and Your business (each
   service's months, User access). Request rows on these pages are the Requests block's. The markup is the pages' own
   (client-service-work-view.js, client-business-month.js); its root is .k-kit.k-wk on the head and the body. Every rule is the
   portal's own for these parts, re-rooted here in the kit's tokens, so the pages and a board draw the same look from this file.
   The resets keep their place under the rest (@layer k-wk-base); the portal's component rules come first, so its other rules
   win where they meet, as they do on the portal.
   A width rule is written twice: for the window (the portal) and for a frame (@container k-wk-frame, a phone board). */
@layer k-wk-base;
.k-wk { --k-wk-inset: 16px; --k-wk-action: 96px; font-family: inherit; font-size: 13px; line-height: 1.55; color: var(--text); }
@media (max-width: 700px) { .k-wk { --k-wk-action: 84px; } }
@container k-wk-frame (max-width: 700px) { .k-wk { --k-wk-action: 84px; } }
@media (max-width: 560px) { .k-wk { --k-wk-inset: 12px; } }
@container k-wk-frame (max-width: 560px) { .k-wk { --k-wk-inset: 12px; } }
/* A link reads as its words unless a rule below colours it (the portal's own base); outside the base layer, so a board's kit link colour does not reach it. */
.k-wk a { color: inherit; text-decoration: none; }
@layer k-wk-base {
:where(.k-wk), :where(.k-wk) *, :where(.k-wk) ::before, :where(.k-wk) ::after { box-sizing: border-box; border-width: 0; border-style: solid; }
:where(.k-wk) :is(h1, h2, h3, p, ul, ol, dl, dd, fieldset) { margin: 0; }
:where(.k-wk) :is(ul, ol) { list-style: none; padding: 0; }
:where(.k-wk) :is(fieldset, legend) { padding: 0; }
:where(.k-wk) :is(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.k-wk) button { cursor: pointer; background: transparent; }
:where(.k-wk) a { color: inherit; text-decoration: none; text-underline-offset: .2em; }
:where(.k-wk) :is(img, svg) { display: block; max-width: 100%; }
:where(.k-wk) :is(h1, h2, h3) { font: inherit; }

}
.portal-page-head.k-wk, .k-wk .portal-page-head { display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px; }
.portal-page-head.k-wk h1, .k-wk .portal-page-head h1 { margin-top: 4px;
    color: var(--text);
    font-family: var(--font), ui-sans-serif, system-ui, sans-serif;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.08; }
@media (max-width: 39.9375rem) { .portal-page-head.k-wk, .k-wk .portal-page-head { align-items: start; } }
@container k-wk-frame (max-width: 39.9375rem) { .portal-page-head.k-wk, .k-wk .portal-page-head { align-items: start; } }
.portal-overview-panel.k-wk, .k-wk .portal-overview-panel { overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface); }
.k-wk .portal-overview-action-register { border-top: 0; }
.k-wk .portal-overview-action-register li { display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 56px;
  padding: 8px var(--k-wk-inset);
  border-top: 1px solid var(--line-soft);
  background: var(--surface);
  transition: background 120ms cubic-bezier(.2, .7, .2, 1); }
.k-wk .portal-overview-action-register li:hover { background: var(--ground); }
.k-wk .portal-overview-register-copy strong, .k-wk .portal-overview-register-copy small { display: block; }
.k-wk .portal-overview-register-copy strong { color: var(--text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3; }
.k-wk .portal-overview-register-copy small { margin-top: 2px;
  overflow: hidden;
  color: var(--text-3);
  font-size: 12.5px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap; }
.k-wk .portal-overview-action-register a, .k-wk .portal-overview-text-link { color: var(--navy);
  font-size: 13.5px;
  font-weight: 500;
  text-decoration: none; }
.k-wk .portal-overview-action-register a:hover, .k-wk .portal-overview-text-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.portal-overview-panel.k-wk, .k-wk .portal-overview-panel { overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface); }
.k-wk .portal-overview-section-title { display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px var(--k-wk-inset) 8px; }
.k-wk .portal-overview-section-title h2 { color: var(--text);
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.3; }
.k-wk .portal-overview-row-action { min-height: 34px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--control);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
    padding: 0 12px;
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none; }
.k-wk .portal-overview-row-action:hover { border-color: var(--text-5); background: var(--ground); }
.k-wk .portal-overview-row-action.is-primary { border-color: var(--navy); background: var(--navy); color: var(--on-dark); }
.k-wk .portal-overview-row-action.is-primary:hover { border-color: var(--navy-hover); background: var(--navy-hover); color: var(--on-dark); }
.k-wk h1 { font-family: var(--font-serif); }
.k-wk .portal-overview-register-copy { min-width:0; }
.k-wk .proto-request-list>li { position:relative; }
.k-wk .proto-request-list .portal-overview-register-copy small { white-space:normal;overflow:visible; }
.k-wk .proto-request-list p { margin-top:6px;font-size:12px;color:var(--text-2); }
.k-wk .proto-status { font-size:12px;color:var(--text-2); }
.k-wk .proto-status[data-state=needed] { color:var(--terra); }
.k-wk .portal-overview-row-action { gap:8px;white-space:normal;justify-content:center;text-align:center; }
.k-wk .portal-overview-row-action { min-width:var(--k-wk-action); }
.proto-panel-stack.k-wk, .k-wk .proto-panel-stack { display:grid;gap:16px; }
.k-wk .proto-panel-note, .k-wk .proto-panel-body { padding:var(--k-wk-inset);color:var(--text-2); }
.k-wk .contact-details { padding:0 var(--k-wk-inset); }
.k-wk .contact-details>div { display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,3fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--line); }
.k-wk .contact-details>div:last-child { border-bottom:0; }
.k-wk .contact-details dt { color:var(--text-2); }
.k-wk .contact-details dd { overflow-wrap:anywhere; }
.k-wk .proto-profile-grid .contact-details>div { grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);padding:12px 0;gap:12px; }
.proto-profile-other.k-wk>label, .k-wk .proto-profile-other>label { font-weight:600; }
.proto-profile-other.k-wk, .k-wk .proto-profile-other { padding:var(--k-wk-inset); }
.proto-profile-other.k-wk h2, .k-wk .proto-profile-other h2 { font-size:16px;font-weight:650; }
.proto-profile-other.k-wk .proto-employment, .k-wk .proto-profile-other .proto-employment { padding-left:0;padding-right:0; }
.proto-profile-other.k-wk>label, .k-wk .proto-profile-other>label { display:block;margin-top:16px; }
.proto-profile-other.k-wk>p, .k-wk .proto-profile-other>p { color:var(--text-2);margin:6px 0 12px;max-width:75ch; }
@media (max-width:700px) { .k-wk .proto-profile-grid .contact-details>div { grid-template-columns:minmax(0,1fr);gap:6px; } }
@container k-wk-frame (max-width:700px) { .k-wk .proto-profile-grid .contact-details>div { grid-template-columns:minmax(0,1fr);gap:6px; } }
@media (max-width:450px) { .portal-page-head.k-wk, .k-wk .portal-page-head { flex-wrap:wrap; } }
@container k-wk-frame (max-width:450px) { .portal-page-head.k-wk, .k-wk .portal-page-head { flex-wrap:wrap; } }
@media (max-width:450px) { .k-wk .contact-details>div { grid-template-columns:minmax(0,1fr);gap:6px; } }
@container k-wk-frame (max-width:450px) { .k-wk .contact-details>div { grid-template-columns:minmax(0,1fr);gap:6px; } }
@media (max-width:450px) { .k-wk .portal-overview-row-action { max-width:100%; } }
@container k-wk-frame (max-width:450px) { .k-wk .portal-overview-row-action { max-width:100%; } }
@media print { .portal-overview-panel.k-wk, .k-wk .portal-overview-panel { break-inside:avoid; } }
.portal-page-head.k-wk>div+div, .k-wk .portal-page-head>div+div { display:flex;gap:8px;flex-wrap:wrap;align-items:center; }
.k-wk .season-stop-card .season-line, .k-wk .season-stop-card .season-note { margin:0; }
.k-wk .season-now .season-line, .k-wk .season-now .season-note { margin:0; }
.k-wk .season-now .season-actions { margin-top:6px; }
.k-wk .season-line { font-size:16px;font-weight:650;color:var(--text);line-height:1.3; }
.k-wk .season-note { color:var(--text-2); }
.k-wk .season-state[data-state=needed] { color:var(--terra); }
.k-wk .season-state[data-state=received] { color:var(--olive); }
.k-wk .season-state[data-state=uploading] { color:var(--text-2);font-variant-numeric:tabular-nums; }
.k-wk .season-state[data-state=error] { color:var(--terra); }
.k-wk .season-note-card { display:flex;gap:12px;align-items:flex-start;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--pk-warm-stone, var(--quiet)); }
.k-wk .season-note-card p { margin:0;line-height:1.55; }
.k-wk .season-actions { margin-top:16px;display:flex;flex-wrap:wrap;gap:8px; }
.k-wk .season-note-card { transition:opacity .5s ease .9s,transform .5s ease .9s; }
.k-wk .season-reveal.is-animating .season-note-card { opacity:0;transform:translateY(6px);transition:none; }
.k-wk .proto-panel-body>.portal-overview-section-title, .proto-profile-other.k-wk>.portal-overview-section-title, .k-wk .proto-profile-other>.portal-overview-section-title { margin:calc(var(--k-wk-inset) * -1) calc(var(--k-wk-inset) * -1) 8px;padding:12px var(--k-wk-inset) 4px; }
.k-wk .proto-panel-body>:is(.portal-overview-action-register) { margin-left:calc(var(--k-wk-inset) * -1);margin-right:calc(var(--k-wk-inset) * -1); }
.k-wk .month-strip ol { display:flex;flex-wrap:wrap;gap:6px; }
.k-wk .month-strip a { display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font-size:12px; }
.k-wk .month-strip a i { width:8px;height:8px;border-radius:50%;border:2px solid var(--line); }
.k-wk .month-strip a.is-complete i { background:var(--olive);border-color:var(--olive); }
.k-wk .month-strip a.is-open i { border-color:var(--navy); }
.k-wk .month-strip a.is-yours i { background:var(--terra);border-color:var(--terra); }
.k-wk .month-strip a[aria-current=page] { border-color:var(--navy);background:var(--navy-tint);font-weight:650; }
.k-wk .month-strip small { color:var(--text-3); }
.k-wk .month-standing { display:grid;gap:6px; }
.k-wk .month-transactions { list-style:none;margin:12px 0 0;padding:0;display:grid;gap:12px; }
.k-wk .month-transactions>li { border-left:3px solid var(--line);padding-left:12px; }
.k-wk .month-figures { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0; }
.k-wk .month-figures>div { border-left:3px solid var(--line);padding-left:12px; }
.k-wk .month-figures dt { color:var(--text-2); }
.k-wk .month-figures dd { margin:6px 0 0;font-size:16px;font-variant-numeric:tabular-nums; }
.k-wk .month-road { display:grid;margin-top:12px; }
.k-wk .month-road li { display:grid;grid-template-columns:18px minmax(0,1fr);gap:12px;position:relative;padding-bottom:12px; }
.k-wk .month-road li:last-child { padding-bottom:0; }
.k-wk .month-road li::before { content:"";position:absolute;left:8px;top:18px;bottom:0;width:2px;background:var(--line); }
.k-wk .month-road li:last-child::before { display:none; }
.k-wk .month-road li.is-done::before { background:var(--navy); }
.k-wk .month-road i { width:18px;height:18px;border-radius:50%;background:var(--surface);border:2px solid var(--line);position:relative;z-index:1;margin-top:1px; }
.k-wk .month-road li.is-done i { background:var(--navy);border-color:var(--navy); }
.k-wk .month-road li.is-current i { border-color:var(--navy);box-shadow:0 0 0 4px var(--navy-tint); }
.k-wk .month-road span { color:var(--text);font-size:14px; }
.k-wk .month-road li.is-current span { font-weight:650; }
.k-wk .month-road small { display:block;color:var(--text-2);font-size:12px; }
.k-wk .month-lead { display:grid;gap:6px;margin-bottom:12px; }
.k-wk .month-business .month-strip { margin-bottom:12px; }
.k-wk .month-business .month-lead .season-actions { margin-top:8px; }
.k-wk .month-subhead { font-size:14px;font-weight:650;color:var(--text);margin:12px 0 6px; }
@media (prefers-reduced-motion:reduce) { .k-wk .season-note-card { transition:none; } }
.k-wk .season-state[data-state=answered], .k-wk .season-state[data-state=missing] { color:var(--text-2); }
.proto-profile-other.k-wk h2, .k-wk .proto-profile-other h2 { margin-bottom:12px; }
.proto-profile-other.k-wk .proto-past-jobs, .k-wk .proto-profile-other .proto-past-jobs { margin-top:8px;padding:0; }
.proto-profile-other.k-wk .proto-past-jobs summary, .k-wk .proto-profile-other .proto-past-jobs summary { min-height:40px;align-content:center;cursor:pointer;font-weight:600;color:var(--text-2);text-decoration:none; }
.proto-profile-other.k-wk .proto-past-jobs summary::marker, .k-wk .proto-profile-other .proto-past-jobs summary::marker { color:var(--text-3); }
.proto-profile-other.k-wk .proto-past-jobs .proto-employment, .k-wk .proto-profile-other .proto-past-jobs .proto-employment { padding:8px 0 0; }
@media (max-width:640px) { .k-wk .month-figures { grid-template-columns:1fr;gap:8px; } }
@container k-wk-frame (max-width:640px) { .k-wk .month-figures { grid-template-columns:1fr;gap:8px; } }
.k-wk .portal-overview-action-register li { position:relative; }
.k-wk .portal-overview-action-register li:hover { transform:none;box-shadow:none;background:transparent; }
.k-wk .portal-overview-action-register li:has(.portal-overview-register-copy>strong>a):hover { background:color-mix(in srgb,var(--surface) 88%,var(--navy-tint)); }
.k-wk .portal-overview-register-copy>strong>a::after { content:"";position:absolute;inset:0; }
.portal-page-head.k-wk, .k-wk .portal-page-head { margin-bottom:20px; }
.portal-page-head.k-wk h1, .k-wk .portal-page-head h1 { margin:0;font-family:var(--font-serif);font-size:36px;font-weight:400;line-height:1.06;letter-spacing:-.01em; }
.k-wk .portal-eyebrow { margin:0 0 6px;color:var(--sand);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase; }
@media (max-width:1023px) { .portal-page-head.k-wk h1, .k-wk .portal-page-head h1 { font-size:30px;line-height:1.08; } }
@container k-wk-frame (max-width:1023px) { .portal-page-head.k-wk h1, .k-wk .portal-page-head h1 { font-size:30px;line-height:1.08; } }
.k-wk .portal-eyebrow { font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pk-label, var(--text-2)); }

/* The block's own rules (not copies of the portal's). A project's page titles itself in the words' size, not the page title's:
   the portal's rule reads the page around the head (.portal-page), outside the root, so the block says it on the head and its
   body. */
.portal-page-head.k-wk:has(+ .k-wk.proto-panel-stack.work-view) h1 { font-family: inherit; font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: 0; }
@media (max-width: 700px) { .portal-page-head.k-wk:has(+ .k-wk.proto-panel-stack.work-view) h1 { font-size: 20px; } }
@container k-wk-frame (max-width: 700px) { .portal-page-head.k-wk:has(+ .k-wk.proto-panel-stack.work-view) h1 { font-size: 20px; } }
/* A project's requests run to its panel's edges, as its other lists do (the portal's rule names the Requests block's list,
   which a copy cannot reach). */
.k-wk .proto-panel-body > .k-req-rows { margin-left: calc(var(--k-wk-inset) * -1); margin-right: calc(var(--k-wk-inset) * -1); }
/* A project's head is a card of its own, its two buttons small; each milestone leads with a tile and says its state as a pill
   (the PortalWork board, Sonny 10/1). */
.portal-page-head.k-wk.work-head { align-items: center; margin-bottom: 16px; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.portal-page-head.k-wk.work-head .portal-overview-row-action { min-width: 0; min-height: 30px; padding: 0 12px; font-size: 13px; }
@media (max-width: 560px) { .portal-page-head.k-wk.work-head { padding: 16px; } }
@container k-wk-frame (max-width: 560px) { .portal-page-head.k-wk.work-head { padding: 16px; } }
.k-wk .work-steps > li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.k-wk .work-steps .kind-tile { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; }
.k-wk .work-steps .kind-tile > svg { width: 16px; height: 16px; }
.k-wk .work-steps .kind-tile[data-kind=task] { background: var(--olive-tint); color: var(--olive); }
.k-wk .work-steps .kind-tile[data-kind=signature] { background: var(--terra-tint); color: var(--terra); }
.k-wk .work-steps .kind-tile[data-kind=form] { background: var(--navy-tint); color: var(--navy); }
.k-wk .work-steps .kind-tile[data-kind=document] { background: var(--sand-tint); color: var(--sand); }
.k-wk .work-steps .season-state { padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 500; white-space: nowrap; }
.k-wk .work-steps .season-state[data-state=received] { background: var(--olive-tint); color: var(--olive); }
.k-wk .work-steps .season-state[data-state=needed] { background: var(--terra-tint); color: var(--terra); }
.k-wk .work-steps .season-state[data-state=answered] { background: var(--navy-tint); color: var(--navy); }
.k-wk .work-steps .season-state[data-state=missing] { background: var(--neutral-tint); color: var(--text-2); }

/* Your year, the shared block (UI-073; markup from year.js). Loaded by the boards (kit-boards build-kit) and by the portal
   (/kit-portal.css), so both draw it from this one file. Kit tokens only, read inside the block's own .k-kit scope.
   --k-page is the ground the block stands on (the season names and the track's gaps are cut in it); a host whose page is
   not the kit's ground sets it. */
.k-yr { container: k-yrm / inline-size; --k-page: var(--ground); --k-yr-ease: cubic-bezier(.2, .8, .2, 1); --k-yr-ease-out: cubic-bezier(.16, 1, .3, 1); --k-yr-ease-io: cubic-bezier(.65, 0, .35, 1); min-width: 0; }
.k-yr-kick { display: flex; align-items: baseline; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--text); }
.k-yr-kick > .k-kicker { margin: 0; font-size: 11.5px; letter-spacing: .08em; color: var(--sand); }
.k-yr-go { margin-left: auto; padding: 0; font-size: 13px; text-decoration: none; }
.k-yr-go > .short { display: none; }
/* The months track's legend (a business's year): finished olive, this month navy, ahead the track's grey. */
.k-yr-legend { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; white-space: nowrap; font-size: 12px; color: var(--text-3); }
.k-yr-legend > i { width: 14px; height: 6px; border-radius: 3px; background: var(--neutral-tint); }
.k-yr-legend > i:not(:first-child) { margin-left: 10px; }
.k-yr-legend > i.closed { background: var(--olive); }
.k-yr-legend > i.now { background: var(--navy); }
.k-yr-legend + .k-yr-go { margin-left: 18px; }
/* The agenda (under 1040px wide) has no track to read the legend against. */
@container k-yrm (width < 1040px) { .k-yr-legend { display: none; } .k-yr-legend + .k-yr-go { margin-left: auto; } }

/* Kinds: a colour each (Meetings in ink, Sonny 9/30). */
.k-yk-tax, .k-yk-payment, .k-yk-estimate { --kc: var(--gold); }
.k-yk-retirement, .k-yk-plan, .k-yk-close { --kc: var(--olive); }
.k-yk-giving, .k-yk-info { --kc: var(--sand-dot); }
.k-yk-meeting { --kc: var(--ink); }
.k-yk-payroll { --kc: var(--plum); }
.k-yk-doc, .k-yk-work, .k-yk-sales, .k-yk-care, .k-yk-other { --kc: var(--text-3); }

/* ---- The drawing ---- */
.k-yr-host { container: k-yr / inline-size; }
/* Three rows: the words above, the track (64px: season names, the track, the month ticks), the words below. The outer rows
   are as tall as the tallest words shown in them, so the drawing grows and shrinks with its moments and with the filter. */
.k-yr-cal { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 64px auto; margin: 24px 4px 0; }
.k-yr-phone { display: none; }
@container k-yr (width < 1040px) { .k-yr-cal { display: none; } .k-yr-phone { display: block; } }
.k-yr-draw { grid-row: 2; grid-column: 1; display: block; height: 64px; overflow: visible; }
.k-yr-seg { fill: var(--neutral-tint); stroke: var(--k-page); stroke-width: 2px; }
.k-yr-seg.done { fill: color-mix(in srgb, var(--olive) 55%, var(--surface)); }
.k-yr-seg.now { fill: var(--navy); }
.k-yr-seg.closed { fill: var(--olive); }
.k-yr-tick { stroke: var(--line); stroke-width: 1px; shape-rendering: crispEdges; }
.k-yr-tick-lab { font-size: 11.5px; fill: var(--text-5); }
.k-yr-today > line { stroke: var(--navy); stroke-width: 1.5px; }
.k-yr-today > circle { fill: var(--surface); stroke: var(--navy); stroke-width: 2px; }
.k-yr-today > circle.halo { fill: var(--navy-tint); stroke: none; }
.k-yr-today > text { font-size: 11.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; fill: var(--navy); }
.k-yr-seasons > text { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; fill: var(--text-4);
  paint-order: stroke; stroke: var(--k-page); stroke-width: 12px; stroke-linejoin: round; }
.k-yr-seasons > text.now { fill: var(--navy); }

/* A pin: a row across the drawing; its spacer (an <svg width="N%">) sets the anchor at its date. */
.k-yr-layer { transition: opacity 150ms var(--k-yr-ease), visibility 150ms; }
.k-yr-cal > .k-yr-layer { grid-row: 1 / 4; grid-column: 1; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; pointer-events: none; }
/* A moment is its two rows; every moment's words share their side's row, so the row is as tall as the tallest of them. */
.k-yr-pin { display: contents; }
.k-yr-row { grid-column: 1; display: flex; min-width: 0; transition: opacity 150ms var(--k-yr-ease); }
.k-yr-pin.up > .k-yr-words { grid-row: 1; align-self: end; }
.k-yr-pin.down > .k-yr-words { grid-row: 3; align-self: start; }
.k-yr-row.k-yr-mark { grid-row: 2; }
.k-yr-at { flex: none; height: 1px; }
.k-yr-anchor { position: relative; flex: none; width: 0; }
.k-yr-anchor > * { pointer-events: auto; }
.k-yr-anchor > i { position: absolute; left: -5px; top: 24px; z-index: 1; width: 10px; height: 10px; box-sizing: border-box; border-radius: 50%; border: 2px solid var(--kc, var(--text-2)); background: var(--surface); }
.k-yr-pin.next .k-yr-anchor > i { background: var(--kc, var(--navy)); box-shadow: 0 0 0 3px var(--navy-tint); }
.k-yr-mark > .k-yr-anchor::before { content: ""; position: absolute; left: 0; border-left: 1px solid var(--line); }
.k-yr-pin.up .k-yr-mark > .k-yr-anchor::before { top: -4px; height: 28px; }
.k-yr-pin.down .k-yr-mark > .k-yr-anchor::before { top: 34px; height: 30px; }
.k-yr-pin.end .k-yr-mark > .k-yr-anchor::before { left: auto; right: 0; }
.k-yr-lab { position: relative; box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 220px; margin: 0; padding: 0 0 0 12px; border: 0; border-left: 1px solid var(--line); background: none; color: inherit; font: inherit; text-align: left; cursor: default; transition: transform 150ms var(--k-yr-ease); }
button.k-yr-lab { cursor: pointer; }
.k-yr-pin.up .k-yr-lab { margin-bottom: 4px; }
.k-yr-pin.end .k-yr-lab { margin-left: -220px; align-items: flex-end; padding: 0 12px 0 0; border-left: 0; border-right: 1px solid var(--line); text-align: right; }
.k-yr-lab > small { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sand); }
.k-yr-pin.next .k-yr-lab > small { color: var(--navy); }
.k-yr-pin.done .k-yr-lab > small { color: var(--text-5); }
.k-yr-lab > b { font-size: 14px; font-weight: 600; line-height: 1.3; }
.k-yr-lab > b > a { color: inherit; text-decoration: none; }
.k-yr-lab > b > a:hover { text-decoration: underline; }
.k-yr-pin.done .k-yr-lab > b { font-weight: 500; color: var(--text-2); }
.k-yr-lab > span { font-size: 12.5px; color: var(--text-3); }
.k-yr-lab em, .k-yr-pop-row em, .k-yr-item em { font-style: normal; font-weight: 500; color: var(--terra); }
.k-yr-icon { display: inline-block; width: 14px; height: 14px; flex: none; }
.k-yr-lab > b > .k-yr-icon { margin-left: 4px; vertical-align: -2px; color: var(--text-4); }
.k-yr-lab:focus-visible, .k-yr-pips:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: 6px; }
.k-yr-nudge { position: relative; margin: 6px 0 0; padding: 6px 10px 6px 24px; border: 1px solid var(--note-line); border-radius: var(--r-control); background: var(--note-wash); font-size: 12.5px; line-height: 1.4; color: var(--text-2); text-align: left; }
.k-yr-nudge::before { content: ""; position: absolute; left: 10px; top: 11px; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.k-yr-nudge > b { font-weight: 600; color: var(--text); }

/* Hover or focus: the pin lifts, its neighbours dim, its actions show (a moment's one or two; a cluster's list). */
.k-yr-cal:has(.k-yr-anchor > :is(:hover, :focus-within)) .k-yr-pin:not(:has(.k-yr-anchor > :is(:hover, :focus-within))) > .k-yr-row { opacity: .4; }
.k-yr-pin:has(.k-yr-anchor > :is(:hover, :focus-within)) .k-yr-lab { transform: translateY(-2px); }
.k-yr-acts { position: absolute; z-index: 3; display: flex; gap: 6px; margin: 0; padding: 8px; border-radius: 10px; background: var(--surface); box-shadow: var(--shadow-float); white-space: nowrap;
  opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity 150ms var(--k-yr-ease), transform 150ms var(--k-yr-ease), visibility 150ms; }
.k-yr-lab > .k-yr-acts { left: 12px; top: calc(100% + 6px); }
.k-yr-pin.up .k-yr-lab > .k-yr-acts { top: auto; bottom: calc(100% + 6px); }
.k-yr-pin.end .k-yr-acts { left: auto; right: 12px; }
.k-yr-pin:has(.k-yr-anchor > :is(:hover, :focus-within)) .k-yr-acts { opacity: 1; visibility: visible; transform: none; }
.k-yr-acts.list { flex-direction: column; align-items: flex-start; gap: 5px; top: calc(100% + 8px); left: auto; right: 0; min-width: 220px; font-size: 12.5px; color: var(--text-2); }
.k-yr-pin.up .k-yr-acts.list { top: auto; bottom: calc(100% + 8px); }
.k-yr-clu:has(:popover-open) .k-yr-acts { display: none; }
.k-yr-acts.list > span { display: flex; align-items: center; gap: 8px; }
.k-yr-acts.list > .k-btn { margin-top: 4px; }
.k-yr-acts.list i, .k-yr-pop-row > i, .k-yr-pips > i, .k-yr-kind > i { flex-shrink: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--kc); }
.k-yr-pips { position: absolute; top: 22px; left: 0; z-index: 2; display: flex; gap: 2px; margin: 0; padding: 3px 4px; border: 0; border-radius: 8px; background: var(--surface); box-shadow: 0 0 0 1px var(--line); transform: translateX(-50%); cursor: pointer; transition: transform 150ms var(--k-yr-ease); }
.k-yr-pin:has(.k-yr-anchor > :is(:hover, :focus-within)) .k-yr-pips { transform: translateX(-50%) translateY(-2px); }

/* A cluster opened: anchored to its label, each moment with its nudge and actions. Esc or a click away closes it. */
.k-yr-pop { inset: auto; position-area: bottom span-left; position-try-order: most-height; position-try-fallbacks: flip-block; margin: 8px 0; width: 340px; max-height: min(360px, calc(100dvh - 32px)); overflow-y: auto; overscroll-behavior: contain;
  padding: 6px 0; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); box-shadow: var(--shadow-float); color: var(--text); font-family: var(--font); font-size: var(--fs-body);
  opacity: 1; transform: none; transition: opacity 150ms var(--k-yr-ease), transform 150ms var(--k-yr-ease), overlay 150ms allow-discrete, display 150ms allow-discrete; }
.k-yr-pop:not(:popover-open) { opacity: 0; transform: translateY(-4px); }
@starting-style { .k-yr-pop:popover-open { opacity: 0; transform: translateY(-4px); } }
@supports not (position-area: bottom) { .k-yr-pop { inset: 0; margin: auto; height: fit-content; max-width: calc(100vw - 32px); } }
.k-yr-pop-row { display: flex; gap: 12px; padding: 10px 16px; }
.k-yr-pop-row + .k-yr-pop-row { border-top: 1px solid var(--line-soft); }
.k-yr-pop-row > i { margin-top: 5px; }
.k-yr-pop-row > div { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
.k-yr-pop-row small { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sand); }
.k-yr-pop-row b { font-size: 14px; font-weight: 600; }
.k-yr-pop-row b > a { color: inherit; text-decoration: none; }
.k-yr-pop-row span { font-size: 12.5px; color: var(--text-3); }
.k-yr-pop-row p:not(.k-yr-nudge) { display: flex; gap: 6px; margin: 6px 0 0; }

/* ---- The type filter: a chip per kind; a checked chip is a hidden kind; All turns every kind off, or back on. Every
   combination of kinds is drawn once and the chips show the layer that matches. ---- */
.k-yr-kinds { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; }
.k-yr-kind { position: relative; display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 0 10px; border: 1px solid var(--line); border-radius: var(--r-control); background: var(--surface); font-size: 12.5px; color: var(--text-3); cursor: pointer; transition: border-color 120ms, color 120ms; }
.k-yr-kind:not(:has(:checked)) { border-color: var(--control-strong); color: var(--text); }
.k-yr-kind:has(:checked) > i { background: none; box-shadow: inset 0 0 0 1.5px var(--kc); }
.k-yr-kind:has(:focus-visible) { box-shadow: var(--focus-ring); }
.k-yr-kind > input, .k-yr-all.reset > button { position: absolute; opacity: 0; pointer-events: none; }
.k-yr-kinds:has(input:checked) > .k-yr-all.box, .k-yr-kinds:not(:has(input:checked)) > .k-yr-all.reset { display: none; }
.k-yr-kinds > .k-yr-all.reset { border-color: var(--line); color: var(--text-3); }
.k-yr-kinds:has(input[value=none]:checked) > .k-yr-kind:not(.k-yr-all):not(:has(:checked)) { border-color: var(--line); color: var(--text-3); }
.k-yr-kinds:has(input[value=none]:checked) > .k-yr-kind:not(.k-yr-all):not(:has(:checked)) > i { background: none; box-shadow: inset 0 0 0 1.5px var(--kc); }
.k-yr-kinds:has(input[value=none]:checked) > .k-yr-kind:not(.k-yr-all):has(:checked) { border-color: var(--control-strong); color: var(--text); }
.k-yr-kinds:has(input[value=none]:checked) > .k-yr-kind:not(.k-yr-all):has(:checked) > i { background: var(--kc); box-shadow: none; }
.k-yr-kind:has(input:disabled), .k-yr-kind:has(button:disabled) { cursor: default; }
/* One rule per kind in KINDS (year.js); year.test.js fails when a kind has none. */
.k-yr:has(input[value=tax]:not(:checked)) .k-yr-layer.no-tax, .k-yr:has(input[value=tax]:checked) .k-yr-layer:not(.no-tax),
.k-yr:has(input[value=payment]:not(:checked)) .k-yr-layer.no-payment, .k-yr:has(input[value=payment]:checked) .k-yr-layer:not(.no-payment),
.k-yr:has(input[value=estimate]:not(:checked)) .k-yr-layer.no-estimate, .k-yr:has(input[value=estimate]:checked) .k-yr-layer:not(.no-estimate),
.k-yr:has(input[value=doc]:not(:checked)) .k-yr-layer.no-doc, .k-yr:has(input[value=doc]:checked) .k-yr-layer:not(.no-doc),
.k-yr:has(input[value=plan]:not(:checked)) .k-yr-layer.no-plan, .k-yr:has(input[value=plan]:checked) .k-yr-layer:not(.no-plan),
.k-yr:has(input[value=meeting]:not(:checked)) .k-yr-layer.no-meeting, .k-yr:has(input[value=meeting]:checked) .k-yr-layer:not(.no-meeting),
.k-yr:has(input[value=giving]:not(:checked)) .k-yr-layer.no-giving, .k-yr:has(input[value=giving]:checked) .k-yr-layer:not(.no-giving),
.k-yr:has(input[value=retirement]:not(:checked)) .k-yr-layer.no-retirement, .k-yr:has(input[value=retirement]:checked) .k-yr-layer:not(.no-retirement),
.k-yr:has(input[value=work]:not(:checked)) .k-yr-layer.no-work, .k-yr:has(input[value=work]:checked) .k-yr-layer:not(.no-work),
.k-yr:has(input[value=close]:not(:checked)) .k-yr-layer.no-close, .k-yr:has(input[value=close]:checked) .k-yr-layer:not(.no-close),
.k-yr:has(input[value=payroll]:not(:checked)) .k-yr-layer.no-payroll, .k-yr:has(input[value=payroll]:checked) .k-yr-layer:not(.no-payroll),
.k-yr:has(input[value=info]:not(:checked)) .k-yr-layer.no-info, .k-yr:has(input[value=info]:checked) .k-yr-layer:not(.no-info),
.k-yr:has(input[value=sales]:not(:checked)) .k-yr-layer.no-sales, .k-yr:has(input[value=sales]:checked) .k-yr-layer:not(.no-sales),
.k-yr:has(input[value=care]:not(:checked)) .k-yr-layer.no-care, .k-yr:has(input[value=care]:checked) .k-yr-layer:not(.no-care),
.k-yr:has(input[value=other]:not(:checked)) .k-yr-layer.no-other, .k-yr:has(input[value=other]:checked) .k-yr-layer:not(.no-other) { opacity: 0; visibility: hidden; position: absolute; left: 0; right: 0; top: 0; }
/* Under "none": a layer is shown when it hides exactly the kinds whose boxes are unchecked. */
.k-yr:has(input[value=none]:checked) .k-yr-cal > .k-yr-layer { opacity: 1; visibility: visible; position: relative; inset: auto; }
.k-yr:has(input[value=none]:checked) .k-yr-railstack > .k-yr-layer { position: static; opacity: 1; visibility: visible; }
.k-yr:has(input[value=none]:checked):has(input[value=tax]:checked) .k-yr-layer.no-tax, .k-yr:has(input[value=none]:checked):has(input[value=tax]:not(:checked)) .k-yr-layer:not(.no-tax),
.k-yr:has(input[value=none]:checked):has(input[value=payment]:checked) .k-yr-layer.no-payment, .k-yr:has(input[value=none]:checked):has(input[value=payment]:not(:checked)) .k-yr-layer:not(.no-payment),
.k-yr:has(input[value=none]:checked):has(input[value=estimate]:checked) .k-yr-layer.no-estimate, .k-yr:has(input[value=none]:checked):has(input[value=estimate]:not(:checked)) .k-yr-layer:not(.no-estimate),
.k-yr:has(input[value=none]:checked):has(input[value=doc]:checked) .k-yr-layer.no-doc, .k-yr:has(input[value=none]:checked):has(input[value=doc]:not(:checked)) .k-yr-layer:not(.no-doc),
.k-yr:has(input[value=none]:checked):has(input[value=plan]:checked) .k-yr-layer.no-plan, .k-yr:has(input[value=none]:checked):has(input[value=plan]:not(:checked)) .k-yr-layer:not(.no-plan),
.k-yr:has(input[value=none]:checked):has(input[value=meeting]:checked) .k-yr-layer.no-meeting, .k-yr:has(input[value=none]:checked):has(input[value=meeting]:not(:checked)) .k-yr-layer:not(.no-meeting),
.k-yr:has(input[value=none]:checked):has(input[value=giving]:checked) .k-yr-layer.no-giving, .k-yr:has(input[value=none]:checked):has(input[value=giving]:not(:checked)) .k-yr-layer:not(.no-giving),
.k-yr:has(input[value=none]:checked):has(input[value=retirement]:checked) .k-yr-layer.no-retirement, .k-yr:has(input[value=none]:checked):has(input[value=retirement]:not(:checked)) .k-yr-layer:not(.no-retirement),
.k-yr:has(input[value=none]:checked):has(input[value=work]:checked) .k-yr-layer.no-work, .k-yr:has(input[value=none]:checked):has(input[value=work]:not(:checked)) .k-yr-layer:not(.no-work),
.k-yr:has(input[value=none]:checked):has(input[value=close]:checked) .k-yr-layer.no-close, .k-yr:has(input[value=none]:checked):has(input[value=close]:not(:checked)) .k-yr-layer:not(.no-close),
.k-yr:has(input[value=none]:checked):has(input[value=payroll]:checked) .k-yr-layer.no-payroll, .k-yr:has(input[value=none]:checked):has(input[value=payroll]:not(:checked)) .k-yr-layer:not(.no-payroll),
.k-yr:has(input[value=none]:checked):has(input[value=info]:checked) .k-yr-layer.no-info, .k-yr:has(input[value=none]:checked):has(input[value=info]:not(:checked)) .k-yr-layer:not(.no-info),
.k-yr:has(input[value=none]:checked):has(input[value=sales]:checked) .k-yr-layer.no-sales, .k-yr:has(input[value=none]:checked):has(input[value=sales]:not(:checked)) .k-yr-layer:not(.no-sales),
.k-yr:has(input[value=none]:checked):has(input[value=care]:checked) .k-yr-layer.no-care, .k-yr:has(input[value=none]:checked):has(input[value=care]:not(:checked)) .k-yr-layer:not(.no-care),
.k-yr:has(input[value=none]:checked):has(input[value=other]:checked) .k-yr-layer.no-other, .k-yr:has(input[value=none]:checked):has(input[value=other]:not(:checked)) .k-yr-layer:not(.no-other) { opacity: 0; visibility: hidden; position: absolute; left: 0; right: 0; top: 0; }

/* ---- The agenda (a phone, or any container under 1040px): today, then each month's dates, one day at a time. ---- */
.k-yr-railstack { position: relative; }
.k-yr-agenda { display: flex; flex-direction: column; margin-top: 10px; }
.k-yr-month { margin: 18px 0 2px; padding-bottom: 6px; border-bottom: 1px solid var(--text); font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--text-2); }
.k-yr-day { position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 10px 0 10px 8px; border-bottom: 1px solid var(--line-soft); }
.k-yr-day:last-child { border-bottom: 0; }
/* Today is the current row (the kit's .k-cur): the navy wash and the inset bar, on the whole day. */
.k-yr-day.cur { background: var(--navy-wash); }
.k-yr-day.cur::before { content: ""; position: absolute; left: 3px; top: 7px; bottom: 7px; width: 3px; border-radius: 3px; background: var(--navy); }
.k-yr-day.cur .k-yr-date > b { color: var(--navy); }
.k-yr-date { display: flex; flex-direction: column; align-items: center; flex: 0 0 40px; padding-top: 1px; }
.k-yr-date > b { font-family: var(--font-serif); font-weight: 400; font-size: 26px; line-height: 1; color: var(--text); font-variant-numeric: tabular-nums; }
.k-yr-date > small { margin-top: 3px; font-size: 11.5px; color: var(--text-4); }
.k-yr-today-line { display: flex; flex-direction: column; min-height: 36px; padding-left: 18px; }
.k-yr-today-line > b { font-size: 14.5px; font-weight: 600; line-height: 1.3; color: var(--navy); }
.k-yr-today-line > small { margin-top: 2px; font-size: 12.5px; line-height: 1.4; color: var(--text-2); }
.k-yr-day-items { display: flex; flex-direction: column; gap: 8px; flex: 1 1 auto; min-width: 0; }
.k-yr-item > summary, .k-yr-item-head { display: flex; align-items: flex-start; gap: 10px; min-height: 36px; list-style: none; }
.k-yr-item > summary { cursor: pointer; }
.k-yr-item > summary::-webkit-details-marker { display: none; }
.k-yr-item > summary > i, .k-yr-item-head > i { flex-shrink: 0; width: 8px; height: 8px; margin-top: 6px; border-radius: 50%; background: var(--kc); }
.k-yr-two { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.k-yr-two > b { font-size: 14.5px; font-weight: 500; line-height: 1.3; color: var(--text); }
.k-yr-item.next .k-yr-two > b { font-weight: 600; }
.k-yr-two > small { margin-top: 2px; font-size: 12.5px; line-height: 1.4; color: var(--text-3); }
.k-yr-item > summary > .k-yr-icon { margin-top: 2px; color: var(--text-4); transition: transform 150ms var(--k-yr-ease); }
.k-yr-item[open] > summary > .k-yr-icon { transform: rotate(90deg); }
.k-yr-item > .k-yr-nudge { margin: 6px 0 0 18px; }
.k-yr-item > .k-yr-acts { position: static; display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 2px 18px; padding: 0; background: none; box-shadow: none; white-space: normal; opacity: 1; visibility: visible; transform: none; }
.k-yr-none { margin: 14px 0 0; font-size: 13px; color: var(--text-3); }
/* A narrow module (a phone, or a phone board on a wide screen): the short link, and the chips scroll in one row. */
@container k-yrm (max-width: 700px) { .k-yr-go > .long { display: none; } .k-yr-go > .short { display: inline; } .k-yr-kinds { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 12px -16px 4px 0; padding-right: 16px; } .k-yr-kind { flex-shrink: 0; } }

/* ---- First arrival: the host marks it with .is-first on an ancestor (the portal's session flag; the board's frame). The
   fill sweeps from the start to today (800ms from 150ms), a moment arrives as the fill reaches it, those after today follow,
   today's marker last. The board's Replay control swaps the --tm-* names to restart it. ---- */
@keyframes k-yr-risesm { from { opacity: 0; transform: translateY(4px); } }
@keyframes k-yr-fade { from { opacity: 0; } }
@keyframes k-yr-sweep { from { clip-path: inset(0 100% 0 0); } }
.k-yd-0 { --d: 0; } .k-yd-1 { --d: 100; } .k-yd-2 { --d: 200; } .k-yd-3 { --d: 300; } .k-yd-4 { --d: 400; } .k-yd-5 { --d: 500; } .k-yd-6 { --d: 600; } .k-yd-7 { --d: 700; } .k-yd-8 { --d: 800; } .k-yd-9 { --d: 900; } .k-yd-10 { --d: 1000; }
.k-yd-11 { --d: 1100; } .k-yd-12 { --d: 1200; } .k-yd-13 { --d: 1300; } .k-yd-14 { --d: 1400; } .k-yd-15 { --d: 1500; } .k-yd-16 { --d: 1600; } .k-yd-17 { --d: 1700; } .k-yd-18 { --d: 1800; } .k-yd-19 { --d: 1900; } .k-yd-20 { --d: 2000; }
.k-yd-21 { --d: 2100; } .k-yd-22 { --d: 2200; } .k-yd-23 { --d: 2300; } .k-yd-24 { --d: 2400; } .k-yd-25 { --d: 2500; } .k-yd-26 { --d: 2600; } .k-yd-27 { --d: 2700; } .k-yd-28 { --d: 2800; } .k-yd-29 { --d: 2900; } .k-yd-30 { --d: 3000; }
.k-yo-0 { --o: 0; } .k-yo-1 { --o: 100; } .k-yo-2 { --o: 200; } .k-yo-3 { --o: 300; } .k-yo-4 { --o: 400; } .k-yo-5 { --o: 500; } .k-yo-6 { --o: 600; } .k-yo-7 { --o: 700; } .k-yo-8 { --o: 800; } .k-yo-9 { --o: 900; } .k-yo-10 { --o: 1000; }
.k-yo-11 { --o: 1100; } .k-yo-12 { --o: 1200; } .k-yo-13 { --o: 1300; } .k-yo-14 { --o: 1400; } .k-yo-15 { --o: 1500; } .k-yo-16 { --o: 1600; } .k-yo-17 { --o: 1700; } .k-yo-18 { --o: 1800; } .k-yo-19 { --o: 1900; } .k-yo-20 { --o: 2000; }
.is-first .k-yr-pin > .k-yr-row { animation: var(--tm-risesm, k-yr-risesm) 300ms var(--k-yr-ease-out) backwards; animation-delay: calc((var(--d, 0) + var(--o, 0)) * 1ms); }
.is-first .k-yr-day { animation: var(--tm-risesm, k-yr-risesm) 300ms var(--k-yr-ease-out) backwards; animation-delay: calc((var(--d, 0) + 300) * 1ms); }
.is-first .k-yr-fill { animation: var(--tm-sweep, k-yr-sweep) 800ms var(--k-yr-ease-io) backwards; animation-delay: calc((var(--d, 0) + 150) * 1ms); }
.is-first .k-yr-today { animation: var(--tm-fade, k-yr-fade) 300ms ease-out backwards; animation-delay: calc((var(--d, 0) + 950) * 1ms); }
@media (prefers-reduced-motion: reduce) { .k-yr *, .k-yr *::before, .k-yr *::after { animation: none !important; transition: none !important; } }

/* The kit on the portal (UI-073): the last part of /kit-portal.css (portal-kit.js). A block on a portal page reads the
   kit's tokens inside its .k-kit scope; this file gives that scope the kit's fonts from the portal's own copies (the same
   files), the base a board's page gives its content, and the portal's theme. In the portal's light theme the kit's
   values and the portal's are the same; the dark theme and a brand's accent (Blanchard CPA) reach the kit's tokens through
   the --pk- values, which are read where the portal sets its own (a custom property inherits its computed value, so
   --pk-text below carries the portal's text colour into the scope, where --ink means the kit's ink). */
@font-face { font-family: 'Geist'; src: url('/client-portal-assets/geist.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Instrument Serif'; src: url('/client-portal-assets/instrument-serif.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
:where(.k-kit) { font-family: var(--font); font-size: var(--fs-body); line-height: normal; color: var(--text); -webkit-font-smoothing: antialiased; }
/* A block's own buttons start bare; a page's markup placed in a block's slot (.k-slot: an entry's edit form) keeps the portal's,
   and an open request's buttons are its own block's (request.css). */
:where(.k-kit) :where(button:not(.k-slot *, .k-rq *)) { background: none; border: 0; color: inherit; font: inherit; }

.portal-skin, .portal-shell, [data-portal-brand] {
  --pk-text: var(--ink); --pk-text-2: var(--ink-2); --pk-text-3: var(--ink-3); --pk-text-4: var(--portal-faint); --pk-text-5: var(--portal-faintest);
  --pk-ground: var(--paper); --pk-surface: var(--surface); --pk-line: var(--border); --pk-line-soft: var(--line-soft);
  --pk-navy: var(--accent); --pk-navy-hover: var(--accent-2); --pk-navy-tint: var(--accent-soft);
  --pk-olive: var(--forest-green); --pk-terra: var(--terra); --pk-terra-tint: var(--angelus-red-soft); --pk-control: var(--border-strong); --pk-sand: var(--sand); --pk-ink: var(--bar); --pk-bar: var(--bar);
  /* The portal's own shades a block's copied rules name (request.css, taxes.css read them with the kit's nearest as the fallback, so a board keeps the kit's). */
  --pk-label: var(--portal-label); --pk-stone: var(--stone-gray); --pk-warm-stone: var(--warm-stone); --pk-on-ac: var(--on-ac); --pk-bar-3: var(--bar-3); --pk-shadow: var(--shadow-base); --pk-bar: var(--bar); --pk-bar-text: var(--bar-text); --pk-bar-brand: var(--bar-brand); --pk-bar-muted: var(--bar-muted); --pk-tri-1: var(--tri-1); --pk-tri-2: var(--tri-2); --pk-tri-3: var(--tri-3);
}
.portal-skin .k-kit {
  --text: var(--pk-text); --text-2: var(--pk-text-2); --text-3: var(--pk-text-3); --text-4: var(--pk-text-4); --text-5: var(--pk-text-5);
  --ground: var(--pk-ground); --surface: var(--pk-surface); --line: var(--pk-line); --line-soft: var(--pk-line-soft);
  --navy: var(--pk-navy); --navy-hover: var(--pk-navy-hover); --navy-tint: var(--pk-navy-tint);
  --olive: var(--pk-olive); --terra: var(--pk-terra); --terra-tint: var(--pk-terra-tint); --control: var(--pk-control); --sand: var(--pk-sand); --ink: var(--pk-ink);
}
/* A page's own markup in a block's slot (an entry's form, the request a person opened beside or under a list) reads the
   portal's own ink and spacing, not the kit's: the kit names its sidebar inks --ink, --ink-2 and --ink-3, where the portal means text. */
.portal-skin .k-kit .k-slot { --ink: var(--pk-text); --ink-2: var(--pk-text-2); --ink-3: var(--pk-text-3); }
.portal-skin .k-kit :is([data-dock].k-slot, .k-req-opened) { line-height: 1.55; }
/* The dark theme: the kit's tints and washes (the portal's own where it has one), meetings in the light ink, and Today's raised
   cards on a darker shadow. In the light theme the kit's values stand, as on the boards. Today's cover reads --pk-bar, the
   portal's bar, which stays dark in both themes. */
@media (prefers-color-scheme: dark) {
  html:not([data-portal-theme="light"]) .portal-skin[data-dark-enabled="true"] .k-kit { --pk-ink: var(--pk-text); --neutral-tint: #23272E; --navy-wash: rgba(147, 180, 212, .08); --note-wash: #1D2026; --note-line: rgba(236, 238, 241, .09); --control-strong: rgba(236, 238, 241, .24); --shadow-float: 0 10px 28px rgba(0, 0, 0, .55);
    --quiet: var(--warm-stone); --sand-tint: rgba(189, 178, 154, .14); --olive-tint: var(--forest-green-soft); --plum: #C3A9DA; --plum-tint: rgba(195, 169, 218, .14); --navy-ring: rgba(147, 180, 212, .3); --sand-dot: #8B8270; --ink-line: #23262C; --ink-3: #1F2228; --k-td-raise: 0 14px 36px rgba(0, 0, 0, .5); }
}
html[data-portal-theme="dark"] .portal-skin[data-dark-enabled="true"] .k-kit { --pk-ink: var(--pk-text); --neutral-tint: #23272E; --navy-wash: rgba(147, 180, 212, .08); --note-wash: #1D2026; --note-line: rgba(236, 238, 241, .09); --control-strong: rgba(236, 238, 241, .24); --shadow-float: 0 10px 28px rgba(0, 0, 0, .55);
    --quiet: var(--warm-stone); --sand-tint: rgba(189, 178, 154, .14); --olive-tint: var(--forest-green-soft); --plum: #C3A9DA; --plum-tint: rgba(195, 169, 218, .14); --navy-ring: rgba(147, 180, 212, .3); --sand-dot: #8B8270; --ink-line: #23262C; --ink-3: #1F2228; --k-td-raise: 0 14px 36px rgba(0, 0, 0, .5); }
/* Records on a phone: its figures stay on screen under the portal's own sticky top bar (52px, .portal-sidebar on a phone). */
@media (max-width: 700px) { .portal-skin .k-kit { --k-rec-stick: 52px; } }
