.app-header{background:linear-gradient(150deg,#071a2f,#0b2a49);color:var(--color-header-text);box-shadow:var(--shadow-header);position:sticky;top:0;z-index:100}.header-inner{max-width:680px;margin:0 auto;padding:.62rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem}.header-brand-wrap{display:flex;align-items:center;gap:.55rem;min-width:0}.header-brand{font-size:1.15rem;font-weight:700;letter-spacing:.01em;color:var(--color-header-text);display:inline-flex;align-items:center;padding:.12rem .5rem;border:1px solid rgba(150,185,225,.38);border-radius:999px;transition:border-color .2s,box-shadow .2s}.header-brand--online{border-color:#22c55ee6;box-shadow:0 0 10px #22c55e6b}.header-brand--degraded{border-color:#f59e0be6;box-shadow:0 0 10px #f59e0b6b}.header-brand--offline{border-color:#ef4444e6;box-shadow:0 0 10px #ef44446b}.header-brand--checking{border-color:#93c5fde6;box-shadow:0 0 10px #93c5fd6b}.header-user{font-size:.78rem;font-weight:700;color:var(--color-header-muted);border-left:1px solid rgba(230,241,255,.28);padding-left:.55rem;max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:.35rem}.header-icon-btn{width:2rem;height:2rem;border:1px solid rgba(150,185,225,.48);border-radius:8px;background:#ffffff1f;color:var(--color-header-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,border-color .15s}.header-icon-btn:hover{border-color:#90bbe9;background:#fff3}.header-icon-btn--logout:hover{border-color:#fca5a5;background:#dc262633;color:#fca5a5}@media (max-width: 640px){.header-brand{padding:.1rem .42rem}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--color-bg)}.login-card{width:100%;max-width:380px;padding:2rem 1.6rem}.login-brand{font-size:1.6rem;font-weight:800;color:var(--color-header-from);text-align:center;letter-spacing:.01em}.login-sub{text-align:center;color:var(--color-text-muted);font-size:.82rem;margin-top:.25rem;margin-bottom:1.4rem}.login-tabs{display:flex;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;margin-bottom:1.4rem}.login-tab{flex:1;padding:.5rem;border:none;background:transparent;font-size:.875rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s}.login-tab--active{background:var(--color-accent);color:#fff}.login-form{display:flex;flex-direction:column;gap:1rem}.field-label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;color:var(--color-text-muted)}.field-input{padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.95rem;color:var(--color-text);background:#fff;outline:none;transition:border-color .15s}.field-input:focus{border-color:var(--color-accent)}.remember-label{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--color-text-muted);cursor:pointer}.login-submit{width:100%;justify-content:center;padding:.7rem;font-size:.95rem;margin-top:.4rem}.request-list{display:flex;flex-direction:column;gap:.75rem}.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.2rem}.list-title{font-size:.9rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.list-empty{color:var(--color-text-muted);font-size:.875rem;text-align:center;padding:1.5rem 0}.list-empty-state{padding:2rem;text-align:center;color:var(--color-text-muted);font-size:.875rem}.request-items{list-style:none;display:flex;flex-direction:column;gap:.55rem}.request-item{padding:.9rem 1rem;cursor:pointer;transition:box-shadow .15s,transform .1s}.request-item:hover{box-shadow:0 8px 24px #071a2f1f;transform:translateY(-1px)}.item-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.item-mode{font-size:.72rem;color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.item-date{margin-left:auto;font-size:.72rem;color:var(--color-text-muted)}.item-preview{font-size:.875rem;color:var(--color-text);line-height:1.45}.item-preview--muted{color:var(--color-text-muted);font-style:italic}.request-detail{display:flex;flex-direction:column;gap:.75rem}.detail-nav{display:flex;align-items:center;justify-content:space-between}.detail-back{display:inline-flex;align-items:center;gap:.35rem}.detail-card{padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:1rem}.detail-header{display:flex;align-items:center;gap:.5rem}.detail-mode{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);font-weight:600}.detail-date{margin-left:auto;font-size:.72rem;color:var(--color-text-muted)}.detail-section{display:flex;flex-direction:column;gap:.4rem}.detail-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.detail-body-text{font-size:.9rem;line-height:1.6;color:var(--color-text);white-space:pre-wrap}.detail-pending{display:flex;align-items:center;gap:.55rem;background:#f0f4f8;border-radius:8px;padding:.7rem .9rem;font-size:.82rem;color:var(--color-text-muted)}.spinner{width:14px;height:14px;border:2px solid rgba(29,111,232,.25);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.detail-response{background:#f8fbff;border:1px solid #dbeafe;border-radius:10px;padding:.9rem}.detail-response-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.4rem}.tts-btn{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem}.tts-btn--active{border-color:var(--color-accent);color:var(--color-accent);background:#e8f0fe}.detail-loading,.detail-error{padding:2rem;text-align:center;color:var(--color-text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#071a2f73;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding:0}@media (min-width: 480px){.modal-overlay{align-items:center;padding:1rem}}.modal-card{width:100%;max-width:520px;padding:1.2rem 1.3rem 1.5rem;border-bottom-left-radius:0;border-bottom-right-radius:0}@media (min-width: 480px){.modal-card{border-radius:var(--radius-card)}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.modal-title{font-size:1rem;font-weight:700;color:var(--color-text)}.modal-close{width:1.8rem;height:1.8rem;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer}.modal-close:hover{background:#f0f4f8}.modal-form{display:flex;flex-direction:column;gap:.85rem}.mode-tabs{display:flex;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.mode-tab{flex:1;padding:.45rem;border:none;background:transparent;font-size:.82rem;font-weight:600;color:var(--color-text-muted);cursor:pointer}.mode-tab--active{background:var(--color-accent);color:#fff}.text-input{width:100%;padding:.7rem .8rem;border:1px solid var(--color-border);border-radius:8px;font-size:.9rem;color:var(--color-text);resize:vertical;outline:none;line-height:1.5}.text-input:focus{border-color:var(--color-accent)}.audio-capture{border:1px solid #dbeafe;background:#f8fbff;border-radius:10px;padding:.8rem;display:flex;flex-direction:column;gap:.6rem}.audio-capture-title{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.audio-capture-actions{display:flex;gap:.45rem}.audio-recording-note{color:#dc2626;font-size:.8rem;font-weight:600}.audio-preview{width:100%}.file-drop{border:2px dashed var(--color-border);border-radius:10px;padding:1.4rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,background .15s}.file-drop:hover{border-color:var(--color-accent);background:#f0f6ff}.modal-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:.3rem}.app{width:100%;min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg)}.app-body{flex:1;width:100%;max-width:680px;margin:0 auto;padding:1rem}.badge{display:inline-block;padding:.18em .55em;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.badge-submitted{background:#e8f0fe;color:#1d4ed8}.badge-processing{background:#fef3c7;color:#92400e}.badge-response_ready{background:#d1fae5;color:#065f46}.badge-failed{background:#fee2e2;color:#991b1b}.badge-rejected_by_policy{background:#fce7f3;color:#9d174d}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.btn-primary{border:none;border-radius:999px;padding:.55rem 1.2rem;font-size:.875rem;font-weight:700;color:#fff;background:linear-gradient(160deg,#1d6fe8,#1358be);cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}.btn-primary:hover{filter:brightness(1.06)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{border:1px solid var(--color-border);border-radius:8px;padding:.45rem .9rem;font-size:.82rem;font-weight:600;background:transparent;color:var(--color-text-muted);cursor:pointer}.btn-ghost:hover{background:#f0f4f8;color:var(--color-text)}.btn-danger{border:1px solid #fca5a5;border-radius:8px;padding:.45rem .9rem;font-size:.82rem;font-weight:600;background:transparent;color:#dc2626;cursor:pointer}.btn-danger:hover{background:#fee2e2}.error-text{color:#dc2626;font-size:.82rem;margin-top:.4rem}*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #f5f9fc;--color-header-from: #071a2f;--color-header-to: #0b2a49;--color-card: #ffffff;--color-border: #d9e2ea;--color-text: #1a2b3c;--color-text-muted: #5f7697;--color-accent: #1d6fe8;--color-accent-dark: #1358be;--color-header-text: #e6f1ff;--color-header-muted: #d7eaff;--radius-card: 14px;--shadow-card: 0 6px 18px rgba(7, 26, 47, .08);--shadow-header: 0 8px 24px rgba(7, 26, 47, .24)}html,body,#root{width:100%;height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;background:var(--color-bg);color:var(--color-text)}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit}
