:root{--font-heading: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-body: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-weight-heading: 600;--font-weight-body: 400}*,*:before,*:after{box-sizing:border-box}html,body{font-family:sans-serif;margin:0;height:100%;-webkit-tap-highlight-color:transparent}.app{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;padding:1rem}body{font-family:var(--font-body);font-weight:var(--font-weight-body)}h1,h2,h3{font-family:var(--font-heading);font-weight:var(--font-weight-heading)}:root{--font-body: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-heading: var(--font-body);--content-max-width: 1100px;--content-padding: 1.5rem;--color-text: #1a1a1a;--color-text-muted: #6b6b6b;--color-bg: #ffffff;--color-bg-subtle: #f7f7f5;--color-border: #e0e0dc;--color-border-hover: #b0b0a8;--color-primary: #2d6a4f;--color-primary-hover: #1f5037;--color-danger: #b1442f;--color-danger-hover: #8b3324;--line-height-body: 1.6;--line-height-heading: 1.25;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--radius: 6px}body{margin:0;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);line-height:var(--line-height-body)}.app-main{max-width:var(--content-max-width);margin:0 auto;padding:var(--space-lg) var(--content-padding) var(--space-xl)}.screen{padding-top:var(--space-md)}.screen--home{text-align:left}.home__heading{font-size:2rem;margin:0 0 var(--space-xs);line-height:var(--line-height-heading)}.home__tagline{margin:0 0 var(--space-xl);color:var(--color-text-muted)}.home__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-md)}.home-card{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);text-align:left;cursor:pointer;transition:border-color .12s ease,transform 80ms ease}.home-card:hover{border-color:var(--color-border-hover);transform:translateY(-1px)}.home-card__label{font-size:1.1rem;font-weight:600}.home-card__description{color:var(--color-text-muted);font-size:.95rem}.spinner{width:1.25rem;height:1.25rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spinner-rot .7s linear infinite;margin:var(--space-lg) auto}@keyframes spinner-rot{to{transform:rotate(360deg)}}.error-message{background:#fdf3f1;border:1px solid #e8b8ad;color:#8b3324;padding:var(--space-md);border-radius:var(--radius);margin:var(--space-md) 0}.error-message__headline{font-weight:600;margin-bottom:var(--space-xs)}.error-message__detail{font-size:.95rem}.empty-state{padding:var(--space-xl) 0;text-align:center;color:var(--color-text-muted)}.empty-state__message{margin:0 0 var(--space-md)}.form__heading{font-size:1.6rem;margin:0 0 var(--space-md);line-height:var(--line-height-heading)}.form{display:flex;flex-direction:column;gap:var(--space-md);max-width:640px}.field{display:flex;flex-direction:column;gap:var(--space-xs)}.field__label{font-size:.9rem;font-weight:500}.field__required{color:var(--color-danger)}.field__help{font-size:.85rem;color:var(--color-text-muted)}.field--checkbox .field__check-label{display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.input,.select{width:100%;padding:.5rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;color:inherit;background:var(--color-bg);box-sizing:border-box}.input:focus,.select:focus{outline:2px solid var(--color-primary);outline-offset:-1px;border-color:var(--color-primary)}.input--textarea{resize:vertical;min-height:4rem}.form__errors{margin-top:var(--space-xs)}.form__actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.btn{padding:.55rem 1rem;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);font:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn:hover:not(:disabled){border-color:var(--color-border-hover)}.btn:disabled{opacity:.5;cursor:default}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--secondary{background:var(--color-bg)}.btn--danger{color:var(--color-danger);border-color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger);color:#fff}.list__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.list__heading{font-size:1.6rem;margin:0;line-height:var(--line-height-heading)}.list__filters{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.list__meta{font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--space-sm)}.list__items{display:flex;flex-direction:column;gap:var(--space-xs)}.list-row{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);text-align:left;cursor:pointer;font:inherit;transition:border-color .12s ease}.list-row:hover{border-color:var(--color-border-hover);background:var(--color-bg-subtle)}.list-row__title{font-weight:600;font-size:1rem}.list-row__sub{color:var(--color-text-muted);font-size:.9rem}.detail__header{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.detail__title{font-size:1.7rem;margin:0;line-height:var(--line-height-heading);flex:1 1 auto}.detail__actions{display:flex;gap:var(--space-sm);margin-left:auto}.detail__org{margin:0 0 var(--space-md);color:var(--color-text-muted)}.detail__description{margin:0 0 var(--space-lg);white-space:pre-wrap}.detail__grid{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-xs) var(--space-lg);margin:0 0 var(--space-xl)}.detail__grid dt{color:var(--color-text-muted);font-size:.9rem}.detail__grid dd{margin:0}.detail__section-heading{font-size:1.2rem;margin:0 0 var(--space-md)}.detail__empty{color:var(--color-text-muted);margin:0 0 var(--space-md)}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-subtle);font-size:.8rem;text-transform:capitalize}.badge--draft{background:#f3f0e8}.badge--active,.badge--open{background:#e0efe6;border-color:#b9d6c4;color:#1f5037}.badge--archived,.badge--closed{background:#efe9e3;color:#6b6b6b}.badge--filled{background:#e8e3ef;color:#4f3f7d;border-color:#c8bdde}.app-header{border-bottom:1px solid var(--color-border);padding:.75rem var(--content-padding);display:flex;align-items:center;background:var(--color-bg)}.app-nav{display:flex;gap:var(--space-md)}.app-nav a{color:var(--color-text);text-decoration:none;font-size:.95rem;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius)}.app-nav a:hover{background:var(--color-bg-subtle)}.screen--login{max-width:380px;margin:var(--space-xl) auto 0}.login-form{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg)}.login-form__heading{font-size:1.4rem;margin:0 0 var(--space-xs);line-height:var(--line-height-heading)}.login-form__sub{margin:0;color:var(--color-text-muted);font-size:.95rem}.login-form__link{background:none;border:none;color:var(--color-primary);font:inherit;font-size:.9rem;text-align:center;cursor:pointer;padding:0;margin-top:0}.login-form__link:hover{text-decoration:underline}.login-form__field{display:flex;flex-direction:column;gap:var(--space-xs)}.login-form__label{font-size:.9rem;font-weight:500}.login-form__input{width:100%;padding:.5rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;color:inherit;background:var(--color-bg);box-sizing:border-box}.login-form__input:focus{outline:2px solid var(--color-primary);outline-offset:-1px;border-color:var(--color-primary)}.login-form__error{margin:0;padding:var(--space-sm) var(--space-md);border-radius:var(--radius);background:#fdf3f1;border:1px solid #e8b8ad;color:#8b3324;font-size:.9rem}.login-form__submit{padding:.6rem 1rem;border-radius:var(--radius);border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;font:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease}.login-form__submit:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.login-form__submit:disabled{opacity:.6;cursor:default}.login-form__passkey{display:flex;flex-direction:column;gap:var(--space-sm)}.login-form__passkey-btn{padding:.6rem 1rem;border-radius:var(--radius);border:1px solid var(--color-primary);background:var(--color-bg);color:var(--color-primary);font:inherit;font-weight:500;cursor:pointer;transition:background .12s ease,color .12s ease}.login-form__passkey-btn:hover:not(:disabled){background:var(--color-primary);color:#fff}.login-form__passkey-btn:disabled{opacity:.6;cursor:default}.login-form__divider{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text-muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.login-form__divider:before,.login-form__divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.login-form__email{display:flex;flex-direction:column;gap:var(--space-md)}.header-auth{margin-left:auto;display:flex;align-items:center;gap:var(--space-sm);font-size:.9rem}.header-auth__email{color:var(--color-text-muted)}.header-auth__logout{padding:.3rem .65rem;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);font:inherit;font-size:.85rem;cursor:pointer}.header-auth__logout:hover{border-color:var(--color-border-hover);background:var(--color-bg-subtle)}.screen--settings{max-width:640px;margin:var(--space-xl) auto 0;display:flex;flex-direction:column;gap:var(--space-lg)}.settings__heading{font-size:1.6rem;margin:0;line-height:var(--line-height-heading)}.settings__lede{margin:0;color:var(--color-text-muted);max-width:56ch}.settings__subheading{font-size:1.05rem;margin:0 0 var(--space-sm);font-weight:600}.settings__error{padding:var(--space-sm) var(--space-md);border-radius:var(--radius);background:#fdf3f1;border:1px solid #e8b8ad;color:#8b3324;font-size:.9rem}.settings__list,.settings__enroll{padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg)}.settings__empty{margin:0;color:var(--color-text-muted);font-size:.95rem}.settings__items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.settings__item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius)}.settings__item-main{flex:1;min-width:0}.settings__item-label{font-weight:500}.settings__item-meta{font-size:.85rem;color:var(--color-text-muted);margin-top:2px}.settings__item-remove{padding:.3rem .65rem;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font:inherit;font-size:.85rem;cursor:pointer}.settings__item-remove:hover:not(:disabled){border-color:#e8b8ad;color:#8b3324}.settings__item-remove:disabled{opacity:.6;cursor:default}.settings__enroll-form{display:flex;flex-direction:column;gap:var(--space-md)}.settings__field{display:flex;flex-direction:column;gap:var(--space-xs)}.settings__label{font-size:.9rem;font-weight:500}.settings__input{width:100%;padding:.5rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;color:inherit;background:var(--color-bg);box-sizing:border-box}.settings__input:focus{outline:2px solid var(--color-primary);outline-offset:-1px;border-color:var(--color-primary)}.settings__submit{align-self:flex-start;padding:.6rem 1rem;border-radius:var(--radius);border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;font:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease}.settings__submit:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.settings__submit:disabled{opacity:.6;cursor:default}.settings__warn{padding:var(--space-sm) var(--space-md);border-radius:var(--radius);background:#fff8e1;border:1px solid #e8c97f;color:#6b4a00;font-size:.9rem}.settings__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}.settings__tabs{display:flex;gap:var(--space-xs);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-md)}.settings__tab{padding:var(--space-xs) var(--space-md);border-bottom:2px solid transparent;color:var(--color-text-muted);text-decoration:none;font-size:.95rem;transform:translateY(1px);transition:color .12s ease,border-color .12s ease}.settings__tab:hover{color:var(--color-text)}.settings__tab--active{color:var(--color-text);border-bottom-color:var(--color-primary);font-weight:500}.totp__qr{display:flex;justify-content:center;padding:var(--space-md) 0}.totp__qr canvas{border:1px solid var(--color-border);border-radius:var(--radius);background:#fff}.totp__secret{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius);background:var(--color-bg-subtle);border:1px solid var(--color-border);margin-bottom:var(--space-md)}.totp__secret-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95rem;letter-spacing:.05em;word-break:break-all;-webkit-user-select:all;user-select:all}.totp__codes{list-style:none;margin:var(--space-md) 0;padding:var(--space-md);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs) var(--space-md);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.05rem;letter-spacing:.05em}.totp__code{padding:4px 6px;-webkit-user-select:all;user-select:all}.signing-screen{max-width:720px;margin:0 auto}.signing-screen__heading{font-size:1.6rem;margin:0 0 var(--space-sm);line-height:var(--line-height-heading)}.signing-screen__intro{margin:0 0 var(--space-lg);color:var(--color-text-muted)}.signing-screen__error-message{margin:0 0 var(--space-md)}.signing-screen__error-details{margin:var(--space-md) 0}.signing-screen__error-details pre{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-sm);font-size:.85rem;overflow-x:auto;white-space:pre-wrap}.signing-screen__capture-placeholder{margin-top:var(--space-xl);padding:var(--space-md);background:var(--color-bg-subtle);border:1px dashed var(--color-border);border-radius:var(--radius)}.signing-screen__capture-placeholder p{margin:0}.signing-capture{margin-top:var(--space-xl);padding:var(--space-lg);border:2px solid var(--color-primary);border-radius:var(--radius);background:var(--color-bg)}.signing-capture__heading{font-size:1.2rem;margin:0 0 var(--space-md);line-height:var(--line-height-heading)}.signing-capture__mode-toggle{display:inline-flex;margin-bottom:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;background:var(--color-bg-subtle)}.signing-capture__mode-button{appearance:none;background:transparent;border:none;padding:var(--space-xs) var(--space-md);font-size:.95rem;color:var(--color-text-muted);cursor:pointer;border-right:1px solid var(--color-border);transition:background-color .15s ease,color .15s ease}.signing-capture__mode-button:last-child{border-right:none}.signing-capture__mode-button:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.signing-capture__mode-button:disabled{cursor:not-allowed;opacity:.6}.signing-capture__mode-button--active{background:var(--color-primary);color:var(--color-bg)}.signing-capture__mode-button--active:hover:not(:disabled){background:var(--color-primary-hover);color:var(--color-bg)}.signing-capture__panel{display:block}.signing-capture__panel[hidden]{display:none}.signing-capture__form{display:flex;flex-direction:column;gap:var(--space-md)}.signing-capture__field{display:flex;flex-direction:column;gap:var(--space-xs)}.signing-capture__label{font-size:.95rem;color:var(--color-text-muted)}.signing-capture__name-input{font-family:Brush Script MT,Lucida Handwriting,cursive;font-size:2rem;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);line-height:1.4}.signing-capture__name-input:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.signing-capture__name-input:disabled{background:var(--color-bg-subtle);color:var(--color-text-muted);cursor:not-allowed}.signing-capture__intent{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:.95rem;line-height:1.45}.signing-capture__intent input[type=checkbox]{flex:0 0 auto;margin-top:.3rem}.signing-capture__actions{display:flex;justify-content:flex-end;margin-top:var(--space-sm)}.signing-capture__submit{font-size:1rem}.signing-capture__error{margin:0;padding:var(--space-sm) var(--space-md);background:#fdecea;border:1px solid #f1c0bd;border-radius:var(--radius);color:#8b3324;font-size:.95rem}.signing-sigpad{display:flex;flex-direction:column;gap:var(--space-xs)}.signing-sigpad__canvas{width:100%;background:#fff;border:2px dashed var(--color-border);border-radius:var(--radius)}.signing-sigpad__canvas:focus{outline:2px solid var(--color-primary);outline-offset:2px}.signing-sigpad__clear{align-self:flex-start;appearance:none;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius);padding:.2rem .6rem;font-size:.85rem;color:var(--color-text-muted);cursor:pointer}.signing-sigpad__clear:hover:not(:disabled){background:var(--color-bg-subtle);color:var(--color-text);border-color:var(--color-border-hover)}.signing-sigpad__clear:disabled{cursor:not-allowed;opacity:.6}.signing-sigpad__hint{margin:0;font-size:.85rem;color:var(--color-text-muted)}.signing-screen__decline-link{margin-top:var(--space-lg);text-align:center;font-size:.9rem;color:var(--color-text-muted)}.signing-screen__decline-link a{color:var(--color-danger);text-decoration:underline}.signing-screen__decline-link a:hover{color:var(--color-danger-hover)}.signing-decline{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-lg)}.signing-decline__field{display:flex;flex-direction:column;gap:var(--space-xs)}.signing-decline__label{font-size:.95rem;color:var(--color-text-muted)}.signing-decline__reason{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);font:inherit;resize:vertical;min-height:5rem}.signing-decline__reason:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.signing-decline__reason:disabled{background:var(--color-bg-subtle);color:var(--color-text-muted);cursor:not-allowed}.signing-decline__actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm)}.signing-decline__back{text-decoration:none}.signing-decline__back.is-disabled{pointer-events:none;opacity:.6}.signing-decline__error{margin:0;padding:var(--space-sm) var(--space-md);background:#fdecea;border:1px solid #f1c0bd;border-radius:var(--radius);color:#8b3324;font-size:.95rem}.signing-completed{margin-top:var(--space-xl);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-subtle)}.signing-completed__heading{font-size:1.15rem;margin:0 0 var(--space-sm);line-height:var(--line-height-heading)}.signing-completed__note{margin-top:var(--space-sm);font-size:.9rem}.signing-completed__close-note{margin-top:var(--space-xl);text-align:center}.signing-snapshot{margin:0 0 var(--space-xl);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg)}.signing-snapshot__header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle);font-size:.85rem;color:var(--color-text-muted)}.signing-snapshot__header code{background:var(--color-bg);padding:.1rem .4rem;border-radius:4px;font-size:.85rem}.signing-snapshot__fallback{margin-left:var(--space-sm);font-style:italic}.signing-snapshot__body{padding:var(--space-md)}.signing-snapshot__section{margin:0 0 var(--space-lg)}.signing-snapshot__section:last-child{margin-bottom:0}.signing-snapshot__section-heading{font-size:1.1rem;margin:0 0 var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border);line-height:var(--line-height-heading)}.signing-snapshot__dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-xs) var(--space-md);margin:0}.signing-snapshot__row{display:contents}.signing-snapshot__row dt{color:var(--color-text-muted);font-size:.9rem;align-self:start}.signing-snapshot__row dd{margin:0}.signing-snapshot__nested{grid-column:1/-1;padding-left:var(--space-md);margin-top:var(--space-xs)}.signing-snapshot__list{margin:0;padding-left:var(--space-lg)}.signing-snapshot__cards{display:flex;flex-direction:column;gap:var(--space-md)}.signing-snapshot__card{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);background:var(--color-bg-subtle)}.signing-snapshot__card-heading{font-size:.95rem;margin:0 0 var(--space-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.signing-snapshot__value{margin:0}.signing-snapshot__multiline{white-space:pre-wrap}.signing-snapshot__empty{color:var(--color-text-muted);margin:0;font-style:italic}.signing-snapshot__field{margin:0 0 var(--space-md)}.signing-snapshot .muted{color:var(--color-text-muted)}
