:root{color-scheme:dark light;font-family:var(--font-sans);font-size:var(--type-body);line-height:var(--line-normal);background:var(--color-background);color:var(--color-textPrimary)}@media(prefers-color-scheme:light){:root:not([data-appearance=dark]){--color-background: var(--light-background) !important;--color-surface: var(--light-surface) !important;--color-surfaceRaised: var(--light-surfaceRaised) !important;--color-surfaceSunken: var(--light-surfaceSunken) !important;--color-border: var(--light-border) !important;--color-borderStrong: var(--light-borderStrong) !important;--color-textPrimary: var(--light-textPrimary) !important;--color-textSecondary: var(--light-textSecondary) !important;--color-textMuted: var(--light-textMuted) !important;--color-textInverse: var(--light-textInverse) !important;--color-primary: var(--light-primary) !important;--color-primaryHover: var(--light-primaryHover) !important;--color-primaryPressed: var(--light-primaryPressed) !important;--color-primaryText: var(--light-primaryText) !important;--color-primaryMuted: var(--light-primaryMuted) !important;--color-danger: var(--light-danger) !important;--color-dangerMuted: var(--light-dangerMuted) !important;--color-warning: var(--light-warning) !important;--color-success: var(--light-success) !important;--color-info: var(--light-info) !important;--color-codeBackground: var(--light-codeBackground) !important;--color-codeText: var(--light-codeText) !important;--color-overlay: var(--light-overlay) !important;--color-focusRing: var(--light-focusRing) !important;--color-skeleton: var(--light-skeleton) !important;--color-channel: var(--light-channel) !important;--color-channelMuted: var(--light-channelMuted) !important;--color-muted: var(--light-muted) !important}}:root[data-appearance=light]{color-scheme:light}:root[data-appearance=light]{--color-background: var(--light-background) !important;--color-surface: var(--light-surface) !important;--color-surfaceRaised: var(--light-surfaceRaised) !important;--color-surfaceSunken: var(--light-surfaceSunken) !important;--color-border: var(--light-border) !important;--color-borderStrong: var(--light-borderStrong) !important;--color-textPrimary: var(--light-textPrimary) !important;--color-textSecondary: var(--light-textSecondary) !important;--color-textMuted: var(--light-textMuted) !important;--color-textInverse: var(--light-textInverse) !important;--color-primary: var(--light-primary) !important;--color-primaryHover: var(--light-primaryHover) !important;--color-primaryPressed: var(--light-primaryPressed) !important;--color-primaryText: var(--light-primaryText) !important;--color-primaryMuted: var(--light-primaryMuted) !important;--color-danger: var(--light-danger) !important;--color-dangerMuted: var(--light-dangerMuted) !important;--color-warning: var(--light-warning) !important;--color-success: var(--light-success) !important;--color-info: var(--light-info) !important;--color-codeBackground: var(--light-codeBackground) !important;--color-codeText: var(--light-codeText) !important;--color-overlay: var(--light-overlay) !important;--color-focusRing: var(--light-focusRing) !important;--color-skeleton: var(--light-skeleton) !important;--color-channel: var(--light-channel) !important;--color-channelMuted: var(--light-channelMuted) !important;--color-muted: var(--light-muted) !important}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-background)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{box-shadow:0 0 0 calc(var(--border-thick) + var(--border-hairline)) var(--color-focusRing)}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:var(--type-title);line-height:1.2}h2{font-size:var(--type-headline)}p{color:var(--color-textSecondary)}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:var(--space-lg);border-right:var(--border-hairline) solid var(--color-border);background:var(--color-surfaceSunken);display:flex;flex-direction:column;gap:var(--space-xl)}.brand{font-size:var(--type-headline);font-weight:var(--weight-bold);color:var(--color-textPrimary)}.sidebar nav{display:grid;gap:var(--space-sm)}.nav-item{min-height:var(--tap-target);padding:var(--space-sm) var(--space-md);border:0;border-radius:var(--radius-md);text-align:left;color:var(--color-textSecondary);background:transparent}.nav-item.active{color:var(--color-primary);background:var(--color-primaryMuted);font-weight:var(--weight-semibold)}.screen{width:min(100%,var(--dashboard-max));margin:0 auto;padding:var(--space-xl) var(--screen-padding) var(--space-xxl)}.narrow{width:min(100%,var(--content-max))}.page-header,.modal-header,.row-title,.button-row,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.page-header{margin-bottom:var(--space-lg)}.page-header h1,.modal-header h1{margin:0}.button{min-height:var(--tap-target);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);border:var(--border-hairline) solid var(--color-borderStrong);background:var(--color-surfaceRaised);color:var(--color-textPrimary);font-weight:var(--weight-semibold);transition:background var(--motion-fast) var(--motion-easing)}.button:hover{background:var(--color-surface)}.button:disabled{opacity:.55;cursor:default}.button-primary{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-primaryText)}.button-primary:hover{background:var(--color-primaryHover)}.button-danger{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-textInverse)}.button-quiet{border-color:transparent;background:transparent;color:var(--color-textSecondary)}.back{margin-bottom:var(--space-md)}.form-stack{display:grid;gap:var(--space-md)}.field{display:grid;gap:var(--space-xs);color:var(--color-textSecondary);font-size:var(--type-label);font-weight:var(--weight-medium)}.field input,.field textarea,.field select,.search{width:100%;min-height:var(--tap-target);border:var(--border-hairline) solid var(--color-borderStrong);border-radius:var(--radius-md);background:var(--color-surfaceSunken);color:var(--color-textPrimary);padding:var(--space-sm) var(--space-md)}.field textarea{min-height:calc(var(--tap-target) * 3);resize:vertical}.inline-error{color:var(--color-danger);margin:0}.auth-divider{display:flex;align-items:center;gap:var(--space-md);margin:0;color:var(--color-textSecondary);font-size:var(--type-caption)}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:var(--border-hairline);background:var(--color-border)}.state-card h1{margin:0;font-size:var(--type-headline)}.list{display:grid;gap:var(--space-sm)}.list-row{width:100%;min-height:var(--row-height);display:flex;align-items:center;gap:var(--space-md);border:var(--border-hairline) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-textPrimary);padding:var(--space-md);text-align:left}.list-row:hover{border-color:var(--color-borderStrong);background:var(--color-surfaceRaised)}.row-main{min-width:0;flex:1}.row-main p{margin:var(--space-xs) 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-title{justify-content:flex-start;font-weight:var(--weight-semibold)}.row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs);color:var(--color-textMuted);font-size:var(--type-caption)}.badge{display:inline-flex;align-items:center;min-height:var(--space-lg);border-radius:var(--radius-pill);padding:0 var(--space-sm);background:var(--color-surfaceRaised);color:var(--color-textSecondary);font-size:var(--type-caption);font-weight:var(--weight-semibold)}.badge-hook{color:var(--color-primary);background:var(--color-primaryMuted)}.badge-channel{color:var(--color-channel);background:var(--color-channelMuted)}.unread-dot{width:var(--space-sm);height:var(--space-sm);border-radius:var(--radius-pill);background:var(--color-primary)}.notice-row.unread{border-color:var(--color-primary)}.state-card,.card,.modal-card{border:var(--border-hairline) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--space-xl)}.state-card{min-height:calc(var(--row-height) * 3);display:grid;place-items:center;align-content:center;gap:var(--space-md);text-align:center}.state-card h2,.state-card p{margin:0}.empty-mark{width:var(--space-xl);height:var(--space-xl);border:calc(var(--border-thick) + var(--border-hairline)) solid var(--color-borderStrong);border-radius:var(--radius-pill);border-top-color:var(--color-primary)}.spinner{width:var(--space-lg);height:var(--space-lg);border:var(--border-thick) solid var(--color-borderStrong);border-top-color:var(--color-primary);border-radius:var(--radius-pill);animation:spin var(--motion-normal) linear infinite}.modal-card{width:min(calc(100% - 2 * var(--screen-padding)),var(--content-max));margin:var(--space-xl) auto}.modal-header{margin-bottom:var(--space-lg)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:var(--space-md);background:var(--color-overlay)}.dialog{width:min(100%,var(--content-max));border-radius:var(--radius-lg);background:var(--color-surfaceRaised);padding:var(--space-xl)}.dialog .button-row{justify-content:flex-end}.toast{position:fixed;right:var(--space-lg);bottom:var(--space-lg);z-index:30;border:var(--border-hairline) solid var(--color-borderStrong);border-radius:var(--radius-md);background:var(--color-surfaceRaised);padding:var(--space-md)}.avatar{flex:none;display:inline-grid;place-items:center;border-radius:var(--radius-pill);background:var(--avatar-dark);color:var(--color-textInverse);font-weight:var(--weight-semibold)}:root[data-appearance=light] .avatar{background:var(--avatar-light)}@media(prefers-color-scheme:light){:root:not([data-appearance=dark]) .avatar{background:var(--avatar-light)}}.avatar-sm{width:var(--avatar-sm);height:var(--avatar-sm)}.avatar-md{width:var(--avatar-md);height:var(--avatar-md)}.avatar-lg{width:var(--avatar-lg);height:var(--avatar-lg);font-size:var(--type-title)}.hero{min-height:100vh;display:grid;place-items:center;padding:var(--space-lg);text-align:center}.hero-inner{width:min(100%,var(--content-max));display:grid;justify-items:center;gap:var(--space-lg)}.hero h1{font-size:var(--type-display);margin:0}.hero-mark{width:var(--space-xxl);height:var(--space-xxl);border:var(--space-sm) solid var(--color-primary);border-radius:var(--radius-pill);box-shadow:0 0 0 var(--space-sm) var(--color-primaryMuted)}.hero-actions,.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-md)}.detail-grid{display:grid;gap:var(--space-md)}.detail-line{display:grid;gap:var(--space-xs);padding-bottom:var(--space-md);border-bottom:var(--border-hairline) solid var(--color-border)}.detail-line>span:first-child{color:var(--color-textMuted);font-size:var(--type-label)}.code{overflow:auto;margin:0;border-radius:var(--radius-md);background:var(--color-codeBackground);color:var(--color-codeText);padding:var(--space-md);font:var(--type-mono) var(--font-mono);white-space:pre-wrap;word-break:break-word}.segmented{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.qr{width:var(--qr-size);height:var(--qr-size);display:block;margin:0 auto;padding:var(--qr-quiet-zone);background:var(--color-surfaceRaised)}.offline-banner{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--color-warning);background:var(--color-warningMuted)}table{width:100%;border-collapse:collapse}th,td{padding:var(--space-sm);border-bottom:var(--border-hairline) solid var(--color-border);text-align:left}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0ms!important;transition-duration:0ms!important}}@media(max-width:700px){.app-shell{display:block}.sidebar{position:sticky;z-index:10;width:100%;height:auto;padding:var(--space-sm);border-right:0;border-bottom:var(--border-hairline) solid var(--color-border);gap:var(--space-sm)}.brand{display:none}.sidebar nav{grid-template-columns:repeat(4,1fr);gap:var(--space-xs)}.nav-item{padding:var(--space-sm) var(--space-xs);text-align:center;font-size:var(--type-caption)}.screen{padding-top:var(--space-lg)}.list-row{align-items:flex-start}.row-meta{max-width:34%}.page-header{align-items:flex-start}}
