/* Shared interface primitives. No authored-card colors or geometry here. */
*{box-sizing:border-box}html{scroll-padding-top:84px}body{margin:0;background:var(--ui-bg);color:var(--ui-text);font:var(--text-sm)/1.75 var(--ui-font);-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button,.action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-height);min-width:44px;padding:10px 17px;border:1px solid var(--ui-border);border-radius:var(--control-radius);background:var(--ui-surface);color:var(--ui-text);font-size:var(--text-sm);font-weight:600;line-height:1.5;text-decoration:none;cursor:pointer;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition)}
button:hover:not(:disabled),.action:hover{border-color:var(--ui-input-border);background:var(--ui-soft)}button:active:not(:disabled),.action:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button[aria-busy=true]{cursor:wait}button[aria-busy=true]::after{content:'';width:14px;height:14px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:ui-spin .8s linear infinite}
.primary,.action.primary{background:var(--ui-action);color:var(--ui-on-action);border-color:var(--ui-action)}.primary:hover:not(:disabled),.action.primary:hover{background:var(--ui-action-hover);border-color:var(--ui-action-hover)}.secondary{background:var(--ui-soft)}.quiet{background:transparent}.full{width:100%}.link{border-color:transparent;background:transparent;color:var(--ui-action);padding-inline:6px;font-weight:400}.danger{color:var(--ui-danger);border-color:var(--ui-danger);background:transparent}.danger:hover:not(:disabled){background:var(--ui-danger-soft)}
a{color:var(--ui-action);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}:where(button,a,input,select,textarea,summary):focus-visible,.media-input:focus-within{outline:3px solid var(--ui-focus);outline-offset:3px}.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.brand-mark{width:32px;height:30px;color:var(--ui-action);flex:none}.wordmark{min-height:44px;display:inline-flex;align-items:center;gap:9px;font:600 18px/1.3 var(--latin);letter-spacing:-.6px;text-decoration:none;color:var(--ui-text);white-space:nowrap}
label{display:block;font-size:var(--text-sm);font-weight:400;color:var(--ui-text);margin:12px 0}input,select,textarea{display:block;width:100%;min-width:0;min-height:var(--control-height);padding:10px 12px;margin-top:6px;border:1px solid var(--ui-input-border);border-radius:var(--control-radius);background:var(--ui-surface);color:var(--ui-text);font-size:16px;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--ui-muted);opacity:1}input:disabled,select:disabled,textarea:disabled{background:var(--ui-bg);opacity:.6}input[readonly]{background:var(--ui-bg)}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--ui-action);display:inline-block;margin:0;flex:none}input[type=color]{padding:4px;cursor:pointer}textarea{resize:vertical}.hint,.notice,label small{font-size:var(--text-xs);color:var(--ui-muted);line-height:1.8}.hint{margin:8px 0 16px}.native-value,[hidden]{display:none!important}
h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{line-height:1.45}h1{font-size:var(--text-2xl);font-weight:600;margin:0 0 16px}h2{font-size:var(--text-xl);font-weight:600;margin:0 0 12px}h3{font-size:var(--text-lg);font-weight:600;margin:0 0 8px}p{margin:0 0 16px}.kicker{display:none}.section-heading,.stage-title,.present-controls{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading h2{font-size:var(--text-lg);margin:0}.section-heading{margin-bottom:20px}.divider{height:1px;background:var(--ui-border);margin:24px 0}.pair,.media-grid,.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pair>*{min-width:0}.panel{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--radius-lg);padding:24px}.action-list{display:grid;gap:12px}.check-label{display:flex;align-items:center;gap:10px}.fold{border:0;border-bottom:1px solid var(--ui-border);margin:8px 0;background:transparent}.fold summary,details>summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;cursor:pointer;font-size:var(--text-sm);font-weight:600;list-style:none}.fold summary::-webkit-details-marker,details>summary::-webkit-details-marker{display:none}.fold summary::after,details>summary::after{content:'+';font:20px system-ui;color:var(--ui-muted)}.fold[open]>summary::after,details[open]>summary::after{content:'−'}.field-grid{padding:4px 0 20px}.field-grid label{margin:6px 0}.order-list{padding:6px 0 16px}.order-item{display:flex;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid var(--ui-border)}.order-item span{flex:1}.order-item small{color:var(--ui-muted)}.order-item button{padding:6px 12px}.visibility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.visibility-grid button{justify-content:flex-start;font-size:12px;padding:8px}.check{width:17px;height:17px;border:1px solid var(--ui-input-border);border-radius:4px;display:grid;place-items:center}.visibility-grid [aria-pressed=true]{background:var(--ui-soft)}.visibility-grid [aria-pressed=true] .check{background:var(--ui-action);color:var(--ui-on-action)}.visibility-grid [aria-pressed=true] .check::after{content:'✓'}
.google-signin{position:relative;width:100%;padding-inline:42px}.google-signin img{position:absolute;inset-inline-start:14px;width:20px;height:20px}.signin-separator{display:flex;align-items:center;gap:10px;color:var(--ui-muted);font-size:12px;margin:20px 0}.signin-separator::before,.signin-separator::after{content:'';height:1px;flex:1;background:var(--ui-border)}.connection-notice{padding:14px 16px;background:var(--ui-warning-soft);color:var(--ui-warning);border:1px solid currentColor;border-radius:var(--radius-md);font-size:12px}.result{padding:16px;background:var(--ui-soft);border-inline-start:3px solid var(--ui-success);border-radius:var(--radius-sm);white-space:pre-wrap;overflow-wrap:anywhere}.result[data-state=error],[role=alert].result{background:var(--ui-danger-soft);color:var(--ui-danger);border-color:var(--ui-danger)}.result:empty,#msg:empty{display:none}#msg{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);background:var(--ui-action);color:var(--ui-on-action);border-radius:var(--radius-md);padding:14px 20px;z-index:80;box-shadow:var(--shadow-dialog);font-size:14px;margin:0;overflow-wrap:anywhere}
dialog{color:var(--ui-text);background:var(--ui-surface);border:1px solid var(--ui-border);width:min(700px,calc(100% - 24px));max-width:100%;max-height:92dvh;padding:0;border-radius:var(--radius-lg);box-shadow:var(--shadow-dialog)}dialog::backdrop{background:#102f3299;backdrop-filter:blur(3px)}.present-shell{padding:24px;max-height:90dvh;overflow:auto}.present-controls{margin-bottom:16px}.present-shell h2{font-size:20px}.present-shell>.primary{width:100%;margin-top:16px}.present-qr{background:white;padding:20px;border-radius:var(--radius-md);text-align:center}.present-qr canvas,.qr-box canvas{display:block;width:min(100%,280px);height:auto;margin:auto;image-rendering:pixelated}.present-status{margin:12px 0;color:var(--ui-muted);font-size:12px}.present-status:empty{display:none}#recoveryDialog{max-width:460px}#recoveryValue{margin-bottom:16px;font-family:var(--latin)}
#printDialog{width:min(480px,calc(100% - 24px));padding:24px;overflow:auto}.print-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.print-heading h2{font-size:20px;margin:0}.print-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.print-options label{margin:16px 0 0}.print-options label:last-child{grid-column:1/-1}#printExample{margin:20px auto;max-width:390px}.print-front-preview{container-type:inline-size}#printExample .card{min-height:0;box-shadow:var(--shadow-sm)}#printExample .back-art{display:flex;align-items:center;justify-content:center;padding:12px;border:1px solid #dce5e3;background:white;color:#1a2c30;direction:ltr;gap:12px}#printExample .back-art svg{width:42%;height:auto}.back-caption{display:grid;text-align:right;direction:rtl;overflow-wrap:anywhere}html[dir=ltr] .back-caption{text-align:left;direction:ltr}#printNote{color:var(--ui-muted);font-size:12px}.print-actions{display:flex;gap:8px;flex-wrap:wrap}
.skip-link{position:absolute;inset-inline-start:12px;top:-100px;z-index:100;padding:12px;background:var(--ui-surface);color:var(--ui-text)}.skip-link:focus{top:8px}.skeleton{background:var(--ui-border);border-radius:var(--radius-sm);animation:ui-pulse 1.4s ease-in-out infinite}.empty-state{padding:24px;text-align:center;color:var(--ui-muted);border:1px dashed var(--ui-input-border);border-radius:var(--radius-md)}.empty-state h3{color:var(--ui-text)}.theme-toggle{padding:10px;font:20px/1 system-ui;min-width:46px}.theme-toggle[aria-pressed=true]{background:var(--ui-soft)}
@keyframes ui-spin{to{transform:rotate(360deg)}}@keyframes ui-pulse{50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:420px){.panel,.present-shell,#printDialog{padding:20px}.field-grid{grid-template-columns:1fr}.wordmark{font-size:16px}}
@media(orientation:landscape) and (max-height:540px){#presenter{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.present-shell{max-height:100dvh}.present-shell>.stage{max-width:65vw;margin:auto}}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);display:flex;align-items:center;background:var(--ui-action);color:var(--ui-on-action);border-radius:var(--radius-md);box-shadow:var(--shadow-dialog);z-index:80;padding-inline-end:6px}.toast #msg{position:static;transform:none;width:auto;max-width:none;background:none;box-shadow:none;padding:14px 16px;direction:inherit}.toast-dismiss{min-width:44px;min-height:44px;padding:6px;border:0;background:transparent;color:inherit;font:24px system-ui}.toast-dismiss:hover:not(:disabled){background:#ffffff18;color:inherit}@media(max-width:800px){.toast{bottom:calc(84px + env(safe-area-inset-bottom))}.toast #msg{padding:12px}}

/* Keep long domains and mixed-direction names readable at phone widths. */
.field-name,.contact-file-action{display:inline-flex;align-items:center;gap:.55rem}
.field-name .contact-glyph{color:var(--ui-action);width:1.15em;height:1.15em}
.profile-name-field{display:grid;gap:.45rem;margin-block:1rem}
.profile-address-input{display:flex;align-items:center;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--radius-sm);padding-inline:.7rem;gap:.2rem;min-width:0}
.profile-address-input small{color:var(--ui-muted);font-size:.76rem;white-space:nowrap}
.profile-address-input input{flex:1;width:0;min-width:4em;border:0;background:transparent;padding-inline:.15rem}
.profile-address-input:focus-within{outline:2px solid var(--ui-action);outline-offset:2px}
.contact-file-action{justify-content:center;min-height:48px}
