:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#0a0a0a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}h1{margin:0}a{font-weight:500;color:#f5c800;text-decoration:inherit}a:hover{color:#ffe066}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#f5c800}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.toast-container{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem}@keyframes toast-in{0%{opacity:0;transform:translate(2rem)}to{opacity:1;transform:translate(0)}}.toast{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;border-radius:6px;box-shadow:0 4px 12px #0006;max-width:360px;background-color:#1e1e1e;color:#ffffffde;border-left:4px solid transparent;animation:toast-in .2s ease-out}.toast__message{flex:1;font-size:.9rem;line-height:1.4}.toast__close{background:none;border:none;color:#ffffff80;cursor:pointer;font-size:1.1rem;line-height:1;padding:0;flex-shrink:0}.toast__close:hover{color:#ffffffde}.toast--success{border-left-color:#4caf50}.toast--error{border-left-color:#f44336}.toast--warning{border-left-color:#ff9800}.toast--info{border-left-color:#2196f3}.layout{display:flex;min-height:100vh}.lang-toggle{display:flex;gap:.35rem;padding:0 .5rem .75rem;margin-bottom:.25rem}.lang-toggle__btn{display:flex;align-items:center;padding:.2rem .35rem;border-radius:5px;border:1px solid transparent;background:transparent;cursor:pointer;opacity:.45;transition:opacity .15s,background-color .15s,border-color .15s}.lang-toggle__btn:hover{background-color:#ffffff0f;opacity:.75}.lang-toggle__btn--active{background-color:#f5c8001a;border-color:#f5c8004d;opacity:1}.lang-toggle__flag{width:22px;height:auto;display:block;border-radius:2px}.sidebar{flex-shrink:0;background:#111;display:flex;flex-direction:column;padding:1.75rem .875rem 1rem;box-sizing:border-box;position:sticky;top:0;height:100vh}.sidebar-resize-handle{position:relative;width:4px;flex-shrink:0;cursor:col-resize;background:transparent;transition:background-color .15s}.sidebar-resize-handle:hover,.sidebar-resize-handle--dragging{background-color:#f5c80059}.sidebar-resize-handle:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:4px;border-radius:50%;background:#ffffff40;box-shadow:0 -8px #ffffff40,0 8px #ffffff40;pointer-events:none;transition:background-color .15s,box-shadow .15s}.sidebar-resize-handle:hover:before,.sidebar-resize-handle--dragging:before{background:#f5c800cc;box-shadow:0 -8px #f5c800cc,0 8px #f5c800cc}.sidebar-brand{padding:0 .5rem 1.25rem;margin-bottom:.75rem;border-bottom:1px solid rgba(245,200,0,.2)}.sidebar-logo{display:block;width:100%;max-width:140px;height:auto;margin-bottom:.75rem}.sidebar-brand__title{font-size:.95rem;font-weight:700;margin:0 0 .2rem;letter-spacing:-.01em;color:#fff}.sidebar-brand__sub{margin:0;font-size:.72rem;color:#666}.sidebar-user{display:flex;align-items:center;gap:.6rem;padding:.75rem .5rem;border-top:1px solid #222222;border-bottom:1px solid #222222;margin-bottom:.75rem}.sidebar-user__avatar{flex-shrink:0;width:34px;height:34px;border-radius:50%;background:#f5c800;color:#000;font-size:.72rem;font-weight:700;letter-spacing:.03em;display:flex;align-items:center;justify-content:center}.sidebar-user__info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.sidebar-user__label{font-size:.65rem;color:#555;text-transform:uppercase;letter-spacing:.05em}.sidebar-user__name{font-size:.82rem;font-weight:500;color:#ccc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user__role{font-size:.65rem;color:#555;text-transform:uppercase;letter-spacing:.05em}.sidebar-nav{display:flex;flex-direction:column;gap:.15rem}.sidebar-footer{margin-top:auto;padding-top:1rem}.btn--logout{width:100%}.nav-link{display:block;padding:.5rem .75rem;border-radius:7px;font-size:.87rem;font-weight:500;color:#888;text-decoration:none;transition:background-color .15s,color .15s}.nav-link:hover{background-color:#ffffff0f;color:#fff}.nav-link--active{background-color:#f5c8001a;color:#f5c800}.nav-link--active:hover{background-color:#f5c80029;color:#ffe066}.page-content{flex:1;display:flex;flex-direction:column;align-items:center;padding:2rem 1.25rem;box-sizing:border-box}.subtitle{margin:0;font-size:.88rem;color:#666}.app-main{width:100%;max-width:740px;display:flex;flex-direction:column;gap:1.25rem}.job-id-header{font-family:ui-monospace,Cascadia Code,monospace;font-size:.75em;background:#1a1a1a;border:1px solid #2e2e2e;padding:.15rem .45rem;border-radius:4px;color:#888;letter-spacing:0}.status-indicator{display:flex;align-items:center;gap:.55rem;padding:.5rem .9rem;border-radius:8px;border:1px solid;font-size:.85rem;font-weight:500;width:fit-content}.status-indicator__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-indicator--processing{border-color:#4caf504d;background:#4caf500f;color:#66bb6a}.status-indicator--processing .status-indicator__dot{background:#4caf50;animation:dot-pulse 1.5s ease-in-out infinite}.status-indicator--completed{border-color:#4caf5066;background:#4caf501a;color:#81c784}.status-indicator--completed .status-indicator__dot{background:#4caf50}.status-indicator--awaiting-signature{border-color:#ffa72659;background:#ffa7260f;color:#ffa726}.status-indicator--awaiting-signature .status-indicator__dot{background:#ffa726}.status-indicator--error{border-color:#f443364d;background:#f443360f;color:#ef5350}.status-indicator--error .status-indicator__dot{background:#f44336}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.drop-zone{border:2px dashed #3a3a3a;border-radius:14px;padding:3rem 2rem;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .18s,background-color .18s;outline:none}.drop-zone:hover,.drop-zone:focus-visible,.drop-zone--active{border-color:#f5c800;background-color:#f5c8000d}.drop-zone--has-file{border-style:solid;border-color:#4caf50;background-color:#4caf500d}.drop-zone--disabled{cursor:default;pointer-events:none;opacity:.55}.drop-icon{font-size:2.4rem;margin-bottom:.6rem;line-height:1}.drop-title{font-size:1rem;font-weight:500;margin:0 0 .25rem;color:#e0e0e0}.drop-hint{font-size:.83rem;color:#666;margin:0}.actions{display:flex;gap:.75rem}.btn{padding:.6rem 1.4rem;border-radius:8px;border:none;font-size:.95rem;font-weight:500;cursor:pointer;transition:opacity .18s,transform .1s}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn:active{transform:scale(.97)}.btn--primary{background-color:#f5c800;color:#000}.btn--primary:hover{background-color:#e6bb00;opacity:1}.btn--secondary{background-color:#2a2a2a;color:#bbb;border:1px solid #3a3a3a}.btn--secondary:hover{background-color:#333}.progress-section{display:flex;flex-direction:column;gap:.5rem}.upload-timer{font-size:.82rem;color:#666;font-variant-numeric:tabular-nums;font-family:monospace}.progress-bar-row{display:flex;align-items:center;gap:.75rem}.progress-bar{flex:1;height:6px;background-color:#2a2a2a;border-radius:999px;overflow:hidden}.progress-bar__fill{height:100%;background-color:#f5c800;border-radius:999px;transition:width .25s ease}.progress-label{font-size:.82rem;color:#666;min-width:2.8rem;text-align:right;font-variant-numeric:tabular-nums}.job-id{display:flex;align-items:center;gap:.6rem;font-size:.83rem}.job-id__label{color:#666;font-weight:500;white-space:nowrap}.job-id__value{font-family:ui-monospace,Cascadia Code,monospace;font-size:.78rem;background:#1a1a1a;border:1px solid #2e2e2e;padding:.2rem .5rem;border-radius:5px;color:#bbb;word-break:break-all}.upo-section{display:flex;flex-direction:column;gap:.6rem;padding:1rem 1.25rem;border:1px solid #2e4a2e;border-radius:10px;background:#131f13}.upo-heading{font-size:.75rem;font-weight:600;color:#4caf50;margin:0;text-transform:uppercase;letter-spacing:.07em}.upo-links{display:flex;gap:.75rem;flex-wrap:wrap}.upo-link{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;border-radius:7px;font-size:.88rem;font-weight:500;text-decoration:none;cursor:pointer;transition:opacity .18s,transform .1s}.upo-link:active{transform:scale(.97)}.upo-link--xml{background:#4caf501f;border:1px solid rgba(76,175,80,.3);color:#66bb6a}.upo-link--xml:before{content:"📄 "}.upo-link--xml:hover{background:#4caf5033;color:#a5d6a7}.upo-link--html{background:#f5c8001a;border:1px solid rgba(245,200,0,.3);color:#f5c800}.upo-link--html:before{content:"🌐 "}.upo-link--html:hover{background:#f5c8002e;color:#ffe066}.btn--download{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.2rem;border-radius:8px;border:1px solid #3a3a3a;background-color:#1e1e1e;color:#bbb;font-size:.9rem;font-weight:500;text-decoration:none;cursor:pointer;transition:background-color .18s,border-color .18s}.btn--download:before{content:"⬇ "}.btn--download:hover{background-color:#2a2a2a;border-color:#f5c800;color:#fff}.signing-section{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;border:1px solid #2e2e2e;border-radius:12px;background:#191919}.drop-zone--signing{padding:2rem 1.5rem}.countdown{display:flex;flex-direction:column;align-items:center;gap:.2rem}.countdown__timer{font-size:2.6rem;font-weight:700;font-variant-numeric:tabular-nums;font-family:ui-monospace,Cascadia Code,monospace;color:#4caf50;line-height:1;letter-spacing:.04em;transition:color .4s}.countdown--urgent .countdown__timer{color:#ffa726}.countdown--expired .countdown__timer{color:#f44336;font-size:1.8rem}.countdown__label{font-size:.8rem;color:#666;text-transform:uppercase;letter-spacing:.06em}.fm-error-callout{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;border:1px solid rgba(244,67,54,.35);border-radius:8px;background:#f4433614;color:#ef5350;font-size:.85rem}.fm-error-detail{color:#bbb;font-size:.8rem;word-break:break-word}.upload-error{margin:0;padding:.6rem .9rem;border:1px solid rgba(244,67,54,.35);border-radius:8px;background:#f4433614;color:#ef5350;font-size:.85rem;word-break:break-word}.log-section{display:flex;flex-direction:column;gap:.5rem}.log-heading{font-size:.75rem;font-weight:600;color:#555;margin:0;text-transform:uppercase;letter-spacing:.07em}.log-list{background:#141414;border:1px solid #2a2a2a;border-radius:10px;padding:.75rem;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:.35rem}.log-entry{display:grid;grid-template-columns:auto auto 1fr auto;align-items:baseline;gap:.5rem;font-size:.81rem;line-height:1.45}.log-time{font-family:ui-monospace,Cascadia Code,monospace;font-size:.75rem;color:#444;white-space:nowrap}.log-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .35rem;border-radius:3px;white-space:nowrap;background:#222;color:#777}.log-entry--info .log-badge{background:#f5c8001f;color:#f5c800}.log-entry--error .log-badge{background:#f4433626;color:#f44336}.log-entry--completed .log-badge,.log-entry--success .log-badge{background:#4caf5026;color:#4caf50}.log-entry--warning .log-badge{background:#ffa72626;color:#ffa726}.log-message{color:silver}.log-duration{font-family:ui-monospace,Cascadia Code,monospace;font-size:.75rem;color:#666;white-space:nowrap;text-align:right}.landing{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#0a0a0a;padding:2rem;box-sizing:border-box;position:relative}.lang-toggle--corner{position:absolute;top:1.25rem;right:1.25rem;padding:0;margin:0}.landing-card{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:3rem 2.5rem;background:#fff;border-radius:20px;border-top:5px solid #f5c800;text-align:center;max-width:420px;width:100%;box-shadow:0 24px 64px #000000b3}.landing-logo{width:140px;height:auto}.landing-title{font-size:1.5rem;font-weight:700;margin:0;color:#111;line-height:1.35}.landing-actions{display:flex;gap:.75rem;width:100%}.landing-actions .btn{flex:1}.landing-actions .btn--primary{background-color:#f5c800;color:#000}.landing-actions .btn--primary:hover{background-color:#e6bb00;opacity:1}.landing-actions .btn--secondary{background-color:#111;color:#fff;border-color:#111}.landing-actions .btn--secondary:hover{background-color:#333}.landing-contact{margin-top:1rem;font-size:.8rem;color:#666;text-align:center}.landing-contact a{color:inherit;text-decoration:underline}.error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;text-align:center;background:#0a0a0a;padding:2rem}.error-page__code{font-size:6rem;font-weight:800;line-height:1;color:#2a2a2a;font-variant-numeric:tabular-nums}.error-page__title{font-size:1.5rem;font-weight:600;margin:0;color:#e0e0e0}.error-page__message{font-size:.9rem;color:#666;margin:0 0 .5rem;max-width:360px}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#0a0a0a}.auth-loading__spinner{display:block;width:36px;height:36px;border:3px solid #2a2a2a;border-top-color:#f5c800;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.history-empty{display:flex;flex-direction:column;align-items:center;padding:4rem 2rem;text-align:center;gap:1rem}.app-main--wide{max-width:1400px}.history-table-wrapper{overflow-x:auto;border:1px solid #222;border-radius:10px;background:#111}.history-table{width:100%;border-collapse:collapse;font-size:.85rem}.history-table thead th{padding:.5rem .85rem;text-align:left;font-size:.72rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid #222;white-space:nowrap}.history-row{border-bottom:1px solid #1a1a1a;transition:background-color .12s;cursor:pointer}.history-row:last-of-type{border-bottom:none}.history-row:hover{background-color:#ffffff06}.history-cell{padding:.55rem .85rem;color:silver;vertical-align:middle}.history-cell--mono{font-family:ui-monospace,Cascadia Code,monospace;font-size:.78rem;color:#888}.history-status{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.history-status--completed{background:#4caf501f;color:#66bb6a}.history-status--error{background:#f443361f;color:#ef5350}.history-status--processing{background:#f5c8001a;color:#f5c800}.history-detail-modal{background:#111;border:1px solid #222;border-radius:12px;max-width:680px;width:100%;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column}.history-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;border-bottom:1px solid #222;flex-shrink:0}.history-modal-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.history-modal-title{font-family:ui-monospace,Cascadia Code,monospace;font-size:.78rem;color:#888;word-break:break-all}.history-modal-label{font-family:inherit;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#555}.history-modal-ref-link{color:#6ba3d6;text-decoration:none;font-size:.78rem;border-bottom:1px solid rgba(107,163,214,.35);transition:color .12s,border-color .12s}.history-modal-ref-link:hover{color:#93bfe3;border-color:#93bfe399}.history-modal-meta{display:flex;gap:1.5rem;padding:.75rem 1.25rem;font-size:.82rem;color:#888;border-bottom:1px solid #1a1a1a;flex-wrap:wrap}.history-modal-upo{display:flex;gap:.5rem;padding:.75rem 1.25rem;border-bottom:1px solid #1a1a1a}.copy-btn{display:inline-flex;align-items:center;justify-content:center;padding:.15rem;margin-left:.35rem;background:none;border:none;border-radius:3px;color:#555;cursor:pointer;vertical-align:middle;transition:color .12s,background-color .12s;line-height:0}.copy-btn:hover{color:#aaa;background-color:#ffffff12}.copy-btn--copied{color:#66bb6a}.history-detail-content{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.job-timespan{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;font-size:.8rem;padding-bottom:.5rem;border-bottom:1px solid #1a1a1a}.job-timespan__label{color:#555;margin-right:.25rem}.job-timespan__value{font-family:ui-monospace,Cascadia Code,monospace;color:#aaa}.job-timespan__sep{color:#3a3a3a}.history-detail-loading{display:flex;justify-content:center;padding:1.5rem}.history-detail-error{padding:1rem 1.25rem;color:#ef5350;font-size:.85rem;margin:0}.intro-panel{display:flex;flex-direction:column;gap:.85rem;padding:.9rem 1.1rem;border:1px solid #2a2a2a;border-radius:10px;background:#141414;width:100%;box-sizing:border-box}.intro-panel__lead{margin:0;font-size:.83rem;color:#888;line-height:1.55}.intro-panel__steps-heading{margin:0;font-size:.68rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.07em}.intro-steps{display:flex;flex-wrap:nowrap;justify-content:space-between}.intro-step{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.3rem;position:relative;cursor:default;padding:.15rem .25rem}.intro-step__num{width:20px;height:20px;border-radius:50%;background:#f5c8001a;border:1px solid rgba(245,200,0,.22);color:#f5c800;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.intro-step:hover .intro-step__num{background:#f5c8002e;border-color:#f5c80073}.intro-step__title{font-size:.72rem;font-weight:600;color:#aaa;text-align:center;transition:color .15s}.intro-step:hover .intro-step__title{color:#e0e0e0}.intro-step__desc{position:absolute;top:calc(100% + .5rem);left:50%;transform:translate(-50%);width:170px;background:#1e1e1e;border:1px solid #333;border-radius:8px;padding:.5rem .65rem;font-size:.72rem;color:#888;line-height:1.45;z-index:20;opacity:0;pointer-events:none;transition:opacity .15s;white-space:normal}.intro-step:hover .intro-step__desc{opacity:1}.intro-step:last-child .intro-step__desc{left:auto;right:0;transform:none}.intro-step:first-child .intro-step__desc{left:0;transform:none}.info-box{display:flex;flex-direction:column;gap:.6rem;padding:.9rem 1.1rem;border:1px solid #2a2a2a;border-radius:10px;background:#141414}.info-box__title{font-size:.72rem;font-weight:600;color:#555;margin:0;text-transform:uppercase;letter-spacing:.07em}.info-box__tags{display:flex;flex-wrap:wrap;gap:.4rem}.info-box__spinner{display:block;width:16px;height:16px;border:2px solid #2a2a2a;border-top-color:#f5c800;border-radius:50%;animation:spin .7s linear infinite}.info-box__error{margin:0;font-size:.8rem;color:#888}.schema-tag{display:inline-flex;align-items:baseline;gap:.3rem;padding:.2rem .55rem;border-radius:5px;border:1px solid #2e2e2e;background:#1a1a1a;font-family:ui-monospace,Cascadia Code,monospace;font-size:.76rem;color:#999;white-space:nowrap}.schema-tag__version{color:#555}.status-indicator-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.btn--danger{background-color:#c62828;color:#fff}.btn--danger:hover:not(:disabled){background-color:#b71c1c}.btn--danger:disabled{opacity:.55;cursor:not-allowed}.btn--danger-outline{background-color:transparent;color:#ef5350;border:1px solid rgba(244,67,54,.45)}.btn--danger-outline:hover{background-color:#f4433614}.btn--sm{padding:.35rem .9rem;font-size:.8rem}.modal-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#1a1a1a;border:1px solid #2e2e2e;border-radius:12px;padding:1.75rem 2rem;max-width:420px;width:90%;display:flex;flex-direction:column;gap:.75rem}.modal__title{font-size:1.05rem;font-weight:600;color:#e0e0e0;margin:0}.modal__body{font-size:.88rem;color:#888;margin:0;line-height:1.5}.modal__actions{display:flex;gap:.65rem;margin-top:.5rem}
