:root{--bg: #ffffff;--surface: #ffffff;--ink: #111111;--label: #3c3c64;--muted: #6b6b80;--border: #cdd1dc;--error: #ff0000;--success: #067647;--danger: #a32d2d;--soft: #f4f4f6;--shadow-soft: rgba(149, 157, 165, .2) 0px 8px 24px;--font-display: "Source Serif 4", Georgia, serif;--font-body: "Source Sans 3", "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;font-family:var(--font-body);color:var(--ink);background:var(--bg)}.app{min-height:100vh;display:grid;place-items:start center;padding:1.5rem 1rem 2.5rem}.app:has(.admin-page),.app:has(.admin-login-page){place-items:stretch;padding:0}.form-page{width:min(100%,760px);max-width:100%;min-width:0}.form-shell{background:var(--surface);border:1px solid #eceef3;max-width:100%;min-width:0;overflow-x:hidden}.form-header{border-bottom:1px solid #eceef3}.brand-bar{background:#0a0a0a;padding:1rem 1.25rem;display:flex;justify-content:center;align-items:center}.brand-logo-link{display:inline-flex;justify-content:center}.brand-logo{width:min(100%,220px);height:auto;display:block}.form-header-body{padding:1.75rem 1.5rem 1.25rem;text-align:center}.brand{font-family:var(--font-display);font-size:clamp(1.8rem,3.5vw,2.35rem);font-weight:700;letter-spacing:.03em;color:#111;line-height:1.2;margin-bottom:.85rem}.subtitle{color:var(--label);font-size:.95rem;line-height:1.55;max-width:640px;margin:0 auto;text-align:left}.common-form{display:flex;flex-direction:column;gap:1.35rem;padding:1.25rem 1.5rem 2rem}.field,.field-group{display:flex;flex-direction:column;gap:.55rem;min-width:0;max-width:100%}.field-group{border:none;padding:0;background:transparent}.field-group legend,.field label{width:100%;color:var(--label);font-size:.9rem;font-weight:600;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}.field-group legend{float:left;margin-bottom:.55rem;padding:0}.field-group:after{content:"";display:table;clear:both}.req{color:red;font-weight:800;font-size:1.2em;margin-left:.2rem}.nested-field{margin-top:.35rem;padding-top:.75rem;border-top:1px solid #eceef3}.checkbox-list,.radio-list{display:flex;flex-direction:column;gap:.45rem}.radio-list.inline{flex-direction:row;flex-wrap:wrap;gap:1rem 1.5rem}.check-item{display:flex;align-items:flex-start;gap:.55rem;font-size:.95rem;line-height:1.45;color:#222;cursor:pointer}.check-item input{margin-top:.2rem;width:auto;accent-color:#111}input[type=text],input[type=email],input[type=tel],input[type=password],input[type=search],textarea,.file-input{width:100%;padding:.55em .65em;border:1px solid var(--border);border-radius:1px;background:transparent;color:#000;font:inherit;font-size:1.05rem;outline:none;transition:box-shadow .2s ease,background-color .2s ease}input[type=text]:hover,input[type=email]:hover,input[type=tel]:hover,input[type=password]:hover,input[type=search]:hover,textarea:hover,.file-input:hover,input[type=text]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=password]:focus,input[type=search]:focus,textarea:focus,.file-input:focus{box-shadow:var(--shadow-soft);background-color:#fff;color:#000}textarea{resize:vertical;min-height:120px}.file-input{font-size:.92rem;padding:.45em;background:var(--soft);max-width:100%;min-width:0}.file-picker{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.55rem .75rem;width:100%;max-width:100%;min-width:0;padding:.45em;border:1px solid var(--border);background:var(--soft)}.file-picker-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-picker-button{flex:0 0 auto;width:auto!important;margin:0;padding:.4em .75em;border:1px solid var(--border);background:#fff;color:#111;font-size:.88rem;font-weight:600;line-height:1.3;cursor:pointer}.file-picker-name{flex:1 1 12rem;min-width:0;max-width:100%;color:var(--muted);font-size:.88rem;line-height:1.4;overflow-wrap:anywhere;word-break:break-all}.file-list{list-style:none;color:var(--muted);font-size:.88rem}.file-list li{padding:.25rem 0;overflow-wrap:anywhere;word-break:break-all}.field-error{color:var(--error);font-size:.88rem;line-height:1.35}.field-hint{color:var(--muted);font-size:.85rem;line-height:1.35}.audio-recorder{display:flex;flex-direction:column;gap:.75rem;padding:.85rem;border:1px solid var(--border);background:#fff}.audio-actions{display:flex;flex-wrap:wrap;gap:.65rem}.audio-timer{color:var(--muted);font-size:.9rem}.voice-recorder{display:flex;flex-direction:column;gap:.85rem;padding:.85rem;border:1px solid var(--border);background:#fff}.voice-simple-row{display:flex;align-items:center;gap:.85rem}.voice-simple-meta{display:flex;flex-direction:column;gap:.2rem}.voice-timer{font-family:Consolas,Courier New,monospace;font-size:1.05rem;font-weight:700;color:#111}.voice-timer span{color:var(--muted);font-weight:600}.voice-record-btn{flex:0 0 auto;width:52px;height:52px;border:2px solid #111;border-radius:50%;background:#fff;display:grid;place-items:center;cursor:pointer;padding:0}.voice-record-inner{width:18px;height:18px;border-radius:50%;background:#e11d2a}.voice-stop-inner{width:16px;height:16px;border-radius:3px;background:#e11d2a}.voice-recorder.is-recording .voice-record-btn{border-color:#e11d2a}.voice-hint{color:var(--muted);font-size:.85rem}.voice-playback{display:flex;flex-direction:column;gap:.65rem}.voice-playback audio{width:100%}audio{width:100%}.captcha-field .captcha-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.captcha-image{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:188px;height:44px;padding:0;border:1px solid var(--border);border-radius:10px;background:#fff}.captcha-image svg{display:block;width:188px;height:44px}.captcha-refresh{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:#fff;color:#1d1d1f;cursor:pointer;padding:0}.captcha-refresh:hover:not(:disabled){background:#f4f4f6}.captcha-refresh:disabled{opacity:.6;cursor:not-allowed}.captcha-field .captcha-row input{flex:1 1 180px;min-width:160px;height:44px;padding:0 .85em}.submit-bar{padding-top:.25rem}button[type=submit]{width:100%;border:2px solid #000;background:#000;color:#fff;font:inherit;font-size:1.05rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.2;padding:.85em 1em;cursor:pointer;transition:background-color .2s ease,color .2s ease}button[type=submit]:hover:not(:disabled){background:#fff;color:#000;font-weight:900}button[type=submit]:disabled{opacity:.7;cursor:not-allowed}.btn-secondary,.btn-danger{border:1px solid var(--border);background:var(--soft);color:#111;font:inherit;font-weight:600;padding:.65rem .9rem;cursor:pointer}.btn-secondary:hover{background:#e9e9ee}.btn-danger{background:#fdecec;color:var(--danger);border-color:#f0c4c4}.status{font-size:1rem;font-weight:700;padding:.85rem 0}.status.success{color:var(--success)}.status.error{color:#b42318}.loader-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;background:#ffffffc7}.loader-box{display:flex;flex-direction:column;align-items:center;gap:.85rem;padding:1.5rem 1.75rem;background:#fff;border:1px solid var(--border)}.loader-box p{color:var(--ink);font-size:.95rem;font-weight:600}.spinner,.btn-spinner{width:36px;height:36px;border:3px solid #ddd;border-top-color:#111;border-radius:50%;animation:spin .8s linear infinite}.btn-loading{display:inline-flex;align-items:center;justify-content:center;gap:.55rem}.btn-spinner{width:16px;height:16px;border-width:2px;border-top-color:currentColor}@keyframes spin{to{transform:rotate(360deg)}}.admin-login-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at top left,rgba(11,107,58,.08),transparent 40%),linear-gradient(180deg,#f7f8fa,#eef1f4)}.admin-login-shell{width:min(100%,440px);animation:formEnter .45s ease both}.admin-login-brand{background:#0a0a0a;color:#fff;text-align:center;padding:1.4rem 1.25rem 1.2rem;border:1px solid #111}.admin-login-logo{width:min(100%,180px);height:auto;margin:0 auto .75rem;display:block}.admin-login-brand h1{font-family:var(--font-display);font-size:1.55rem;letter-spacing:.04em;margin-bottom:.3rem}.admin-login-brand p{color:#c9c9c9;font-size:.9rem}.admin-login-card{display:flex;flex-direction:column;gap:.95rem;padding:1.6rem 1.4rem 1.4rem;border:1px solid var(--border);border-top:none;background:#fff;box-shadow:0 16px 40px #11111114}.admin-login-card-head h2{font-family:var(--font-display);font-size:1.35rem;margin-bottom:.25rem}.admin-login-card-head p{color:var(--muted);font-size:.9rem;margin-bottom:.25rem}.admin-login-btn{width:100%;border:2px solid #000;background:#000;color:#fff;font:inherit;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.85em 1em;cursor:pointer;transition:background-color .2s ease,color .2s ease}.admin-login-btn:hover:not(:disabled){background:#fff;color:#000}.admin-login-btn:disabled{opacity:.7;cursor:not-allowed}.admin-back-link{text-align:center;color:var(--label);font-size:.9rem;text-decoration:none;font-weight:600}.admin-back-link:hover{color:#000}.admin-page{width:100%;min-height:100vh;padding:1rem 1.25rem 1.75rem;background:radial-gradient(circle at top right,rgba(11,107,58,.06),transparent 35%),#f3f5f7}.admin-topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;padding:.85rem 1rem;background:#0a0a0a;color:#fff;border:1px solid #111}.admin-topbar-brand{display:flex;align-items:center;gap:.85rem}.admin-topbar-brand img{width:110px;height:auto;display:block}.admin-topbar-brand h1{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.03em;line-height:1.15}.admin-topbar-brand p{color:#bdbdbd;font-size:.82rem}.admin-topbar-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.admin-user-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .7rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);font-size:.85rem;font-weight:600}.admin-user-dot{width:8px;height:8px;border-radius:50%;background:#3dcf7a}.admin-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.admin-stat-card{background:#fff;border:1px solid var(--border);padding:.9rem 1rem}.admin-stat-card p{color:var(--muted);font-size:.82rem;margin-bottom:.25rem}.admin-stat-card strong{font-family:var(--font-display);font-size:1.55rem}.admin-loading{display:flex;align-items:center;gap:.75rem;padding:1.25rem;background:#fff;border:1px solid var(--border)}.admin-error{margin-bottom:.85rem}.btn-link{display:inline-flex;align-items:center;text-decoration:none;padding:.6rem .85rem;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);font-weight:600;font-size:.88rem}.admin-topbar .btn-secondary,.admin-topbar .btn-danger{padding:.6rem .85rem;font-size:.88rem}.admin-topbar .btn-secondary{background:#fff;color:#111;border-color:#fff}.admin-list{background:#fff;border:1px solid var(--border);min-height:420px;box-shadow:0 10px 28px #1111110a}.admin-panel-head{display:flex;flex-direction:column;align-items:stretch;gap:1rem;padding:1.15rem 1.15rem 1rem;border-bottom:1px solid #eceef3}.admin-list-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.admin-table-title h2{font-family:var(--font-display);font-size:1.35rem;margin-bottom:.2rem}.admin-table-title p{color:var(--muted);font-size:.88rem}.admin-export-btn{white-space:nowrap}.admin-search-wrap{position:relative;width:min(100%,420px)}.admin-search-icon{position:absolute;left:.85rem;top:50%;width:16px;height:16px;transform:translateY(-50%);color:#8a8a9a;pointer-events:none}input.admin-search[type=search]{width:100%;border:1px solid var(--border);border-radius:999px;padding:.7rem 1rem .7rem 2.7rem;font:inherit;background:#fff}input.admin-search[type=search]:hover,input.admin-search[type=search]:focus{outline:none;box-shadow:var(--shadow-soft);background:#fff}input.admin-search[type=search]::-webkit-search-decoration,input.admin-search[type=search]::-webkit-search-cancel-button,input.admin-search[type=search]::-webkit-search-results-button,input.admin-search[type=search]::-webkit-search-results-decoration{display:none}.admin-empty{padding:2.5rem 1.25rem;text-align:center}.admin-empty h3{font-family:var(--font-display);font-size:1.15rem;margin-bottom:.35rem}.admin-empty p{color:var(--muted);font-size:.92rem}.table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.88rem}.admin-table th,.admin-table td{border-bottom:1px solid #eceef3;padding:.8rem .85rem;text-align:left;vertical-align:middle}.admin-table th{background:#f7f8fa;color:var(--label);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.admin-table tbody tr:hover{background:#f8faf8}.btn-view{padding:.4rem .7rem;font-size:.82rem}.admin-table-footer{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.85rem 1rem;border-top:1px solid #eceef3}.admin-table-footer p{color:var(--muted);font-size:.88rem;font-weight:600}.admin-show-entries{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink);font-size:.9rem;font-weight:500}.admin-show-entries select{min-width:64px;border:1px solid var(--border);border-radius:6px;padding:.35rem .45rem;font:inherit;background:#fff}.admin-pagination{display:flex;flex-wrap:wrap;gap:.4rem}.admin-pagination .btn-secondary{min-width:36px;padding:.4rem .65rem;font-size:.82rem}.admin-pagination .btn-secondary.is-active{background:#111;color:#fff;border-color:#111}.admin-pagination .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.admin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;display:grid;place-items:center;padding:1.25rem;background:#0a0a0a8c}.admin-modal{width:min(100%,820px);max-height:calc(100vh - 2.5rem);overflow:auto;background:#fff;border:1px solid #eceef3;box-shadow:var(--shadow-soft)}.detail-card{padding:1rem}.detail-table{width:100%;border-collapse:collapse;font-size:.92rem}.detail-table th,.detail-table td{border:1px solid #d0d7de;padding:10px 12px;vertical-align:top;text-align:left;line-height:1.45;color:#1c1c1c}.detail-table th{width:38%;background:#f6f8fa;font-weight:600;color:#24292f}.detail-list-item{margin-bottom:12px}.detail-list-item:last-child{margin-bottom:0}.admin-file-list li{margin-bottom:.25rem}.admin-file-list a{color:#0b6b3a;font-weight:600;overflow-wrap:anywhere;word-break:break-all}.detail-file-name{margin-bottom:.5rem;overflow-wrap:anywhere;word-break:break-all;font-weight:600}.detail-file-preview{display:block;max-width:100%;height:auto;border:1px solid #d0d7de;background:#fff}.detail-file-pdf{width:100%;min-height:360px}.file-download{display:inline-block;padding:.45rem .75rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:#111;text-decoration:none;font-weight:600;overflow-wrap:anywhere;word-break:break-all}.pre-wrap{white-space:pre-wrap}.detail-card audio{width:100%;max-width:360px;margin-top:.25rem}@media (max-width: 1100px){.admin-modal{width:min(100%,720px)}}@media (max-width: 720px){.admin-stats{grid-template-columns:1fr}.detail-table th,.detail-table td{display:block;width:100%}.admin-topbar-brand img{width:90px}}@media (max-width: 720px){.form-header-body,.common-form{padding-left:1rem;padding-right:1rem}.brand{font-size:1.65rem}.brand-logo{width:min(100%,180px)}.radio-list.inline{flex-direction:column;gap:.45rem}.file-picker-name,.captcha-field .captcha-row input{flex-basis:100%}}.success-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:grid;place-items:center;padding:1.25rem;background:#0a0a0a8c}.success-popup{width:min(100%,420px);background:#fff;border:1px solid #eceef3;box-shadow:var(--shadow-soft);padding:1.75rem 1.5rem 1.4rem;text-align:center}.success-popup-icon{width:52px;height:52px;margin:0 auto .9rem;display:grid;place-items:center;border-radius:50%;background:#e8f6ee;color:var(--success);font-size:1.6rem;font-weight:700}.success-popup h2{font-family:var(--font-display);font-size:1.45rem;margin-bottom:.55rem}.success-popup p{color:var(--label);line-height:1.5;margin-bottom:1.2rem}.success-popup-btn{min-width:120px;border:2px solid #000;background:#000;color:#fff;font:inherit;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.7em 1.2em;cursor:pointer}.success-popup-btn:hover{background:#fff;color:#000}
