:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#111;background:#f5f5f7}body{margin:0}.app-root{min-height:100vh}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top left,#ffe5eb,#f5f5f7 40%);padding:2rem}.login-box{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000014;padding:2rem;width:min(420px,100%);display:flex;flex-direction:column;gap:1.5rem}.login-brand{display:flex;align-items:center;gap:.75rem}.login-logo{width:48px;height:48px;border-radius:12px;object-fit:contain;background:#fff0f3;padding:6px}.login-app{font-weight:700;font-size:1.15rem;color:#7b0017}.login-sub{font-size:.9rem;color:#555}.login-form{display:flex;flex-direction:column;gap:.9rem}.login-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.95rem;color:#222}.login-form input{padding:.65rem .75rem;border-radius:10px;border:1px solid #d6d6d6;font-size:1rem}.login-form .primary{background:linear-gradient(90deg,#7b0017,#b3002d);color:#fff;border:none;border-radius:10px;padding:.8rem;font-size:1rem;cursor:pointer}.login-form .primary:disabled{opacity:.7;cursor:default}.login-actions{display:flex;flex-direction:column;gap:.4rem}.reset-link{align-self:flex-end;background:none;border:none;color:#7b0017;text-decoration:underline;font-size:.9rem;cursor:pointer;padding:0}.reset-link:disabled{opacity:.6;cursor:default}.login-error{background:#ffe5e8;color:#7b0017;padding:.75rem;border-radius:10px;font-size:.9rem}.login-success{background:#e6f6ec;color:#166534;padding:.75rem;border-radius:10px;font-size:.9rem}.field-list{display:flex;flex-direction:column;gap:.35rem}.field-list-actions{display:flex;gap:.5rem;margin-bottom:.25rem}.field-list .secondary{border:1px solid #ccc;background:#f7f7f7;border-radius:8px;padding:.4rem .8rem;cursor:pointer}.single-column{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border:1px solid #ececec;border-radius:8px;background:#fff}.field-list button.secondary{font-size:.9rem}.search-bar{display:flex;justify-content:center;margin:10px 0}.search-bar input{width:min(400px,100%);padding:.6rem .8rem;border-radius:10px;border:1px solid #d0d0d0}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:linear-gradient(90deg,#7b0017,#b3002d);color:#fff}.header-left{display:flex;align-items:center;gap:.75rem}.logo-box{width:50px;height:50px;border-radius:8px;overflow:hidden;background:#fff2;display:flex;align-items:center;justify-content:center}.logo-img{max-width:100%;max-height:100%}.header-title .app-name{font-weight:600;font-size:1.1rem}.header-title .tournament-name{font-size:.85rem;opacity:.9}.header-right{display:flex;align-items:center;gap:.75rem}.header-center{flex:1;display:flex;justify-content:center}.pill-wrapper{position:relative}.tournament-pill{background:linear-gradient(120deg,#fff,#f6f7fb);border:1px solid #e7e8ee;border-radius:14px;padding:.45rem .85rem;font-weight:600;color:#333;box-shadow:0 8px 20px #00000014;cursor:pointer;border:none}.role-popup{position:absolute;top:110%;left:50%;transform:translate(-50%);margin-top:6px;background:#f8f9fb;border:1px solid #e4e6ed;border-radius:12px;box-shadow:0 12px 24px #0000001f;padding:10px;min-width:260px;max-width:520px;z-index:5}.backdrop{position:fixed;inset:0;background:transparent;z-index:4}.header-middle{display:flex;justify-content:center;flex:1;position:relative}.role-popup{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:8px;background:#f8f9fb;border:1px solid #e4e6ed;border-radius:12px;box-shadow:0 12px 24px #0000001f;padding:10px;min-width:260px;max-width:520px;z-index:5}.role-popup-header{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#333;margin-bottom:6px}.close-btn{border:none;background:transparent;font-size:16px;cursor:pointer}.role-summary{display:flex;gap:.35rem;flex-wrap:wrap}.role-summary.compact .role-pill{padding:.2rem .5rem;border-radius:8px}.role-pill{background:#fff;border:1px solid #e2e2e2;border-radius:10px;padding:.25rem .6rem;display:flex;gap:.3rem;align-items:center;color:#333}.role-pill.total{background:linear-gradient(120deg,#ffe4ec,#fff1f6);border-color:#f0b9c7;font-weight:600}.role-name{font-weight:600;color:#444}.role-count{font-weight:700;color:#7b0017}.tournament-name{background:transparent;border:none;color:inherit;padding:0;cursor:pointer;text-align:left}.user-label{font-size:.9rem}.header-btn{border-radius:999px;border:none;padding:.35rem .9rem;font-size:.85rem;cursor:pointer}.app-main{display:flex;flex:1;min-height:0}.sidebar{width:260px;background:#fff;border-right:1px solid #e1e1e5;padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.sidebar-btn{border:none;border-radius:6px;display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:transparent;cursor:pointer;font-size:.9rem}.sidebar-btn.active{background:#ffe5ec;color:#7b0017;font-weight:600}.sidebar-emoji{font-size:1rem}.sidebar-btn.link{margin-top:auto;border:1px solid rgba(123,0,23,.2);border-radius:10px;background:#fff5f7cc;justify-content:center;gap:.6rem;font-weight:600}.content{flex:1;padding:1rem 1.5rem;overflow:auto;background:#f7f7f9}.app-footer{padding:.5rem 1.5rem;font-size:.8rem;border-top:1px solid #e1e1e5;background:#fff;text-align:right}.modal-backdrop{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:40}.modal{background:#fff;border-radius:12px;padding:1.25rem 1.5rem;width:min(900px,95vw);max-height:90vh;overflow:auto;box-shadow:0 18px 40px #0000002e}.modal.modal-large{width:min(1100px,96vw);max-height:90vh;display:flex;flex-direction:column}.modal.modal-large .modal-section{max-height:70vh;overflow-y:auto}.modal h2{margin-top:0;margin-bottom:.75rem}.modal-section{margin-bottom:1rem}.tournament-toolbar{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.tournament-toolbar input{flex:1;min-width:220px;padding:6px 10px;border:1px solid #d4d4d8;border-radius:8px}.tournament-toolbar button{padding:6px 12px;border-radius:8px;border:1px solid #d4d4d8;background:#f8fafc;cursor:pointer}.tournament-list{display:flex;flex-direction:column;gap:12px;max-height:60vh;overflow-y:auto;padding-right:4px}.tournament-card{display:flex;gap:12px;border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#fff}.tournament-card.is-hidden{opacity:.6}.tournament-card button{border:none;background:none;text-align:left;flex:1;cursor:pointer;padding:0}.tournament-card .t-name{font-weight:600;font-size:1rem;margin-bottom:4px}.tournament-card .t-sub{font-size:.85rem;color:#475569}.tournament-card .t-meta{margin-top:6px;font-size:.8rem;color:#64748b;display:flex;flex-direction:column;gap:2px}.t-actions{display:flex;flex-direction:column;gap:6px}.t-actions button{padding:6px 10px;border-radius:8px;border:1px solid #cbd5f5;background:#f8fafc;cursor:pointer}.t-actions .danger{background:#dc2626;color:#fff;border-color:#dc2626}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}button.primary{background:#b3002d;color:#fff;border-radius:999px;border:none;padding:.4rem 1rem;cursor:pointer;font-weight:500}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin-top:.5rem}.form-grid label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem}input,select,textarea{border-radius:6px;border:1px solid #d0d0d6;padding:.35rem .45rem;font-size:.85rem}.checkbox-row{display:flex;align-items:center;gap:.5rem}.group-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding-bottom:8px}.group-row .panel{width:100%}.mapping-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.5rem;margin-top:.75rem}.mapping-row{display:flex;flex-direction:column;gap:.2rem}.mapping-label{font-size:.8rem}.required-star{color:#b3002d;margin-left:.2rem}.label-required{display:inline-flex;align-items:baseline;gap:4px}.label-required:after{content:"*";color:#b3002d;font-weight:700}.table-scroll{overflow:auto;border-radius:8px;border:1px solid #ddd;background:#fff}.grid-table{border-collapse:collapse;width:100%;font-size:.8rem}.grid-table th,.grid-table td{border:1px solid #e1e1e5;padding:.25rem .4rem}.grid-table th{background:#ffe5ec}.grid-table input{width:100%;padding:6px 8px;border-radius:6px;border:1px solid #d0d0d0;box-sizing:border-box}.table-scroll.sticky-grid{overflow:auto;max-height:70vh}.sticky-grid thead th{position:sticky;top:0;z-index:2;background:#fafafa}.sticky-col{position:sticky;left:0;z-index:3;background:#fafafa}.sticky-grid thead .sticky-col{z-index:4}.grid-table .active-row td{background:#fff7e0}.actions-row{margin-top:12px;display:flex;align-items:center;gap:10px}.actions-row .action-btn{border:1px solid #d1d5db;background:#f9fafb;border-radius:999px;padding:.4rem 1rem;cursor:pointer;font-weight:500;color:#111827}.actions-row .action-btn:disabled{opacity:.6;cursor:default}.tech-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.tech-list-row{display:flex;gap:6px}.tech-list-row input{flex:1;padding:6px 8px;border:1px solid #ccc;border-radius:8px}.makam-output{margin-top:12px;padding:10px;border:1px solid #ddd;border-radius:8px;min-height:80px;background:#fff}.success-btn{background:#1f9d55;color:#fff;border:none;border-radius:8px;padding:.45rem .9rem;cursor:pointer}.success-btn:hover{background:#187a44}.module h2{margin-top:0}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem;margin-bottom:.75rem}.controls-row{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap;margin-bottom:.75rem}.bulk-item-control{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.35rem .6rem;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.bulk-item-label{font-size:.85rem;font-weight:600;color:#374151}.column-toggle{display:flex;flex-direction:column;gap:.35rem;max-width:480px}.column-actions{display:flex;gap:.5rem}.column-list{max-height:180px;overflow:auto;padding:.5rem;border:1px solid #e3e3e3;border-radius:8px;background:#fff;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.25rem}.hotel-module{display:flex;flex-direction:column;gap:12px}.muted{color:#6b7280;font-size:.95rem;margin-top:-4px;margin-bottom:12px}.hotel-room-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.hotel-room-inputs label{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px;font-weight:600;color:#374151}.hotel-room-inputs input{border:1px solid #d1d5db;border-radius:8px;padding:6px 8px;font-size:.95rem}.hotel-summary{display:flex;flex-wrap:wrap;gap:12px;margin:6px 0 8px}.hotel-summary-box{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 14px;min-width:180px}.hotel-summary-box.warn{border-color:#f97316;background:#fff7ed}.summary-label{font-size:.8rem;color:#6b7280}.summary-value{font-size:1.25rem;font-weight:600;color:#111827}.summary-value.warn-text{color:#b45309}.summary-warning{font-size:.85rem;color:#b45309;margin-left:4px}.summary-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin-top:6px}.hotel-summary-box.danger{border-color:#fecaca;background:#fff1f2}.danger-btn{border:none;background:#dc2626;color:#fff;border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:600}.danger-btn:hover{background:#b91c1c}.hotel-pool{border:2px dashed #cbd5f5;border-radius:12px;padding:12px;background:#f9fafb;min-height:110px;transition:border-color .2s ease,background .2s ease}.hotel-pool .pool-header{display:flex;justify-content:space-between;gap:8px;font-size:.9rem;color:#374151}.pill-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.person-pill{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid transparent;color:#fff;font-size:.85rem;font-weight:600;cursor:grab;-webkit-user-select:none;user-select:none;min-width:0}.person-pill:active{cursor:grabbing}.person-pill .pill-name{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-pill .pill-role{font-size:.7rem;opacity:.9}.room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.room-card{background:#fff;border:1px solid #e4e4e7;border-radius:12px;padding:12px;min-height:160px;display:flex;flex-direction:column;gap:10px;box-shadow:0 8px 16px #0f172a0d}.room-card.full{border-color:#ef4444;box-shadow:0 0 0 1px #fecaca inset}.room-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.room-name{font-weight:600;color:#1f2937}.room-type{font-size:.8rem;color:#6b7280}.room-capacity{font-size:1.1rem;font-weight:600;color:#111827}.room-occupants{display:flex;flex-wrap:wrap;gap:6px;min-height:64px}.room-empty{font-size:.85rem;color:#9ca3af}.empty-state{color:#94a3b8;font-style:italic}.empty-state.large{padding:20px;border:2px dashed #e5e7eb;border-radius:12px;text-align:center;width:100%;background:#fff}.drop-hover{border-color:#6366f1!important;background:#eef2ff!important}.hotel-status{margin-top:12px;padding:10px;border-radius:10px;font-size:.95rem}.hotel-status.ok{background:#ecfdf5;border:1px solid #a7f3d0;color:#064e3b}.hotel-status.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.equipment-info{display:flex;align-items:center;gap:16px;padding:12px 16px;border:1px solid #e5e7eb;border-radius:12px;background:#f9fafb;margin-bottom:16px}.equipment-info__label{font-weight:600;color:#1f2937;font-size:.9rem}.equipment-info__value{font-size:1.1rem;font-weight:600;color:#0f172a}.equipment-info__hint{font-size:.85rem;color:#6b7280}.equipment-table th:first-child{width:40px}.equipment-table th:nth-child(2),.equipment-table th:nth-child(3),.equipment-table th:nth-child(4){min-width:130px}.equipment-table th:nth-child(4){min-width:520px}.equipment-table th:nth-child(5){min-width:180px}.equipment-table input[type=checkbox]{transform:scale(1.1)}.equipment-items-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;min-width:320px}.equipment-items-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;overflow-x:auto;padding:6px 0}.equipment-group{border:1px solid #e5e7eb;border-radius:8px;padding:8px;background:#fafafa}.item-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:.85rem}.item-checkbox.item-inline{white-space:nowrap}.item-checkbox input{width:auto}.equipment-group__actions{display:flex;align-items:center;gap:6px;justify-content:flex-start;background:transparent;border:none;padding:0}.equipment-inline-actions{display:inline-flex;align-items:center;gap:6px;margin-left:6px}.tiny-btn{border:1px solid #d1d5db;background:#f8fafc;border-radius:8px;padding:4px 8px;cursor:pointer;font-size:.8rem;font-weight:600}.tiny-btn.ghost{background:#fff}.tiny-btn.tiny{padding:2px 6px;font-size:.75rem}.equipment-status{display:flex;flex-direction:column;gap:4px}.equipment-status .status-sub{color:#6b7280;font-size:.85rem}.checklist-module .checklist-meta{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.status-row{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:#0f172a}.status-row .dot{width:10px;height:10px;border-radius:999px;display:inline-block}.status-row .dot.saving{background:#f59e0b;box-shadow:0 0 0 6px #f59e0b1f}.status-row .dot.saved{background:#16a34a;box-shadow:0 0 0 6px #16a34a1f}.checklist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.checklist-card{border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.checklist-card__header{font-weight:700;color:#0f172a}.checklist-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px}.checklist-item{display:inline-flex;align-items:center;gap:8px;font-size:.92rem}.checklist-item input{width:auto}.checklist-item .icon-btn{border:none;background:transparent;cursor:pointer;font-size:.8rem;line-height:1;padding:2px 4px;margin-left:auto}.checklist-item.disabled{display:flex;align-items:center;gap:6px;color:#9ca3af}.custom-add-row{display:flex;gap:8px;margin-bottom:8px}.custom-add-row input{flex:1;padding:6px 8px;border-radius:8px;border:1px solid #d1d5db}.equipment-history-table th:first-child{width:40px}.equipment-history-table th:nth-child(4){min-width:200px}.dirty-row{background:#fff7ed}.history-panel{margin-top:24px;padding:16px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.history-group{margin-top:12px;padding-top:12px;border-top:1px solid #f1f5f9}.history-group__title{font-weight:600;color:#0f172a;margin-bottom:6px}.history-group ul{margin:0;padding-left:18px;color:#1f2937;font-size:.9rem}.history-group li+li{margin-top:4px}.muted-text{color:#9ca3af;font-size:.9rem}.history-actions{margin-top:16px}.history-actions button{min-width:220px}.kafile-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.kafile-summary-card{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid #e5e7eb;border-radius:14px;background:#fffdfa;margin-bottom:14px}.summary-number{font-size:2.4rem;font-weight:600;color:#111827}.summary-caption{font-weight:600;color:#374151}.summary-caption span{display:block;font-size:.85rem;font-weight:400;color:#9ca3af}.text-btn{border:none;background:transparent;color:#2563eb;font-size:.85rem;cursor:pointer}.text-btn:hover{text-decoration:underline}.role-summary-inline{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.kafile-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.search-field{flex:1;min-width:240px;display:flex;align-items:center;gap:8px}.search-field input{width:100%;padding:10px 14px;border:1px solid #d1d5db;border-radius:12px;background:#fff}.search-count{font-size:.85rem;color:#6b7280}.checkbox-row.compact{font-size:.9rem;color:#374151}.role-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.role-chip{border:1px solid #d1d5db;border-radius:999px;padding:6px 14px;background:#fff;font-size:.85rem;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.role-chip span{font-weight:600;color:#6b7280}.role-chip.active{background:#eef2ff;border-color:#c7d2fe;color:#312e81}.column-toggle.modern{border:1px solid #e5e7eb;border-radius:12px;padding:12px 16px;background:#f9fafb;margin-bottom:16px}.column-toggle.modern summary{font-weight:600;margin-bottom:8px;cursor:pointer}.column-list.compact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px 16px}.role-pill.compact{padding:6px 10px;border-radius:999px;border:1px solid #e5e7eb;background:#fff;font-size:.85rem;display:inline-flex;align-items:center;gap:6px}.role-summary-inline .role-pill.compact strong{color:#111827}.role-chip-list+.text-btn{margin-left:auto}.grid-table.compact th,.grid-table.compact td{padding:6px 10px}.danger-btn.ghost{background:transparent;color:#b91c1c;border:1px solid #fca5a5;padding:4px 10px}.danger-btn.ghost:hover{background:#fee2e2}.google-form-module .upload-card{border:1px dashed #cbd5f5;border-radius:12px;padding:16px;margin-bottom:16px;background:#f8fafc}.file-input{display:inline-flex;align-items:center;gap:10px;cursor:pointer;color:#2563eb;font-weight:600}.file-input input{display:none}.mapping-panel{border:1px solid #e5e7eb;border-radius:12px;padding:16px;margin-bottom:16px}.mapping-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;margin:16px 0}.mapping-grid label{display:flex;flex-direction:column;gap:6px;font-size:.9rem}.mapping-grid select{padding:6px 8px;border-radius:8px;border:1px solid #d1d5db}.required{color:#dc2626;margin-left:4px}.terminal-box{border:1px solid #111827;background:#0b1120;color:#e2e8f0;border-radius:12px;overflow:hidden}.terminal-header{padding:8px 12px;background:#151f34;font-weight:600}.terminal-body{max-height:260px;overflow-y:auto;padding:12px;font-family:Fira Code,Courier New,monospace;font-size:.9rem}.terminal-line{margin-bottom:6px}.terminal-line.info{color:#60a5fa}.terminal-line.warn{color:#fbbf24}.terminal-line.success{color:#4ade80}.terminal-line.error{color:#f87171}.passport-module .group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.passport-group{border:1px solid #e5e7eb;border-radius:12px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:12px}.passport-group .group-header{display:flex;justify-content:space-between;align-items:center}.group-title{font-weight:600;color:#111827}.pill-list{display:flex;flex-wrap:wrap;gap:8px}.passport-pill{border:1px solid #d1d5db;border-radius:999px;padding:6px 12px;background:#f8fafc;cursor:pointer;display:inline-flex;flex-direction:column;min-width:140px}.passport-pill.active{background:#eef2ff;border-color:#c7d2fe}.passport-pill .pill-name{font-weight:600;color:#111827}.passport-pill .pill-role{font-size:.75rem;color:#6b7280}[data-theme=dark] .passport-pill{background:#0f172a;border-color:#1f2937;color:#e5e7eb}[data-theme=dark] .passport-pill.active{background:#7fb0ff26;border-color:#334155}[data-theme=dark] .passport-pill .pill-name{color:#e5e7eb}[data-theme=dark] .passport-pill .pill-role{color:#cbd5e1}.selected-panel{margin-top:24px;border:1px solid #e5e7eb;border-radius:12px;padding:16px;background:#fdf4ff}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-title{font-weight:600;color:#6b21a8}.selected-list{display:flex;flex-wrap:wrap;gap:10px;min-height:60px}.selected-pill{border:1px solid #f0abfc;border-radius:10px;padding:8px 12px;background:#fce7f3;cursor:grab;display:flex;flex-direction:column;min-width:180px}.selected-pill span{font-weight:600}.admin-backup-panel{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.backup-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.backup-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.file-input-btn{display:inline-flex;align-items:center;justify-content:center;padding:.4rem 1rem;border-radius:999px;border:1px solid #d1d5db;background:#f9fafb;cursor:pointer;font-weight:500}.file-input-btn input{display:none}button.primary.ghost{background:transparent;color:#b3002d;border:1px solid #b3002d}.notice{padding:.6rem .75rem;border-radius:10px;font-size:.95rem}.notice.success{background:#ecfdf3;border:1px solid #bbf7d0;color:#166534}.notice.danger{background:#fef2f2;border:1px solid #fecdd3;color:#991b1b}.backup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.backup-card{border:1px solid #e5e7eb;border-radius:12px;padding:12px;background:#fff}.backup-summary{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.backup-summary li{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border:1px solid #f1f5f9;border-radius:10px;background:#f9fafb}.count-pill{padding:2px 10px;border-radius:999px;background:#eef2ff;color:#312e81;font-weight:600}.backup-notes{margin:0;padding-left:18px;color:#4b5563;display:flex;flex-direction:column;gap:6px}.selected-pill small{font-size:.75rem;color:#6b7280}.passport-module .info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;margin-bottom:20px}.passport-module .info-grid input{width:100%;padding:8px 10px;border:1px solid #d1d5db;border-radius:8px}.finalize-table-wrapper{overflow-x:auto;border:1px solid #e5e7eb;border-radius:12px}.finalize-table{width:100%;border-collapse:collapse}.finalize-table th,.finalize-table td{padding:10px;border-bottom:1px solid #e5e7eb;vertical-align:top}.finalize-table input{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:6px}.person-name{font-weight:600}.person-tc{font-size:.8rem;color:#6b7280}.landing-screen{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px 12px 28px;overflow:hidden;background:#fff2f5}.landing-screen:before{content:"";position:absolute;inset:-30% -10%;background:radial-gradient(30% 35% at 20% 20%,rgba(255,129,124,.95),transparent 60%),radial-gradient(30% 35% at 80% 15%,rgba(255,205,178,.95),transparent 60%),radial-gradient(35% 40% at 50% 80%,rgba(255,161,196,.85),transparent 60%),radial-gradient(30% 35% at 15% 75%,rgba(255,236,209,.85),transparent 60%);animation:landing-mesh 8s ease-in-out infinite alternate;filter:blur(12px) saturate(1.1);z-index:0;pointer-events:none}@keyframes landing-mesh{0%{transform:translate3d(-5%,-4%,0) scale(.96)}50%{transform:translate3d(5%,4%,0) scale(1.08)}to{transform:translate3d(-4%,5%,0) scale(.97)}}.landing-card{background:transparent;border-radius:32px;padding:20px 16px 24px;text-align:center;max-width:640px;width:100%;box-shadow:none;display:flex;flex-direction:column;align-items:center;gap:14px;position:relative;z-index:1}.landing-toggle-row{display:flex;justify-content:center;margin-top:14px}.theme-toggle-btn{border:1px solid rgba(15,23,42,.12);background:#ffffffb3;color:#0f172a;border-radius:999px;padding:9px 14px;font-weight:700;cursor:pointer;box-shadow:0 10px 24px #0f172a1a}.theme-toggle-btn:hover{transform:translateY(-1px);box-shadow:0 16px 32px #0f172a24}.landing-logo{width:clamp(120px,16vw,170px);height:clamp(120px,16vw,170px);margin-bottom:8px}.landing-card h1{margin:0 0 18px;font-size:clamp(26px,3vw,36px);color:#0f172a}.landing-welcome{margin:0 0 12px;font-size:clamp(16px,1.8vw,20px);color:#a81e3a;font-weight:600}.landing-actions{display:flex;flex-wrap:wrap;flex-direction:column;gap:14px;justify-content:center;align-items:center}@media(min-width:640px){.landing-actions{flex-direction:row;align-items:center}}.landing-option{flex:1 1 240px;border:none;border-radius:28px;padding:18px 22px;display:flex;flex-direction:column;gap:16px;align-items:center;justify-content:center;min-height:150px;background:#ffffff24;border:1px solid rgba(255,255,255,.35);box-shadow:0 18px 40px #0f172a14,inset 0 1px #fff6;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;text-align:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.landing-option.primary,.landing-option.secondary{background:#ffffff2e;color:#0f172a}.landing-option:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 22px 40px #0f172a1f}.landing-emoji{font-size:clamp(40px,5vw,60px)}.landing-option-text strong{display:block;font-size:18px}.landing-option-text{color:inherit}.app-center-root{min-height:100vh;background:#eef1f7;padding:32px 16px;display:flex;justify-content:center}.app-center-card{width:100%;max-width:1200px;background:#fff;border-radius:28px;box-shadow:0 30px 70px #0f172a14;padding:32px;display:flex;flex-direction:column;gap:24px}.app-center-hero{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:center}.hero-left{display:flex;align-items:center;gap:20px}.hero-logo{width:68px;height:68px;border-radius:18px;background:#f3f4f6;display:grid;place-items:center;padding:10px}.hero-logo img{width:100%;height:100%;object-fit:contain}.hero-label{text-transform:uppercase;font-size:12px;color:#94a3b8;letter-spacing:1px;margin:0}.hero-subtitle{margin:4px 0 0;color:#64748b}.back-btn{border:1px solid rgba(15,23,42,.1);border-radius:999px;padding:10px 18px;background:transparent;cursor:pointer;color:#0f172a;font-weight:600}.app-center-controls{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.search-input{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;border:1px solid rgba(15,23,42,.1);border-radius:14px;padding:12px 16px;background:#f8fafc;color:#475569}.search-input input{border:none;background:transparent;flex:1;font-size:16px;color:#0f172a}.search-input input:focus{outline:none}.view-toggle{display:inline-flex;background:#f1f5f9;border-radius:999px;padding:4px;border:1px solid rgba(15,23,42,.08)}.view-toggle button{border:none;background:transparent;padding:8px 16px;border-radius:999px;cursor:pointer;color:#475569;font-weight:600}.view-toggle button.active{background:#fff;color:#0f172a;box-shadow:0 5px 15px #0f172a14}.app-center-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.app-center-cards.list{grid-template-columns:1fr}.tool-card{position:relative;border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:12px 16px;display:flex;gap:12px;background:#fff;align-items:center;text-decoration:none;color:inherit;min-height:96px;transition:transform .15s ease,box-shadow .15s ease}.tool-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px #0f172a14}.tool-pin{position:absolute;top:14px;right:14px;border:none;background:transparent;font-size:18px;cursor:pointer;color:#cbd5f5}.tool-pin.active{color:#fbbf24}.tool-icon{width:48px;height:48px;border-radius:14px;background:#f1f5f9;display:grid;place-items:center;font-size:24px}.tool-body h3{margin:0;font-size:18px;color:#0f172a}.tool-body p{margin:6px 0 0;color:#475569;line-height:1.3}[data-theme=dark] .tool-body h3{color:#e5e7eb}.link-button.back-to-landing{margin-top:16px;background:none;border:none;color:#2563eb;cursor:pointer;font-weight:600}.mali-module .summary-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0 16px}.mali-module .summary-box{border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;background:#fff}.mali-module .summary-label{font-size:12px;color:#64748b;letter-spacing:.3px}.mali-module .summary-value{font-weight:700;margin-top:4px;color:#0f172a}.mali-module .block-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,1fr);gap:16px;margin-top:10px}.mali-module .block-list{display:flex;flex-direction:column;gap:10px}.mali-module .block-card{border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;background:#fff;display:flex;align-items:center;gap:10px;cursor:grab;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.mali-module .block-card.disabled{opacity:.55;cursor:not-allowed}.mali-module .block-card.dragging{border-color:#2563eb;box-shadow:0 8px 20px #2563eb2e;transform:scale(1.01)}.mali-module .block-card.drop-target{border-style:dashed;border-color:#94a3b8}.mali-module .block-card .block-info{flex:1}.mali-module .block-title{font-weight:700;margin-bottom:2px}.mali-module .block-sub{font-size:12px;color:#64748b}.mali-module .block-settings{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#f8fafc}.mali-module .input-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.mali-module .notice{border-radius:10px;padding:10px 12px;margin-bottom:10px}.mali-module .notice.warn{background:#fff4e6;border:1px solid #fdba74;color:#92400e}.toggle{display:inline-flex;align-items:center}.toggle input{display:none}.toggle span{width:42px;height:22px;background:#e2e8f0;border-radius:999px;position:relative;transition:background .15s ease;display:inline-block}.toggle span:after{content:"";position:absolute;top:3px;left:4px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s ease;box-shadow:0 1px 4px #0003}.toggle input:checked+span{background:#2563eb}.toggle input:checked+span:after{transform:translate(18px)}.pill{padding:4px 8px;border-radius:999px;font-size:12px;border:1px solid #e2e8f0}.pill.required{background:#ecfdf3;color:#166534;border-color:#bbf7d0}.pill.disabled{background:#f8fafc;color:#475569}.config-wrapper{max-width:900px;margin:0 auto;display:grid;gap:14px}.row-section{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #e5e7eb}.panel .row-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}[data-theme=dark]{color-scheme:dark}[data-theme=dark] body{background:#0b1220;color:#e5e7eb}[data-theme=dark] .landing-screen{background:#0b1220}[data-theme=dark] .landing-screen:before{background:radial-gradient(30% 35% at 20% 20%,rgba(111,191,255,.35),transparent 60%),radial-gradient(30% 35% at 80% 15%,rgba(186,161,255,.32),transparent 60%),radial-gradient(35% 40% at 50% 80%,rgba(93,224,230,.26),transparent 60%),radial-gradient(30% 35% at 15% 75%,rgba(34,197,235,.22),transparent 60%)}[data-theme=dark] .landing-card h1{color:#e5e7eb}[data-theme=dark] .landing-option{background:#ffffff0f;border-color:#ffffff1a;color:#e5e7eb}[data-theme=dark] .theme-toggle-btn{background:#ffffff14;border-color:#ffffff2e;color:#e5e7eb}[data-theme=dark] .login-screen{background:radial-gradient(circle at top left,#182132,#0b1220 40%)}[data-theme=dark] .login-box,[data-theme=dark] .landing-option,[data-theme=dark] .landing-card,[data-theme=dark] .app-center-card,[data-theme=dark] .app-card{background:#ffffff0a;color:#e5e7eb;box-shadow:0 20px 50px #00000073}[data-theme=dark] .login-form input,[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:#0f172a;border-color:#1f2937;color:#e5e7eb}[data-theme=dark] .login-form input:focus,[data-theme=dark] input:focus,[data-theme=dark] select:focus,[data-theme=dark] textarea:focus{border-color:#7fb0ff;box-shadow:0 0 0 3px #7fb0ff59}[data-theme=dark] .app-header{background:linear-gradient(90deg,#0f172a,#111827)}[data-theme=dark] .logo-box{background:#ffffff14}[data-theme=dark] .tournament-pill{background:linear-gradient(120deg,#111827,#0b1220);border-color:#1f2937;color:#e5e7eb}[data-theme=dark] .sidebar{background:#0f172a;border-color:#1f2937}[data-theme=dark] .sidebar-btn{color:#e5e7eb}[data-theme=dark] .actions-row .action-btn{background:linear-gradient(120deg,#111827,#0b1220);border-color:#1f2937;color:#e5e7eb}[data-theme=dark] .content{background:#0b1220;color:#e5e7eb}[data-theme=dark] .app-footer{background:#0b1220;color:#9ca3af}[data-theme=dark] .back-btn,[data-theme=dark] .header-btn,[data-theme=dark] .header-btn.secondary{color:#e5e7eb;border-color:#334155;background:#ffffff0f}[data-theme=dark] .search-input,[data-theme=dark] .view-toggle,[data-theme=dark] .tool-card{background:#0f172a;border-color:#1f2937;color:#e5e7eb}[data-theme=dark] .row-section{border-color:#1f2937}[data-theme=dark] .app-center-card{background:#0f172a;border-color:#1f2937;color:#e5e7eb;box-shadow:0 18px 50px #0006}[data-theme=dark] .app-center-hero .hero-label,[data-theme=dark] .hero-subtitle,[data-theme=dark] .app-center-controls,[data-theme=dark] .app-center-controls input,[data-theme=dark] .app-center-controls .search-input{color:#e5e7eb}[data-theme=dark] .app-center-controls .search-input{background:#0f172a;border-color:#1f2937}[data-theme=dark] .app-center-controls input::placeholder{color:#94a3b8}[data-theme=dark] .view-toggle{background:#111827;border-color:#1f2937}[data-theme=dark] .view-toggle button.active{background:#0f172a;color:#e5e7eb}[data-theme=dark] .tool-body p{color:#cbd5e1}[data-theme=dark] .back-btn{background:#ffffff0f;border-color:#334155;color:#e5e7eb}[data-theme=dark] .mali-module .block-card{background:#0f172a;border-color:#1f2937;color:#e5e7eb;box-shadow:0 10px 24px #00000052}[data-theme=dark] .mali-module .block-card.dragging{border-color:#7fb0ff;box-shadow:0 12px 26px #7fb0ff40}[data-theme=dark] .mali-module .block-card.drop-target{border-color:#334155}[data-theme=dark] .mali-module .block-sub{color:#cbd5e1}[data-theme=dark] .mali-module .block-settings{background:#0f172a;border-color:#1f2937;color:#e5e7eb}[data-theme=dark] .pill,[data-theme=dark] .single-column,[data-theme=dark] .field-list button.secondary,[data-theme=dark] .panel,[data-theme=dark] .card{background:#111827;border-color:#334155;color:#e5e7eb}[data-theme=dark] .bulk-item-control{background:#0f172a;border-color:#1f2937}[data-theme=dark] .bulk-item-label{color:#e5e7eb}[data-theme=dark] .toggle span{background:#334155}[data-theme=dark] .toggle span:after{background:#0ea5e9;box-shadow:0 1px 4px #00000059}[data-theme=dark] .field-list .secondary,[data-theme=dark] .pill.required{background:#10b9811f;color:#bbf7d0;border-color:#16a34a}[data-theme=dark] .pill.disabled{background:#0f172a;color:#94a3b8}[data-theme=dark] .search-bar input{background:#0f172a;border-color:#1f2937;color:#e5e7eb}[data-theme=dark] .view-toggle button{color:#e5e7eb}[data-theme=dark] .app-center-root{background:#0b1220}[data-theme=dark] .app-center-card,[data-theme=dark] .module,[data-theme=dark] .modal,[data-theme=dark] .app-card,[data-theme=dark] .tournament-card,[data-theme=dark] .section-card,[data-theme=dark] .surface{background:#0f172a;border-color:#1f2937;color:#e5e7eb;box-shadow:0 16px 40px #00000059}[data-theme=dark] .role-popup,[data-theme=dark] .modal-actions,[data-theme=dark] .tournament-list,[data-theme=dark] .tournament-toolbar,[data-theme=dark] table,[data-theme=dark] table th,[data-theme=dark] table td{background:#0f172a;color:#e5e7eb;border-color:#1f2937}[data-theme=dark] table th{background:linear-gradient(120deg,#7fb0ff2e,#5de0e629)}[data-theme=dark] button,[data-theme=dark] .header-btn,[data-theme=dark] .sidebar-btn,[data-theme=dark] .tournament-pill,[data-theme=dark] .back-btn{color:#e5e7eb;background:linear-gradient(120deg,#111827,#0b1220);border:1px solid #1f2937}[data-theme=dark] .sidebar-btn.active,[data-theme=dark] .sidebar-btn:hover{background:linear-gradient(120deg,#7fb0ff2e,#b482ff2e);border-color:#334155}[data-theme=dark] a{color:#93c5fd}
