:root{--bg:#f5f7fb;--card:#fff;--border:#e2e6ed;--border-strong:#cbd2dc;--text:#1a2033;--muted:#6b7280;--accent:#1a56b0;--accent-hover:#144491;--danger:#c0392b;--danger-hover:#962c20;--success:#1a8c4e;--shadow:0 1px 2px #0d2b5e0d, 0 4px 16px #0d2b5e0f;--radius:10px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border);background:#fff;align-items:center;gap:16px;padding:14px 32px;display:flex}.app-header h1{margin:0;font-size:17px;font-weight:700}.app-header .tag{color:var(--muted);background:var(--bg);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:600}.app-main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:32px}.btn{border:1px solid var(--border-strong);color:var(--text);background:#fff;border-radius:6px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn:hover{background:var(--bg);border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-danger{color:var(--danger);border-color:var(--border-strong)}.btn-danger:hover{border-color:var(--danger);color:var(--danger);background:#fef0ee}.btn-ghost{color:var(--muted);border-color:#0000}.btn-ghost:hover{background:var(--bg);color:var(--text);border-color:var(--border)}.btn-sm{padding:5px 10px;font-size:12px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.toolbar-left{flex:1;align-items:center;gap:12px;min-width:260px;display:flex}.toolbar h2{margin:0;font-size:22px;font-weight:800}.toolbar .count{color:var(--muted);border:1px solid var(--border);background:#fff;border-radius:11px;padding:3px 9px;font-size:12px;font-weight:600}.search{border:1px solid var(--border-strong);background:#fff;border-radius:6px;outline:none;flex:1;max-width:320px;padding:8px 14px;font-size:13px}.search:focus{border-color:var(--accent)}.toolbar-right{align-items:center;gap:8px;display:flex}.trip-table{border:1px solid var(--border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);border-collapse:separate;border-spacing:0;background:#fff;overflow:hidden}.trip-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;border-bottom:1px solid var(--border);background:var(--bg);cursor:pointer;-webkit-user-select:none;user-select:none;padding:12px 16px;font-size:11px;font-weight:700}.trip-table th .sort-ind{opacity:.5;margin-left:4px;font-size:9px}.trip-table th.sorted .sort-ind{opacity:1;color:var(--accent)}.trip-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:16px;font-size:13px}.trip-table tr:last-child td{border-bottom:none}.trip-table tr:hover td{background:#fafbfd}.trip-table .school{color:var(--text);font-weight:700}.trip-table .school .org{color:var(--muted);margin-top:2px;font-size:12px;font-weight:400;display:block}.trip-table .dates{color:var(--muted);white-space:nowrap}.trip-table .pid{color:var(--muted);background:var(--bg);border-radius:4px;padding:2px 6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;display:inline-block}.trip-table .pid.draft{color:var(--danger);background:#fef0ee}.trip-table .modified{color:var(--muted);white-space:nowrap;font-size:12px}.trip-table .actions{justify-content:flex-end;gap:4px;display:flex}.report-filter{border:1px solid var(--border);border-radius:var(--radius);background:#fff;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;padding:12px 16px;display:flex}.report-filter label{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.report-filter input[type=date]{border:1px solid var(--border-strong);color:var(--text);border-radius:6px;padding:6px 10px;font-size:13px}.report-filter input[type=date]:focus{border-color:var(--accent);outline:none}.empty{border:1px dashed var(--border-strong);border-radius:var(--radius);text-align:center;color:var(--muted);background:#fff;padding:64px 32px}.empty h3{color:var(--text);margin:0 0 8px;font-size:18px}.empty p{max-width:480px;margin:0 auto 24px}.empty .empty-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.data-error{border-radius:var(--radius);color:#8a2b2b;background:#fef6f6;border:1px solid #e6b8b8;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.data-error span{flex:1;min-width:200px}.placeholder{border:1px solid var(--border);border-radius:var(--radius);text-align:center;background:#fff;padding:48px}.placeholder h2{margin:0 0 8px}.placeholder p{color:var(--muted);margin:0 0 24px}.muted{color:var(--muted)}.modal-overlay{z-index:1000;background:#0d2b5e52;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius);background:#fff;width:100%;max-width:880px;max-height:calc(100vh - 48px);animation:.18s cubic-bezier(.2,.8,.2,1) modalIn;overflow:auto;box-shadow:0 24px 64px #0d2b5e40}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:22px 28px 16px;display:flex}.modal-header h2{margin:0;font-size:19px;font-weight:800}.modal-close{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:16px;transition:background .12s,color .12s}.modal-close:hover{background:var(--bg);color:var(--text)}.modal--narrow{max-width:520px}.change-template-body{padding:16px 28px 22px}.change-template-body p{margin:0 0 12px}.change-template-hero{cursor:pointer;align-items:center;gap:8px;margin:4px 0 16px;font-weight:600;display:flex}.change-template-actions{justify-content:flex-end;gap:8px;display:flex}.import-backup-body{padding:18px 28px 24px}.import-backup-pick,.import-backup-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.import-backup-heading{margin:16px 0 4px;font-size:15px}.import-backup-summary{margin:0 0 10px;font-size:13px}.import-backup-loss{color:var(--danger)}.import-backup-table{font-size:13px}.import-backup-table td{vertical-align:top}.import-backup-table tr[data-status=failed] td:first-child,.import-backup-table tr[data-status=mismatched] td:first-child,.import-backup-table tr[data-status=invalid] td:first-child{color:var(--danger);font-weight:700}.import-backup-file{color:var(--muted);overflow-wrap:anywhere;font-size:12px;display:block}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.template-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;padding:20px 28px 28px;display:grid}.template-card{text-align:left;border:1.5px solid var(--border);font:inherit;color:inherit;cursor:pointer;background:#fff;border-radius:10px;flex-direction:column;gap:8px;min-height:140px;padding:16px 18px;transition:border-color .12s,transform .12s,box-shadow .12s;display:flex}.template-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px #0d2b5e1a}.template-card:focus-visible{outline-offset:1px;border-color:var(--accent);outline:3px solid #1a56b04d}.template-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.template-card-label{color:var(--text);font-size:14px;font-weight:800;line-height:1.3}.template-card-dest{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--bg);white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700}.template-card-desc{color:var(--text);margin:0;font-size:13px;line-height:1.5}.template-card-detail{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.template-card--highlight{border-color:var(--accent);animation:1.5s ease-out tplFlash;box-shadow:0 0 0 3px #1a56b02e}@keyframes tplFlash{0%{box-shadow:0 0 #1a56b080}60%{box-shadow:0 0 0 12px #1a56b000}to{box-shadow:0 0 0 3px #1a56b02e}}.template-card--create{text-align:center;background:#f7faff;border-style:dashed;border-color:#c0d3ef;justify-content:center;align-items:center;gap:6px}.template-card--create:hover{border-style:dashed;border-color:var(--accent);background:#eaf3ff}.template-card-create-icon{color:var(--accent);font-size:28px;font-weight:600;line-height:1}.template-card-create-label{color:var(--text);font-size:14px;font-weight:800}.template-card-create-desc{color:var(--muted);max-width:28ch;font-size:12px;line-height:1.5}.create-template-body{flex-direction:column;gap:16px;min-height:240px;padding:18px 28px 24px;display:flex}.create-template-url-form{flex-direction:column;gap:8px;display:flex}.create-template-url-form label,.create-template-preview-section label{color:var(--text);font-size:13px;font-weight:700}.create-template-url-form input,.create-template-preview-section input{border:1.5px solid var(--border);font:inherit;color:var(--text);background:#fff;border-radius:8px;padding:10px 12px;font-size:14px}.create-template-url-form input:focus-visible,.create-template-url-form textarea:focus-visible,.create-template-preview-section input:focus-visible{border-color:var(--accent);outline:3px solid #1a56b04d}.create-template-url-form input[aria-invalid=true]{border-color:#c0392b}.create-template-url-form textarea{border:1.5px solid var(--border);font:inherit;color:var(--text);resize:vertical;background:#fff;border-radius:8px;min-height:120px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.link-button{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover{text-decoration:none}.form-hint{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.form-hint--error{color:#c0392b;font-weight:600}.create-template-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.create-template-loading{flex-direction:column;gap:14px;display:flex}.create-template-steps{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.create-template-step{color:var(--muted);background:#f4f7fc;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;transition:background .2s,color .2s;display:flex}.create-template-step--done{color:var(--text);background:#e8f6ed}.create-template-step--active{color:var(--text);background:#edf2fa;font-weight:600}.create-template-step-icon{text-align:center;width:18px;color:var(--accent);font-weight:700;display:inline-block}.create-template-step--done .create-template-step-icon{color:#1a8c4e}.create-template-preview{flex-direction:column;gap:18px;display:flex}.create-template-preview-section{flex-direction:column;gap:6px;display:flex}.create-template-preview-heading{color:var(--text);margin:0;font-size:14px;font-weight:800}.create-template-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.create-template-gallery-item{border:1px solid var(--border);background:#f4f7fc;border-radius:8px;position:relative;overflow:hidden}.create-template-gallery-item.is-hero{border-color:var(--accent);box-shadow:0 0 0 2px #1a56b033}.create-template-hero-badge{color:var(--accent);font-weight:800}.create-template-gallery-item img{object-fit:cover;width:100%;height:100px;display:block}.create-template-gallery-caption{color:var(--text);white-space:nowrap;text-overflow:ellipsis;padding:6px 8px;font-size:11px;overflow:hidden}.create-template-gallery-actions{gap:4px;display:flex;position:absolute;top:4px;right:4px}.create-template-gallery-actions button{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;font-family:inherit;font-size:12px;display:flex}.create-template-gallery-actions button:hover:not(:disabled){background:#000c}.create-template-gallery-actions button:disabled{opacity:.35;cursor:not-allowed}.create-template-error{flex-direction:column;gap:8px;display:flex}.create-template-error>p:first-of-type{color:var(--text);margin:0;font-size:14px;font-weight:700}.editor-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.25fr);align-items:flex-start;gap:24px;display:grid}@media (width<=1100px){.editor-layout{grid-template-columns:1fr}.editor-preview-pane{position:relative!important;top:auto!important}}.editor-form{flex-direction:column;gap:20px;min-width:0;display:flex}.editor-header{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.editor-section{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:22px 22px 24px}.editor-section h3{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:0 0 4px;font-size:14px}.editor-section .section-hint{color:var(--muted);margin:0 0 16px;font-size:12.5px}.form-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}@media (width<=640px){.form-grid{grid-template-columns:1fr}}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field-span-2{grid-column:1/-1}.field-label{color:var(--text);align-items:baseline;gap:4px;font-size:12.5px;font-weight:700;display:flex}.field-label .required{color:var(--danger);font-size:13px}.field-label .muted{font-size:11.5px;font-weight:400}.field-hint{color:var(--muted);font-size:11.5px;line-height:1.4}.field-error{color:var(--danger);font-size:11.5px;font-weight:600}.field input[type=text],.field input[type=email],.field input[type=date],.field input[type=time],.field input[type=number],.field input:not([type]),.field select,.field textarea{border:1px solid var(--border-strong);font:inherit;color:inherit;box-sizing:border-box;background:#fff;border-radius:6px;outline:none;width:100%;padding:8px 11px;transition:border-color .12s,box-shadow .12s}.field input[type=text],.field input[type=email],.field input[type=date],.field input[type=time],.field input[type=number],.field input:not([type]),.field select{height:41px}.field textarea{resize:vertical;min-height:60px;line-height:1.5}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1a56b01f}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px #c0392b1a}.field input.readonly{background:var(--bg);color:var(--muted)}.input-with-prefix{border:1px solid var(--border-strong);background:#fff;border-radius:6px;align-items:stretch;display:flex;overflow:hidden}.input-with-prefix:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #1a56b01f}.input-with-prefix .prefix{background:var(--bg);color:var(--muted);border-right:1px solid var(--border);align-items:center;padding:0 10px;font-size:13px;font-weight:700;display:flex}.input-with-prefix input{font:inherit;background:0 0;outline:none;flex:1;min-width:0;padding:8px 11px;border:none!important}.input-with-action{align-items:stretch;gap:6px;display:flex}.input-with-action input{border:1px solid var(--border-strong);min-width:0;font:inherit;background:#fff;border-radius:6px;outline:none;flex:1;padding:8px 11px;transition:border-color .12s,box-shadow .12s}.input-with-action input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1a56b01f}.input-with-action .btn{white-space:nowrap}.image-input{align-items:flex-start;gap:12px;display:flex}.image-thumb{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:160px;display:flex;overflow:hidden}.image-thumb img{object-fit:cover;width:100%;height:100%}.image-empty{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.image-controls{flex-direction:column;gap:6px;display:flex}.hero-picker{flex-direction:column;gap:12px;display:flex}.hero-picker-candidates{border-top:1px solid var(--border);padding-top:12px}.hero-picker-candidates-head{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.hero-picker-candidates-label{color:var(--text);font-size:13px;font-weight:700}.hero-picker-candidate-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.hero-picker-candidate{border:2px solid var(--border);cursor:pointer;aspect-ratio:16/10;background:0 0;border-radius:6px;padding:0;transition:border-color .12s,transform .1s;display:block;position:relative;overflow:hidden}.hero-picker-candidate img{object-fit:cover;width:100%;height:100%;display:block}.hero-picker-candidate:hover{border-color:var(--border-strong);transform:translateY(-1px)}.hero-picker-candidate.selected{border-color:var(--accent);box-shadow:0 0 0 2px #1a56b02e}.hero-picker-candidate-badge{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:flex;position:absolute;top:4px;right:4px;box-shadow:0 2px 6px #00000040}.save-bar{border:1px solid var(--border);border-radius:var(--radius);z-index:5;background:#fff;justify-content:space-between;align-items:center;gap:16px;margin-top:8px;padding:12px 16px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 16px #0d2b5e14}.save-bar-status{color:var(--muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.save-bar-actions{gap:8px;display:flex}.error-pill{color:var(--danger);background:#fef0ee;border-radius:11px;padding:4px 10px;font-size:11.5px;font-weight:700}.editor-preview-pane{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex-direction:column;gap:8px;height:calc(100vh - 90px);min-height:600px;padding:12px;display:flex;position:sticky;top:24px}.preview-pane-inner{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.preview-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:0 4px;display:flex}.preview-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:700}.device-toggle{background:var(--bg);border:1px solid var(--border);border-radius:6px;gap:1px;padding:2px;display:inline-flex}.device-btn{color:var(--muted);background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:4px 9px;font-size:11px;font-weight:600;transition:background .12s,color .12s;display:inline-flex}.device-btn:hover{color:var(--text)}.device-btn.active{color:var(--accent);background:#fff;box-shadow:0 1px 2px #0d2b5e1a}.device-btn-label{letter-spacing:.02em}@media (width<=1280px){.device-btn-label{display:none}.device-btn{padding:5px 9px;font-size:13px}}.preview-viewport{background:repeating-linear-gradient(45deg, var(--bg), var(--bg) 8px, #eef1f6 8px, #eef1f6 16px);border:1px solid var(--border);border-radius:6px;flex:1;min-height:0;position:relative;overflow:hidden}.preview-viewport.device-desktop{background:#fff}.preview-frame{display:block}.preview-iframe{background:#fff;border:none;border-radius:4px;width:100%;height:100%;display:block;box-shadow:0 4px 16px #0d2b5e14}.preview-viewport.device-desktop .preview-iframe{box-shadow:none;border-radius:6px}.preview-scale-pill{background:var(--bg);color:var(--muted);letter-spacing:.04em;border-radius:8px;margin-left:6px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.preview-error{color:#7a5500;background:#fef8e8;border:1px solid #f0d888;border-radius:6px;padding:16px;font-size:12.5px}.preview-error pre{white-space:pre-wrap;word-break:break-word;margin:8px 0 0;font-size:11px}.settings-body{flex-direction:column;gap:16px;min-height:180px;padding:18px 28px 24px;display:flex}.settings-section{flex-direction:column;gap:10px;display:flex}.settings-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-section-head h3{color:var(--text);margin:0;font-size:15px;font-weight:800}.settings-status{color:var(--muted);background:var(--bg);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.settings-status--ok{color:var(--success);background:#e8f6ed}.settings-key-row{align-items:stretch;gap:6px;display:flex}.settings-key-row input{border:1.5px solid var(--border);font:inherit;color:var(--text);background:#fff;border-radius:6px;flex:1;padding:9px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.settings-key-row input:focus-visible{outline-offset:1px;border-color:var(--accent);outline:3px solid #1a56b040}.settings-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.settings-test{border-radius:6px;margin:4px 0 0;padding:8px 12px;font-size:12.5px}.settings-test--ok{color:var(--success);background:#e8f6ed;border:1px solid #b6e0c2}.settings-test--err{color:var(--danger);background:#fef0ee;border:1px solid #f3b9b2}.create-template-hero-preview{align-items:flex-start;gap:14px;display:flex}.create-template-hero-thumb{object-fit:cover;border:1.5px solid var(--accent);border-radius:8px;flex-shrink:0;width:200px;height:112px;box-shadow:0 0 0 3px #1a56b026}.create-template-hero-meta{flex:1;min-width:0}.create-template-hero-caption{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:700}.create-template-pool-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.create-template-pool-item{border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.create-template-pool-item img{object-fit:cover;background:var(--bg);width:100%;height:90px}.create-template-pool-caption{color:var(--text);text-overflow:ellipsis;white-space:nowrap;padding:6px 8px 4px;font-size:11px;font-weight:600;overflow:hidden}.create-template-pool-actions{gap:4px;padding:4px 6px 6px;display:flex}.create-template-pool-actions button{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:4px;flex:1;padding:4px 6px;font-size:11px;font-weight:700;transition:background .1s,border-color .1s,color .1s}.create-template-pool-actions button:hover{border-color:var(--accent);color:var(--accent);background:#fff}.tile-warning-banner{color:#7a5500;background:#fff8e6;border:1px solid #f3d488;border-radius:6px;margin:0 0 4px;padding:10px 14px;font-size:12.5px;line-height:1.5}.tile-warning-banner strong{color:inherit}.create-template-headline-preview{border:1px solid var(--border);background:#fff;border-radius:6px;flex-direction:column;gap:4px;margin-bottom:8px;padding:10px 12px;display:flex}.create-template-headline-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:700}.create-template-headline-text{color:var(--text);font-size:16px;font-weight:800;line-height:1.25}.create-template-nav-label{color:var(--text);font-size:14px;font-weight:700}.create-template-tiles-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.create-template-tile{border:1px solid var(--border);background:#fff;border-radius:8px;gap:10px;padding:12px;display:flex}.create-template-tile-icon{border-radius:18px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;line-height:1;display:flex}.create-template-tile-body{flex:1;min-width:0}.create-template-tile-body h4{color:var(--text);margin:0 0 4px;font-size:13px;font-weight:800}.create-template-tile-body p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.btn-badge{background:var(--bg);min-width:18px;height:18px;color:var(--muted);border-radius:9px;justify-content:center;align-items:center;margin-left:4px;padding:0 6px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.btn-primary .btn-badge{color:#fff;background:#ffffff38}.manage-templates-body{flex-direction:column;gap:12px;min-height:240px;padding:18px 28px 24px;display:flex}.manage-templates-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.manage-templates-row{border:1px solid var(--border);background:#fff;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 14px;transition:border-color .12s,box-shadow .12s;display:flex}.manage-templates-row:hover{border-color:var(--border-strong)}.manage-templates-row--flash{animation:1.5s ease-out tplRowFlash}@keyframes tplRowFlash{0%{border-color:var(--accent);box-shadow:0 0 #1a56b073}60%{border-color:var(--accent);box-shadow:0 0 0 10px #1a56b000}to{border-color:var(--border);box-shadow:0 0 #1a56b000}}.manage-templates-row-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.manage-templates-label{color:var(--text);text-align:left;cursor:text;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;border-bottom:1px dashed #0000;align-self:flex-start;max-width:100%;margin:0;padding:0;font-family:inherit;font-size:15px;font-weight:800;display:inline-block;overflow:hidden}.manage-templates-label:hover{color:var(--accent);border-bottom-color:var(--accent)}.manage-templates-label:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid #1a56b04d}.manage-templates-label--static{cursor:default;border-bottom-color:#0000}.manage-templates-label--static:hover{color:var(--text)}.manage-templates-subtitle{color:var(--muted);font-size:12px}.manage-templates-source{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;text-decoration:none;overflow:hidden}.manage-templates-source:hover{color:var(--accent);text-decoration:underline}.manage-templates-rename{flex-wrap:wrap;align-items:center;gap:6px;width:100%;display:flex}.manage-templates-rename input{border:1.5px solid var(--accent);min-width:180px;font:inherit;color:var(--text);background:#fff;border-radius:6px;flex:1;padding:7px 10px;font-size:14px}.manage-templates-rename input:focus-visible{outline-offset:1px;outline:3px solid #1a56b040}.manage-templates-actions{flex-shrink:0;gap:6px;display:flex}.manage-templates-row-error{margin:2px 0 0}@media (width<=640px){.manage-templates-row{flex-direction:column;align-items:stretch}.manage-templates-actions{justify-content:flex-end}}.auth-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:32px;display:flex}.auth-card{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;background:#fff;width:100%;max-width:460px;padding:32px}.auth-card-title{margin:0 0 6px;font-size:24px;font-weight:800}.auth-card-lede{color:var(--muted);margin:0 0 22px;font-size:14px}.auth-signin-btn{justify-content:center;width:100%;padding:11px 16px;font-size:14px}.auth-card-foot{margin:18px 0 0}.auth-error,.auth-warning{text-align:left;border-radius:6px;margin:16px 0 0;padding:10px 12px;font-size:13px}.auth-error{color:var(--danger);background:#fef0ee;border:1px solid #c0392b59}.auth-warning{color:#8a5b00;background:#fff8e6;border:1px solid #b4821459}.auth-problems{text-align:left;color:var(--danger);margin:0 0 16px;padding-left:20px;font-size:13px}.auth-problems li+li{margin-top:6px}.auth-banner{color:#fff;text-align:center;background:#8a5b00;padding:7px 32px;font-size:12.5px}.auth-banner strong{font-weight:800}.app-header-spacer{flex:1}.user-menu{position:relative}.user-menu-trigger{color:var(--text);background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 4px;transition:background .12s,border-color .12s;display:inline-flex}.user-menu-trigger:hover{background:var(--bg);border-color:var(--border)}.user-menu-avatar{background:var(--accent);color:#fff;letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:800;display:inline-flex}.user-menu-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:13px;font-weight:600;overflow:hidden}.user-menu-popover{border:1px solid var(--border);z-index:1100;background:#fff;border-radius:8px;min-width:240px;padding:14px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #0d2b5e2e}.user-menu-identity{border-bottom:1px solid var(--border);overflow-wrap:anywhere;flex-direction:column;gap:2px;margin-bottom:12px;padding-bottom:12px;font-size:13px;display:flex}.user-menu-access{margin-top:4px;font-size:12px}.user-menu-access--refused{color:var(--danger)}.user-menu-signout{justify-content:center;width:100%}@media (width<=640px){.user-menu-name{display:none}.auth-banner{padding:7px 16px}}.gis-body{flex-direction:column;gap:16px;padding:18px 28px 8px;display:flex}.gis-lookup-form{flex-direction:column;gap:6px;display:flex}.gis-lookup-row{align-items:stretch;gap:8px;display:flex}.gis-lookup-row input{border:1.5px solid var(--border);max-width:260px;font:inherit;color:var(--text);background:#fff;border-radius:6px;flex:1;padding:9px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.gis-lookup-row input:focus-visible{outline-offset:1px;border-color:var(--accent);outline:3px solid #1a56b040}.editor-header-actions{flex-wrap:wrap;flex:100%;justify-content:flex-end;align-items:flex-start;gap:12px;display:flex}.tripid-field{flex:0 228px;min-width:190px}.editor-header-actions .import-values{flex:0 160px;min-width:150px}.tripid-row{align-items:center;gap:8px;display:flex}.tripid-row input{flex:auto;min-width:118px}.tripid-row .btn{white-space:nowrap}.editor-header-actions{--control-h:40px}.editor-header-actions .import-values{align-items:stretch}.tripid-row input[type=text],.tripid-row .btn,.editor-header-actions .import-values .btn{height:var(--control-h);justify-content:center;align-items:center;display:inline-flex}.tripid-busy{white-space:nowrap;font-size:12px}.tripid-status{flex:1 0 100%;order:1}.tripid-status:empty{display:none}.tripid-status>*{margin-top:6px}.tripid-status .gis-notice{max-width:520px}.gis-notice{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:12px 14px;font-size:13px}.gis-notice p{margin:6px 0 0}.gis-notice ul{margin:6px 0 0;padding-left:20px}.gis-notice--warn{color:#6d4a06;background:#fff8e6;border-color:#b4821459}.gis-notice--err{color:#8f2417;background:#fef0ee;border-color:#c0392b59}.gis-result{flex-direction:column;gap:14px;display:flex}.gis-result-head h3{margin:0;font-size:15px;font-weight:800}.gis-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:13px}.gis-table-caption{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding-bottom:6px;font-size:12px;font-weight:700}.gis-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:11px;font-weight:700}.gis-table td{border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere;padding:7px 8px}.gis-table-value{font-weight:600}.gis-source,.gis-table code{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.gis-badge{background:var(--bg);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.gis-details{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:10px 14px}.gis-details>summary{cursor:pointer;color:var(--text);font-size:13px;font-weight:700}.gis-details[open]>summary{margin-bottom:8px}.gis-missing-list{margin:6px 0 0;padding-left:20px;font-size:13px}.gis-missing-list li+li{margin-top:4px}.gis-raw{border:1px solid var(--border);background:#fff;border-radius:6px;max-height:320px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.45;overflow:auto}.gis-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:8px;padding:16px 28px 22px;display:flex}
