:root{--bg: #eef2f5;--panel: #ffffff;--ink: #16202b;--ink-soft: #5b6b78;--ink-faint: #8b99a5;--line: #dce3e8;--line-strong: #c3cfd8;--sidebar: #0f3350;--sidebar-soft: #1d4c70;--sidebar-text: #cfe1ee;--sidebar-text-dim: #7fa3be;--blueprint: #1f5c8b;--blueprint-deep: #123b59;--blueprint-bg: #eaf2f8;--amber: #b9720b;--amber-bg: #fbf0dc;--green: #217a4e;--green-bg: #e4f3ea;--red: #b23a31;--red-bg: #fbeae8;--lock: #8a94a6;--lock-bg: #eef0f3;--grid: #c7d6e0;--radius: 6px;--shadow: 0 1px 2px rgba(15, 51, 80, .06), 0 6px 18px rgba(15, 51, 80, .07);--sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;--display: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;--mono: "IBM Plex Mono", monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:var(--blueprint);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--blueprint);color:#fff}.mono{font-family:var(--mono)}.muted,.panel-subtitle,.empty-state-description,.sc-sub,.helper{color:var(--ink-soft)}.error-text{color:var(--red)}.success-text{color:var(--green)}.app-shell{display:none;min-height:100vh}.app-shell.active{display:flex}.sidebar{width:236px;flex-shrink:0;background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-brand{padding:22px 20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand .b1{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--sidebar-text-dim);text-transform:uppercase}.sidebar-brand .b2{font-family:var(--display);font-weight:700;font-size:17px;color:#fff;margin-top:4px}.sidebar-nav{flex:1;padding:14px 12px;overflow-y:auto}.nav-group-label{font-size:10px;letter-spacing:.1em;color:var(--sidebar-text-dim);font-family:var(--mono);text-transform:uppercase;padding:14px 10px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:6px;color:var(--sidebar-text);font-size:13px;font-weight:500;margin-bottom:2px;border:none;background:transparent;width:100%;text-align:left;text-decoration:none!important}.nav-item svg{flex-shrink:0;opacity:.85}.nav-item:hover{background:#ffffff0f}.nav-item.active{background:var(--sidebar-soft);color:#fff}.nav-item.active svg{opacity:1}.sidebar-foot{padding:14px 20px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:var(--sidebar-text-dim);font-family:var(--mono)}.main{flex:1;min-width:0;display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{height:60px;flex-shrink:0;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px}.topbar .tb-title{font-family:var(--display);font-weight:700;font-size:17px}.topbar .tb-sub{font-size:11.5px;color:var(--ink-faint);font-family:var(--mono);margin-top:1px}.tb-right{display:flex;align-items:center;gap:14px}.role-switch{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:5px 12px;font-size:11.5px;color:var(--ink-soft)}.role-label{font-size:12px;font-weight:600;color:var(--ink)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--blueprint);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.content{flex:1;overflow-y:auto;padding:26px 30px 60px}#login-screen,.login-screen{min-height:100vh;display:flex;background:linear-gradient(180deg,#0f335000,#0f335005),var(--blueprint-deep);position:relative;overflow:hidden}#login-screen:before,.login-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--sidebar-soft) 1px,transparent 1px),linear-gradient(90deg,var(--sidebar-soft) 1px,transparent 1px);background-size:42px 42px;opacity:.28}.login-visual{flex:1.15;position:relative;display:flex;flex-direction:column;justify-content:center;padding:64px;color:var(--sidebar-text);z-index:1}.login-visual .eyebrow{font-family:var(--mono);letter-spacing:.14em;font-size:11px;color:var(--sidebar-text-dim);text-transform:uppercase;margin-bottom:18px}.login-visual h1{font-family:var(--display);font-weight:900;font-size:44px;line-height:1.25;margin:0 0 22px;color:#fff}.login-visual p{max-width:440px;color:var(--sidebar-text-dim);font-size:14.5px;margin:0 0 36px}.login-visual svg{max-width:480px}.login-visual .tagline{margin-top:40px;font-size:11.5px;color:var(--sidebar-text-dim);font-family:var(--mono);letter-spacing:.04em}.login-box-wrap{flex:1;display:flex;align-items:center;justify-content:center;z-index:1;padding:40px}.login-box{background:var(--panel);width:400px;max-width:100%;border-radius:10px;box-shadow:0 20px 60px #00000059;padding:40px 36px 32px}.login-box .lb-logo{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--ink-faint);margin-bottom:6px}.login-box h2{font-family:var(--display);font-size:21px;margin:0 0 24px;font-weight:700}.login-box .field{margin-bottom:16px}.login-box .field label,.field label,.auth-form label,.project-form label,.stacked-form label,.toolbar label{display:block;font-size:12px;color:var(--ink-soft);margin-bottom:6px;font-weight:500}.field input[type=text],.field input[type=password],.field input[type=email],.field input[type=number],.field input[type=file],.field select,.field textarea,.auth-form input,.auth-form select,.project-form input,.project-form select,.project-form textarea,.stacked-form input,.stacked-form select,.stacked-form textarea,.toolbar input,.toolbar select{width:100%;padding:10px 12px;border:1px solid var(--line-strong);border-radius:5px;background:#fff;color:var(--ink);outline:none;transition:border-color .12s}.field input:focus,.field select:focus,.field textarea:focus,.auth-form input:focus,.auth-form select:focus,.project-form input:focus,.project-form select:focus,.stacked-form input:focus,.stacked-form select:focus,.toolbar input:focus,.toolbar select:focus{border-color:var(--blueprint);box-shadow:0 0 0 3px var(--blueprint-bg)}.field.err input{border-color:var(--red)}.field .errmsg,.login-error{color:var(--red);font-size:12px;margin-top:5px}.row-between{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;font-size:12.5px}.chk{display:flex;align-items:center;gap:7px;color:var(--ink-soft)}.chk input{accent-color:var(--blueprint)}a.link,.link-btn{color:var(--blueprint);text-decoration:none;font-weight:500;background:none;border:none;padding:0;cursor:pointer}a.link:hover,.link-btn:hover{text-decoration:underline}.auth-divider{text-align:center;margin:1rem 0;color:var(--ink-faint);font-size:12px}.auth-switch{margin-top:1rem;font-size:12.5px;color:var(--ink-soft)}.tag-tbc{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.03em;background:var(--lock-bg);color:var(--lock);border:1px solid #d9dee6;padding:1px 6px;border-radius:20px;margin-left:6px;vertical-align:middle}.btn,.button-primary,.button-secondary,.secondary-btn,.primary-link,.danger-btn,.ghost-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:5px;border:1px solid transparent;font-weight:700;font-size:13.5px;transition:all .12s;text-decoration:none!important;cursor:pointer}.btn-primary,.button-primary,.primary-link{background:var(--blueprint);color:#fff!important}.btn-primary:hover,.button-primary:hover,.primary-link:hover{background:var(--blueprint-deep)}.btn-block{width:100%}.btn-ghost,.button-secondary,.secondary-btn,.ghost-btn{background:transparent;color:var(--ink-soft);border-color:var(--line-strong)}.btn-ghost:hover,.button-secondary:hover,.secondary-btn:hover,.ghost-btn:hover{background:var(--bg)}.btn-sm{padding:6px 12px;font-size:12px}.danger-btn{color:var(--red);border-color:#e8b4b0;background:var(--red-bg);padding:6px 12px;font-size:12px}.danger-btn:hover{background:#f8dedb}.page-layout{display:flex;flex-direction:column;gap:20px}.workspace-layout .page-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.page-head{margin-bottom:0}.page-back-link{margin:0 0 8px;font-size:12.5px}.page-head .ph-eyebrow{font-family:var(--mono);font-size:11px;color:var(--blueprint);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}.page-head h1{font-family:var(--display);font-size:22px;margin:0}.page-head p{color:var(--ink-soft);margin:6px 0 0;font-size:13px;max-width:640px}.page-head-main{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.page-head-actions,.panel-actions,.markup-toolbar{display:flex;flex-wrap:wrap;gap:10px}.page-body{display:flex;flex-direction:column;gap:20px}.content-stack{display:flex;flex-direction:column;gap:20px;min-width:0}.page-aside{display:flex;flex-direction:column;gap:14px}.page-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:20px 22px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.panel-pad,.panel-body-flush{padding:20px 22px}.panel-body-flush{padding-top:0}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);gap:1rem}.panel-head h3{margin:0;font-size:14.5px;font-family:var(--display);font-weight:700}.panel-subtitle{margin:4px 0 0;font-size:12.5px}.panel-footnote{padding:12px 20px;font-size:11.5px;color:var(--ink-faint);border-top:1px solid var(--line)}.preview-panel{padding:16px 18px;background:var(--blueprint-bg);border:1px solid #c8dced;border-radius:8px}.preview-panel h2,.preview-panel h3{margin-top:0;font-family:var(--display);font-size:14px}.preview-list{margin:0;padding-left:1.15rem}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.toolbar .spacer{flex:1}.inline-form,.project-form,.stacked-form,.auth-form{display:flex;flex-wrap:wrap;gap:14px}.stacked-form,.project-form,.auth-form{flex-direction:column}.project-form{max-width:720px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1 / -1}.workspace-columns{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:20px}.grid2{display:grid;grid-template-columns:1.1fr 1.5fr;gap:20px;align-items:start}.grid2-rev{display:grid;grid-template-columns:1.5fr 1.1fr;gap:20px;align-items:start}.table-wrap{width:100%;overflow-x:auto}table,.data-table{width:100%;border-collapse:collapse;font-size:13px}thead th,.data-table th{text-align:left;font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-family:var(--mono);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--line);background:#fbfcfd}tbody td,.data-table td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td,.data-table tbody tr:last-child td{border-bottom:none}tbody tr.clickable:hover,.data-table tbody tr:hover{background:var(--blueprint-bg);cursor:pointer}.data-table tbody tr:hover{cursor:default}.data-table a{font-weight:600}.cell-sub{color:var(--ink-faint);font-size:11.5px;margin-top:2px}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700}.badge-amber{background:var(--amber-bg);color:var(--amber)}.badge-green{background:var(--green-bg);color:var(--green)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-blue{background:var(--blueprint-bg);color:var(--blueprint)}.badge-grey{background:var(--lock-bg);color:var(--lock)}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.stat-row,.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:0}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px 18px;box-shadow:var(--shadow)}.stat-card .sc-label{font-size:11px;color:var(--ink-faint);font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em}.stat-card .sc-num{font-family:var(--display);font-size:26px;font-weight:700;margin-top:6px;line-height:1.1}.stat-card .sc-sub{font-size:11.5px;margin-top:2px}.stat-card-danger .sc-num{color:var(--red)}.stat-card-warning .sc-num{color:var(--amber)}.progress-track{width:110px;height:6px;background:var(--line);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--blueprint)}.progress-inline{display:flex;align-items:center;gap:8px}.progress-value{font-size:11.5px;color:var(--ink-soft)}.perm-note{display:flex;gap:10px;align-items:flex-start;background:var(--amber-bg);border:1px solid #efd9ae;border-radius:7px;padding:12px 14px;font-size:12.5px;color:#7a560b;margin-bottom:0}.perm-note-danger{background:var(--red-bg);border-color:#e8b4b0;color:var(--red)}.perm-note-success{background:var(--green-bg);border-color:#b9dcc8;color:var(--green)}.perm-note-info{background:var(--blueprint-bg);border-color:#c8dced;color:var(--blueprint)}.empty-state{padding:28px 20px;text-align:center;color:var(--ink-soft)}.empty-state-title{margin:0;font-weight:700;color:var(--ink)}.empty-state-description{margin:6px 0 0}.empty-state-action{margin-top:14px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:0}.info-item-label,.info-item-value{padding:10px 12px;border-radius:6px;background:#fbfcfd;border:1px solid var(--line)}.info-item-label{margin:0;color:var(--ink-faint);font-size:11px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em}.info-item-value{margin:0;font-weight:600}.history-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12.5px}.history-item:last-child{border-bottom:none}.history-item .h-time{font-family:var(--mono);color:var(--ink-faint);white-space:nowrap;font-size:11px;padding-top:1px}.history-item .h-dot{width:7px;height:7px;border-radius:50%;background:var(--blueprint);margin-top:5px;flex-shrink:0}.diff-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px}.diff-row:last-child{border-bottom:none}.diff-row .d-label{color:var(--ink-soft)}.diff-row .d-val{font-family:var(--mono);font-weight:600}.tabs{display:inline-flex;gap:6px;padding:4px;border:1px solid var(--line);border-radius:20px;background:#fbfcfd}.tab{padding:6px 12px;border:none;border-radius:16px;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:12.5px;font-weight:600}.tab.active{background:var(--blueprint);color:#fff}.chiplist{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 12px;border-radius:20px;border:1px solid var(--line-strong);font-size:12.5px;background:#fff}.chip.active{background:var(--blueprint);color:#fff;border-color:var(--blueprint)}.viewer-wrapper,.viewer-stage{position:relative}.viewer-container{width:100%;height:760px;border-radius:8px;overflow:hidden;background:#081120;border:1px solid var(--line)}.viewer-status{margin-bottom:8px;font-size:12.5px}.svg-canvas-wrap,.compare-view-card{background:#f5f9fc;border:1px solid var(--line);border-radius:8px;padding:18px;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:16px 16px}.compare-view-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.compare-view-card{min-width:0;padding:14px}.compare-view-card h3{margin:0 0 4px;font-family:var(--display);font-size:14px}.compare-view-card .viewer-container{height:520px}.annotation-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%;pointer-events:none;border-radius:8px}.annotation-overlay-active{pointer-events:auto;cursor:crosshair}.annotation-overlay-hitarea{pointer-events:all}.markup-tool-palette{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.markup-tool-palette button{padding:6px 12px;border-radius:5px;border:1px solid var(--line-strong);background:#fff;font-size:12px;font-weight:600;color:var(--ink-soft)}.markup-tool-palette button.active{background:var(--blueprint-bg);border-color:var(--blueprint);color:var(--blueprint)}.comparison-overlay{width:100%;border-radius:8px;border:1px solid var(--line)}.workspace-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.section-spacer{margin-top:1rem}.entity-diff-result h3{margin-bottom:.4rem;font-family:var(--display);font-size:14px}@media(max-width:1100px){.stat-row,.stat-grid{grid-template-columns:repeat(2,1fr)}.workspace-layout .page-body,.workspace-columns,.compare-view-grid,.grid2,.grid2-rev{grid-template-columns:1fr}}@media(max-width:860px){.app-shell.active{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.sidebar-nav{display:flex;flex-wrap:wrap;gap:4px;padding-bottom:10px}.nav-group-label{width:100%}.main{height:auto;min-height:calc(100vh - 120px)}.topbar,.page-head-main,.panel-head{flex-direction:column;align-items:stretch}.content{padding:18px 16px 40px}.login-screen{flex-direction:column}.login-visual{padding:32px 24px}.login-visual h1{font-size:30px}.viewer-container{height:520px}.stat-row,.stat-grid{grid-template-columns:1fr}}
