*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}#root{display:flex;flex-direction:column;min-height:100vh}:root{--paper: #eaeef3;--paper-deep: #dee4ec;--surface: #ffffff;--ink: #121a2b;--ink-soft: #55617a;--ink-faint: #8b95aa;--line: #d7dde7;--line-strong: #c1c9d8;--accent: #2c5f8a;--accent-deep: #1b3a56;--accent-tint: #e3ecf4;--thread: #b78a3e;--thread-tint: #f5ebd6;--good: #2f7d5a;--good-tint: #e4f1ea;--warn: #b4791f;--warn-tint: #fbf0de;--bad: #b0402f;--bad-tint: #fbe9e5;--font-display: Georgia, "Times New Roman", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SFMono-Regular", Consolas, "Courier New", monospace;--radius-sm: 6px;--radius-md: 10px;--shadow-card: 0 1px 2px rgba(18, 26, 43, .04), 0 4px 14px -6px rgba(18, 26, 43, .1);--shadow-pop: 0 10px 30px -10px rgba(18, 26, 43, .28);--ease: cubic-bezier(.22, .9, .32, 1)}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 400px at 100% -10%,rgba(44,95,138,.07),transparent 60%),repeating-linear-gradient(135deg,rgba(18,26,43,.018) 0 1px,transparent 1px 26px),var(--paper);min-height:100vh;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.app-header{padding:20px 18px 14px;background:var(--surface);border-bottom:1px solid var(--line);position:relative;animation:dropIn .5s var(--ease) both}.app-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:linear-gradient(90deg,var(--accent),var(--thread) 60%,transparent);opacity:.9}.brand-row{display:flex;align-items:center;gap:12px}.brand-mark{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:10px;background:#fff;box-shadow:0 2px 8px #07407b38}.brand-logo{display:block;width:28px;height:28px;object-fit:contain}.brand-text{min-width:0}.brand-title{font-family:var(--font-display);font-size:18px;font-weight:600;line-height:1.15;color:var(--ink)}.brand-tagline{margin-top:2px;font-size:10px;font-weight:500;letter-spacing:.04em;color:var(--ink-soft)}.subtitle{margin:4px 0 0;font-size:11.5px;color:var(--ink-soft)}.status-badge{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.02em;padding:4px 9px;border-radius:999px;background:var(--ink-faint);color:#fff;white-space:nowrap;transition:background .3s var(--ease),box-shadow .3s var(--ease)}.status-badge.online{background:var(--good);box-shadow:0 0 0 3px var(--good-tint)}.status-badge.offline{background:var(--bad);box-shadow:0 0 0 3px var(--bad-tint)}.status-badge.pending{background:var(--warn);box-shadow:0 0 0 3px var(--warn-tint)}.session-bar{margin-top:12px;padding:8px 10px;border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-mono);display:flex;align-items:center;gap:8px;border:1px dashed var(--line-strong);background:var(--paper);color:var(--ink-soft);transition:all .3s var(--ease)}.session-bar:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink-faint);flex-shrink:0}.session-bar.authed{background:var(--good-tint);color:var(--good);border-style:solid;border-color:#2f7d5a40}.session-bar.authed:before{background:var(--good);box-shadow:0 0 0 3px #2f7d5a2e}.toast{position:fixed;left:50%;top:14px;transform:translate(-50%) translateY(-14px);background:var(--ink);color:#fff;font-size:12.5px;padding:9px 16px;border-radius:999px;box-shadow:var(--shadow-pop);z-index:999;opacity:0;pointer-events:none;transition:opacity .28s var(--ease),transform .28s var(--ease);max-width:88%;display:flex;align-items:center;gap:8px}.toast.show{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.toast.hidden{display:none}.toast:before{content:"✓";font-weight:700;color:#8bd1ae}.toast.error:before{content:"!";color:#f0a08f}.main-nav{display:flex;gap:4px;padding:10px 14px 0;background:var(--surface);border-bottom:1px solid var(--line);position:relative;z-index:2}.nav-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:12.5px;color:var(--ink-soft);background:var(--paper);padding:9px 14px 10px;border-radius:8px 8px 0 0;border:1px solid var(--line);border-bottom:none;position:relative;top:1px;transition:color .2s var(--ease),background .2s var(--ease),transform .15s var(--ease)}.nav-btn:hover{color:var(--ink);transform:translateY(-1px)}.nav-btn.active{background:var(--surface);color:var(--accent-deep);border-color:var(--line);border-bottom:1px solid var(--surface)}.nav-btn.active:before{content:"";position:absolute;left:10px;right:10px;top:0;height:2.5px;background:var(--thread);border-radius:2px}.tab{display:none;padding:18px 16px 28px;max-width:520px;margin:0 auto;width:100%}.tab.active{display:block;flex:1;animation:fadeUp .38s var(--ease) both}.tab h2{font-size:17px;font-weight:600;margin-bottom:4px}.hint{color:var(--ink-soft);font-size:12.5px;line-height:1.55;margin:4px 0 16px}.card{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius-md);padding:16px 16px 18px;margin-bottom:14px;box-shadow:var(--shadow-card);animation:fadeUp .45s var(--ease) both}.card:nth-of-type(2){animation-delay:.05s;border-left-color:var(--thread)}.card:nth-of-type(3){animation-delay:.1s}.card:nth-of-type(4){animation-delay:.15s}.card h3{font-size:13.5px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:8px;color:var(--ink);text-transform:uppercase;letter-spacing:.04em;font-family:var(--font-body)}.card h3:before{content:"";width:5px;height:5px;background:var(--thread);border-radius:50%;flex-shrink:0}.field-label{display:block;font-size:11.5px;font-weight:600;color:var(--ink-soft);margin:12px 0 5px;text-transform:uppercase;letter-spacing:.03em}.field-label:first-child{margin-top:0}.full-width{width:100%}input[type=text],input[type=email],input[type=password],select,textarea{font-family:var(--font-body);font-size:13.5px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);outline:none;transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease)}textarea{resize:vertical;font-family:var(--font-body)}input::placeholder,textarea::placeholder{color:var(--ink-faint)}input:focus,select:focus,textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-tint)}select[multiple]{min-height:120px}button{font-family:var(--font-body);cursor:pointer;border-radius:var(--radius-sm);font-weight:600;font-size:13px;padding:10px 16px;border:1px solid transparent;transition:transform .12s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease),opacity .2s var(--ease);margin:4px 6px 0 0;position:relative;overflow:hidden}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px -2px #2c5f8a8c}.primary:hover:not(:disabled){background:var(--accent-deep);box-shadow:0 4px 14px -3px #2c5f8a99}.ghost{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.ghost:hover:not(:disabled){background:var(--paper);border-color:var(--ink-faint)}.danger{background:var(--bad-tint);color:var(--bad);border-color:#b0402f40}.danger:hover:not(:disabled){background:var(--bad);color:#fff}.hidden{display:none!important}button .ripple{position:absolute;border-radius:50%;transform:scale(0);background:#ffffff8c;pointer-events:none;animation:rippleAnim .55s var(--ease) forwards}.ghost .ripple,.danger .ripple{background:#121a2b24}@keyframes rippleAnim{to{transform:scale(3.2);opacity:0}}.signin-card{text-align:center}.signin-card h3{justify-content:center}.sso-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:var(--ink);border:1px solid var(--line-strong);padding:11px 14px;font-weight:600;font-size:13px;margin:2px 0 0}.sso-btn:hover:not(:disabled){border-color:var(--ink-faint);background:var(--paper)}.sso-btn svg{flex-shrink:0}.divider{display:flex;align-items:center;gap:10px;margin:16px 0 14px;color:var(--ink-faint);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.field-wrap{position:relative;text-align:left;margin-bottom:4px}.signin-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}.signin-actions button{width:100%;margin:0}.stamp-loader{display:inline-flex;align-items:center;gap:8px}.stamp-loader svg{width:18px;height:18px}.stamp-loader rect{fill:none;stroke:currentColor;stroke-width:2.5;stroke-dasharray:78;stroke-dashoffset:78;animation:stampDraw 1.1s var(--ease) infinite}.stamp-loader path{fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20;animation:stampCheck 1.1s var(--ease) infinite}@keyframes stampDraw{0%{stroke-dashoffset:78}55%{stroke-dashoffset:0}to{stroke-dashoffset:0;opacity:.35}}@keyframes stampCheck{0%,45%{stroke-dashoffset:20}80%{stroke-dashoffset:0}to{stroke-dashoffset:0;opacity:.35}}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;display:inline-block;animation:spin .7s linear infinite;vertical-align:-2px}.ghost .spinner,.danger .spinner{border-color:#121a2b40;border-top-color:var(--ink)}.btn-label{display:inline-flex;align-items:center;gap:8px}.skel{height:14px;border-radius:4px;margin:6px 0;background:linear-gradient(90deg,var(--paper) 25%,var(--paper-deep) 37%,var(--paper) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.output-box{margin-top:12px;padding:12px;border-radius:var(--radius-sm);background:var(--paper);border:1px solid var(--line);font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);min-height:20px;white-space:pre-wrap;word-break:break-word}.output-box:empty:before{content:"—";color:var(--ink-faint)}.item-list{list-style:none;margin:0;padding:0}.item-list li{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:8px;font-size:12.5px;background:var(--surface);transition:border-color .2s var(--ease),transform .15s var(--ease)}.item-list li:hover{border-color:var(--accent);transform:translate(2px)}.item-list:empty:after{content:"Nothing here yet.";display:block;color:var(--ink-faint);font-size:12.5px;padding:14px 0;text-align:center;font-style:italic}.meta{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-soft);margin-bottom:10px}.refresh-label-btn{font-size:12px;font-weight:600;padding:.4rem .75rem;min-width:4.5rem;height:auto;line-height:1.2;white-space:nowrap}.tab-heading-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.tab-heading-row h2{margin:0}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer;flex-shrink:0;transition:background .15s var(--ease),border-color .15s var(--ease),transform .15s var(--ease)}.icon-btn:hover:not(:disabled){background:var(--accent-tint);border-color:var(--accent)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn.is-spinning svg{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.upload-section-list{max-height:220px;overflow-y:auto;margin-top:.35rem}.upload-section-item{display:flex;align-items:baseline;gap:.5rem;padding:.4rem .55rem;font-size:.88rem}.upload-section-item.muted{color:var(--muted);font-style:italic}.upload-section-index{flex:0 0 auto;min-width:1.25rem;font-family:var(--font-mono);font-size:.78rem;color:var(--muted)}.upload-section-name{flex:1 1 auto;font-weight:500;color:var(--ink)}.current-section-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;margin-top:.65rem;margin-bottom:0}.current-section-line .field-label{margin:0}.current-section-line strong{font-weight:600;color:var(--accent-deep)}.stamp-kv-wrap{margin-top:12px;overflow-x:auto}.stamp-kv-table{width:100%;border-collapse:collapse;font-size:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.stamp-kv-table th,.stamp-kv-table td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}.stamp-kv-table th{width:44%;font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);background:var(--paper)}.stamp-kv-table td{font-family:var(--font-mono);font-size:11.5px;word-break:break-word}.stamp-kv-table tr:last-child td,.stamp-kv-table tr:last-child th{border-bottom:none}.stamp-kv-empty td{color:var(--ink-faint);font-style:italic;text-align:center}.app-footer{padding:10px 16px;border-top:1px solid var(--line);background:var(--surface);font-size:11px;color:var(--ink-faint);font-family:var(--font-mono);text-align:center;position:sticky;bottom:0}@keyframes dropIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}::selection{background:var(--accent-tint);color:var(--accent-deep)}.comment-section-group{margin-top:1rem}.comment-section-heading{font-size:13px;font-weight:600;color:var(--accent-deep);margin-bottom:.35rem;padding-bottom:.25rem;border-bottom:1px solid var(--line)}.word-comment-item .title{font-size:13px;color:var(--ink)}.word-comment-item-clickable{cursor:pointer;border-radius:var(--radius-sm);transition:background .18s var(--ease),box-shadow .18s var(--ease)}.word-comment-item-clickable:hover{background:var(--accent-tint)}.word-comment-item-clickable.is-active{background:var(--accent-tint);box-shadow:inset 0 0 0 1px #2c5f8a59}.word-comment-item-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.comment-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.comment-source{flex-shrink:0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:999px;line-height:1.4}.comment-source-word{background:var(--accent-tint);color:var(--accent-deep)}.comment-source-regxp{background:var(--thread-tint);color:#8a6520}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:#121a2b73;animation:fadeUp .2s var(--ease) both}.modal-card{width:100%;max-width:360px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.modal-card h3{font-size:16px;margin-bottom:.75rem}.modal-card p{font-size:13px;color:var(--ink-soft);margin-bottom:.65rem}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:1rem}
