*{box-sizing:border-box}body,html{height:100%;margin:0;overflow:hidden}body{background:#14161a;color:#c9d1d9;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}a{color:#8b949e;text-decoration:none}a:hover{color:#58a6ff}#menubar{align-items:stretch;background:#191d24;border-bottom:1px solid #2b313c;display:flex;flex:0 0 auto;height:34px;z-index:100}#menubar .mb-brand{align-items:center;color:#58a6ff;display:flex;font-size:14px;font-weight:700;letter-spacing:.06em;padding:0 14px}#menubar .mb-brand .mb-brand-edition{background:hsla(0,0%,100%,.04);border:1px solid #2b313c;border-radius:999px;color:#8b949e;font-size:10px;font-weight:600;letter-spacing:.08em;margin-left:8px;padding:1px 7px;white-space:nowrap}#menubar .mb-item,#menubar .mb-menus{align-items:stretch;display:flex}#menubar .mb-item{position:relative}#menubar .mb-item .mb-label{background:none;border:none;color:#c9d1d9;cursor:default;font-size:12.5px;padding:0 12px}#menubar .mb-item .mb-label:hover,#menubar .mb-item.open .mb-label{background:#232833}#menubar .mb-item .mb-dropdown{background:#232833;border:1px solid #39404c;border-radius:0 0 6px 6px;box-shadow:0 8px 28px rgba(0,0,0,.5);display:none;left:0;min-width:230px;padding:4px;position:absolute;top:100%;z-index:110}#menubar .mb-item .mb-dropdown button{align-items:center;background:none;border:none;border-radius:4px;color:#c9d1d9;cursor:default;display:flex;font-size:12.5px;padding:6px 10px 6px 26px;position:relative;text-align:left;width:100%}#menubar .mb-item .mb-dropdown button:hover{background:#1f4b82;color:#fff}#menubar .mb-item .mb-dropdown button .mb-key{color:#8b949e;font-size:11px;margin-left:auto;padding-left:18px}#menubar .mb-item .mb-dropdown button:hover .mb-key{color:hsla(0,0%,100%,.7)}#menubar .mb-item .mb-dropdown button[data-check=on]:before{color:#58a6ff;content:"✓";left:8px;position:absolute}#menubar .mb-item .mb-dropdown button[data-check=on]:hover:before{color:#fff}#menubar .mb-item .mb-dropdown .mb-sep{background:#2b313c;height:1px;margin:4px 6px}#menubar .mb-item.open .mb-dropdown{display:block}#menubar .mb-note{align-items:center;color:#8b949e;display:flex;font-size:11px;margin-left:auto;padding:0 14px;white-space:nowrap}.app-main{display:flex;flex:1 1 auto;min-height:0}#toolbar{background:#191d24;border-right:1px solid #2b313c;flex:0 0 46px;flex-direction:column;gap:4px;padding:8px 0;width:46px;z-index:20}#toolbar,#toolbar .tool-btn{align-items:center;display:flex}#toolbar .tool-btn{background:none;border:1px solid transparent;border-radius:6px;color:#8b949e;cursor:pointer;height:36px;justify-content:center;width:36px}#toolbar .tool-btn svg{height:20px;width:20px}#toolbar .tool-btn:hover{background:#232833;color:#c9d1d9}#toolbar .tool-btn.active{background:#1f4b82;border-color:#2b64a8;color:#fff}#toolbar .tool-sep{background:#2b313c;height:1px;margin:4px 0;width:24px}.viewport-wrap{display:flex}#viewport,.viewport-wrap{flex:1 1 auto;min-width:0;position:relative}#viewport canvas{display:block}.empty-hint{align-items:center;color:#8b949e;display:flex;flex-direction:column;gap:10px;inset:0;justify-content:center;pointer-events:none;position:absolute;text-align:center;z-index:5}.empty-hint .hint-title{color:#c9d1d9;font-size:18px}.empty-hint .hint-sub{font-size:13px;line-height:1.8}.side-panel{background:#1c2028;border-left:1px solid #2b313c;display:flex;flex:0 0 300px;flex-direction:column;font-size:12.5px;width:300px}.side-panel .tabstrip{align-items:stretch;background:#191d24;border-bottom:1px solid #2b313c;display:flex;flex:0 0 auto;flex-wrap:wrap;overflow:hidden}.side-panel .tabstrip .tab{align-items:center;border-bottom:1px solid #2b313c;border-right:1px solid #2b313c;color:#8b949e;cursor:default;display:flex;font-size:11.5px;gap:4px;margin-bottom:-1px;padding:6px 6px 6px 10px;white-space:nowrap}.side-panel .tabstrip .tab .tab-label{cursor:pointer}.side-panel .tabstrip .tab .tab-close{background:none;border:none;border-radius:3px;color:#8b949e;cursor:pointer;font-size:13px;line-height:1;padding:0 3px}.side-panel .tabstrip .tab .tab-close:hover{background:#2b313c;color:#f85149}.side-panel .tabstrip .tab:hover{color:#c9d1d9}.side-panel .tabstrip .tab.active{background:#1c2028;border-bottom:2px solid #58a6ff;color:#c9d1d9;margin-bottom:-1px}.side-panel .tab-pages{flex:1 1 auto;min-height:0;overflow-y:auto}.side-panel .tab-page{display:none;padding:12px}.side-panel .tab-page.active{display:block}.side-panel h2{border-bottom:1px solid #2b313c;color:#8b949e;font-size:11px;letter-spacing:.08em;margin:14px 0 6px;padding-bottom:4px;text-transform:uppercase}.side-panel h2:first-child{margin-top:0}.side-panel dl{-moz-column-gap:8px;column-gap:8px;display:grid;grid-template-columns:96px 1fr;margin:0;row-gap:4px}.side-panel dl dt{color:#8b949e}.side-panel dl dd{margin:0;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;word-break:break-all}body.panel-collapsed .side-panel{display:none}#assembly-tree ul{list-style:none;margin:0;padding-left:14px}#assembly-tree ul.tree-root{padding-left:0}#assembly-tree .tree-node{align-items:center;cursor:pointer;display:flex;gap:6px;padding:2px 0}#assembly-tree .tree-node input{accent-color:#58a6ff;margin:0}#assembly-tree .tree-node .tree-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#assembly-tree .tree-node .tree-badge{background:#2b313c;border-radius:8px;color:#8b949e;font-size:10px;padding:0 6px}#assembly-tree .tree-node:hover .tree-name{color:#58a6ff}#statusbar{align-items:center;background:#191d24;border-top:1px solid #2b313c;color:#8b949e;display:flex;flex:0 0 auto;font-size:11.5px;gap:18px;height:26px;padding:0 12px;white-space:nowrap}#statusbar #status-hint{overflow:hidden;text-overflow:ellipsis}#statusbar #status-states{color:#58a6ff}#statusbar #status-stats{margin-left:auto}.btn{background:#262c37;border:1px solid #2b313c;border-radius:6px;color:#c9d1d9;cursor:pointer;font-size:13px;padding:6px 12px;transition:background .15s}.btn:hover{background:#303849}.btn-primary{background:#1f4b82;border-color:#2b64a8}.btn-primary:hover{background:#285d9e}.btn-small{font-size:12px;padding:4px 10px}.toggle{align-items:center;color:#8b949e;cursor:pointer;display:inline-flex;font-size:12.5px;gap:5px}.toggle input{accent-color:#58a6ff;cursor:pointer}.toggle:hover,.tool-select{color:#c9d1d9}.tool-select{background:#262c37;border:1px solid #2b313c;border-radius:4px;font-size:12px;padding:2px 6px}.tool-range{accent-color:#58a6ff;width:100%}.tool-range:disabled{opacity:.4}.fwin{background:#232833;border:1px solid #39404c;border-radius:8px;box-shadow:0 8px 28px rgba(0,0,0,.5);position:absolute;width:250px;z-index:40}.fwin .fwin-title{align-items:center;background:#191d24;border-bottom:1px solid #2b313c;border-radius:8px 8px 0 0;cursor:-webkit-grab;cursor:grab;display:flex;font-size:12px;font-weight:600;justify-content:space-between;letter-spacing:.04em;padding:7px 10px}.fwin .fwin-title:active{cursor:-webkit-grabbing;cursor:grabbing}.fwin .fwin-title .fwin-close{background:none;border:none;color:#8b949e;cursor:pointer;font-size:15px;line-height:1;padding:0 2px}.fwin .fwin-title .fwin-close:hover{color:#f85149}.fwin .fwin-body{padding:10px 12px}.fwin .fwin-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin:6px 0}.fwin .fwin-label{color:#8b949e;font-size:12px;min-width:28px}.fwin .fwin-value{color:#58a6ff;font-size:14px;font-weight:600;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.fwin .fwin-hint{color:#8b949e;font-size:11px;line-height:1.6;margin:8px 0 0}.fwin .fwin-note{color:#c9d1d9;font-size:11.5px}.fwin .ai-actions{margin-top:8px}.fwin .ai-result{color:#c9d1d9;font-size:12px;line-height:1.7;margin-top:8px;max-height:320px;overflow-y:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.fwin .ai-result p{margin:4px 0}.fwin .ai-result ul{margin:4px 0;padding-left:18px}.fwin .ai-result li{margin:2px 0}.fwin .ai-result strong{color:#58a6ff}.fwin .ai-result code{background:#191d24;border-radius:3px;padding:0 4px}.fwin .rotate-linked{margin:6px 0;max-height:150px;overflow-y:auto}.fwin .rotate-linked .rotate-linked-title{color:#8b949e;font-size:11px;margin-bottom:3px}.fwin .rotate-linked .rotate-linked-row{border-left:2px solid #39404c;color:#c9d1d9;font-size:11.5px;margin:2px 0;padding:1px 0 1px 8px}.modal{align-items:center;background:rgba(8,10,14,.6);display:flex;inset:0;justify-content:center;position:fixed;z-index:200}.modal .modal-box{background:#232833;border:1px solid #39404c;border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.5);width:min(440px,100vw - 40px)}.modal .modal-title{border-bottom:1px solid #2b313c;font-size:14px;font-weight:600;padding:12px 16px}.modal .modal-body{color:#c9d1d9;font-size:12.5px;line-height:1.8;padding:14px 16px}.modal .modal-body p{margin:0 0 8px}.modal .modal-actions{display:flex;justify-content:flex-end;padding:10px 16px 14px}.hidden{display:none!important}#loading-overlay{align-items:center;background:rgba(10,12,16,.72);display:flex;flex-direction:column;gap:14px;inset:0;justify-content:center;position:absolute;z-index:60}#loading-overlay .spinner{-webkit-animation:spin .9s linear infinite;animation:spin .9s linear infinite;border:4px solid #2b313c;border-radius:50%;border-top-color:#58a6ff;height:42px;width:42px}#loading-overlay #loading-message{color:#c9d1d9;font-size:13px}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}#error-box{background:rgba(80,20,20,.92);border:1px solid #f85149;border-radius:8px;bottom:18px;color:#ffd9d4;font-size:13px;padding:10px 16px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}#error-box,#warning-box{left:50%;max-width:80%;position:absolute;transform:translateX(-50%);z-index:55}#warning-box{background:rgba(90,70,10,.92);border:1px solid #d29922;border-radius:8px;color:#ffe9b0;font-size:12.5px;padding:8px 14px;top:14px}#drop-overlay{align-items:center;background:rgba(31,75,130,.25);border:3px dashed #58a6ff;display:none;inset:0;justify-content:center;pointer-events:none;position:fixed;z-index:300}#drop-overlay .drop-message{background:#1c2028;border:1px solid #58a6ff;border-radius:10px;color:#c9d1d9;font-size:16px;padding:16px 28px}body.dragging #drop-overlay{display:flex}@media(max-width:860px){.side-panel{bottom:0;position:absolute;right:0;top:0;z-index:30}#menubar .mb-note{display:none}}.feature-status{color:#8b949e;font-size:12px;margin:0 0 8px}.feature-badge{background:#232833;border:1px solid #39404c;border-radius:10px;color:#8b949e;display:inline-block;font-size:11px;padding:2px 8px}.feature-badge.exact{border-color:#58a6ff;color:#58a6ff}.feature-table-wrap{overflow-x:auto}.feature-table{border-collapse:collapse;font-size:12px;width:100%}.feature-table td,.feature-table th{border-bottom:1px solid #2b313c;padding:4px 6px;text-align:left;white-space:nowrap}.feature-table th{color:#8b949e;font-size:11px;font-weight:400}.feature-table tbody tr{cursor:pointer}.feature-table tbody tr:hover{background:#232833}.feature-table tbody tr.selected{background:#1f4b82;color:#fff}.feature-actions{margin:10px 0 4px}.fillet-warn{border:1px solid #d29922;border-radius:6px;color:#d29922;font-size:12px;margin:0 0 8px;padding:6px 8px}.fillet-warn.hidden{display:none}.tab-hint{color:#8b949e;font-size:11px;line-height:1.6;margin:8px 0 0}.dfm-summary{font-size:12px;line-height:1.7;margin-top:6px}.dfm-legend{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px}.dfm-legend .dfm-chip{align-items:center;color:#8b949e;display:inline-flex;font-size:11px;gap:5px}.dfm-legend .dfm-chip-dot{border-radius:3px;display:inline-block;height:10px;width:10px}.dfm-row{cursor:pointer}.dfm-row:hover{background:#232833}.dfm-row.selected{background:#1f4b82;color:#fff}.modal .gallery-box{width:min(900px,100vw - 40px)}.gallery-body{display:flex;gap:16px;min-height:0;padding:14px 16px 4px}.gallery-list{display:flex;flex:0 0 236px;flex-direction:column;gap:10px;max-height:min(58vh,520px);overflow-y:auto;padding-right:4px}.gallery-list .gallery-item{align-items:center;background:#1c2028;border:1px solid #2b313c;border-radius:8px;color:#c9d1d9;cursor:pointer;display:flex;gap:10px;padding:7px;text-align:left;transition:border-color .15s,background .15s,transform .15s}.gallery-list .gallery-item img{background:#0e1013;border-radius:5px;flex:0 0 auto;height:66px;-o-object-fit:cover;object-fit:cover;width:88px}.gallery-list .gallery-item .gallery-item-title{font-size:12px;line-height:1.5}.gallery-list .gallery-item:hover{background:#232833;border-color:#39404c;transform:translateX(2px)}.gallery-list .gallery-item.selected{background:#232833;border-color:#58a6ff;box-shadow:0 0 0 1px rgba(88,166,255,.35),0 4px 14px rgba(0,0,0,.35)}.gallery-preview{display:flex;flex:1 1 auto;flex-direction:column;min-width:0}.gallery-preview .gallery-preview-frame{aspect-ratio:4/3;background:#0e1013;border:1px solid #39404c;border-radius:10px;max-height:min(46vh,430px);overflow:hidden}.gallery-preview .gallery-preview-frame img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.gallery-preview .gallery-preview-title{color:#c9d1d9;font-size:15px;font-weight:700;margin-top:12px}.gallery-preview .gallery-preview-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.gallery-preview .gallery-preview-tags .gallery-tag{background:rgba(88,166,255,.08);border:1px solid #1f4b82;border-radius:10px;color:#58a6ff;font-size:10.5px;padding:2px 9px}.gallery-preview .gallery-preview-desc{color:#8b949e;font-size:12px;line-height:1.8;margin:9px 0 0}@media(max-width:760px){.gallery-body{flex-direction:column}.gallery-list{flex:0 0 auto;flex-direction:row;max-height:none;overflow-x:auto;overflow-y:hidden}.gallery-list .gallery-item{flex:0 0 auto;flex-direction:column;width:120px}.gallery-list .gallery-item img{height:74px;width:100%}}.fwin-sep{background:#2b313c;height:1px;margin:8px 0}.fwin-input{flex:1;min-width:0;padding:4px 6px}#note-text,.fwin-input{background:#14161a;border:1px solid #2b313c;border-radius:4px;color:#c9d1d9;font-size:12px}#note-text{margin:6px 0;padding:5px 6px;resize:vertical;width:100%}.note-pending{border:1px dashed #39404c;border-radius:6px;margin-bottom:8px;padding:6px 8px}.note-colors{display:inline-flex;gap:6px}.note-color{border:2px solid transparent;border-radius:50%;cursor:pointer;height:18px;padding:0;width:18px}.note-color.active{border-color:#fff}.note-list{color:#8b949e;display:flex;flex-direction:column;font-size:12px;gap:4px;margin:6px 0;max-height:180px;overflow-y:auto}.note-row{align-items:center;background:#14161a;border-radius:5px;cursor:pointer;display:flex;gap:7px;padding:4px 6px}.note-row:hover{background:#232833;color:#c9d1d9}.note-dot{align-items:center;border-radius:50%;color:#14161a;display:inline-flex;flex:0 0 auto;font-size:11px;font-weight:700;height:18px;justify-content:center;width:18px}.note-dot.view-dot{background:#232833;font-size:11px}.note-body{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-del{background:none;border:none;color:#8b949e;cursor:pointer;flex:0 0 auto;font-size:13px;padding:0 3px}.note-del:hover{color:#f85149}.tag-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.tag-row{align-items:center;background:#14161a;border-radius:5px;cursor:pointer;display:flex;gap:7px;padding:3px 6px}.tag-row.active{outline:1px solid #58a6ff}.tag-row input[type=radio]{accent-color:#58a6ff}.tag-dot{border-radius:3px;display:inline-block;height:12px;margin-right:4px;vertical-align:-1px;width:12px}.tag-name{background:transparent;border:1px solid transparent;border-radius:4px;color:#c9d1d9;flex:1;font-size:12px;min-width:0;padding:2px 4px}.tag-name:focus{background:#1c2028;border-color:#39404c;outline:none}.tag-count{color:#8b949e;flex:0 0 auto;font-size:11px}.tag-summary{margin:6px 0}.btn-mini{font-size:10px;line-height:1.5;padding:1px 7px}.tag-btn{margin-left:6px}.pkg-toggle{display:block;margin:8px 0}.pkg-note{border-top:1px solid #2b313c;color:#8b949e;font-size:11px;margin-top:10px;padding-top:8px}body.review-mode #toolbar [data-tool=ai],body.review-mode #toolbar [data-tool=dfm],body.review-mode #toolbar [data-tool=mark],body.review-mode #toolbar [data-tool=rotate],body.review-mode .mark-edit-only,body.review-mode .mb-item[data-menu=file] button[data-action=open],body.review-mode .mb-item[data-menu=file] button[data-action=sample-gallery],body.review-mode .mb-item[data-menu=tools],body.review-no-note #toolbar [data-tool=note],body.review-no-note .note-add-ui{display:none!important}.mb-dropdown.mb-dropdown-icons button{padding-left:10px}.mb-dropdown.mb-dropdown-icons button svg{flex:0 0 auto;height:16px;margin-right:9px;opacity:.85;width:16px}#note-overlay{inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:8}#note-overlay svg{height:100%;inset:0;position:absolute;width:100%}.note-label{background:rgba(28,32,40,.92);border:1px solid #39404c;border-left-width:3px;border-radius:5px;box-shadow:0 2px 10px rgba(0,0,0,.45);color:#c9d1d9;cursor:pointer;font-size:11px;max-width:190px;overflow:hidden;padding:3px 8px;pointer-events:auto;position:absolute;text-overflow:ellipsis;white-space:nowrap}.note-label .note-label-num{font-weight:700;margin-right:5px}.note-label:hover{background:#232833;border-color:#58a6ff}.embed-warn{color:#d29922;font-size:12px}.embed-auth-fields{border:1px dashed #39404c;border-radius:6px;margin:6px 0;padding:6px 8px}.embed-copy-row{align-items:flex-start;display:flex;gap:6px;margin:4px 0 10px}.embed-copy-row .embed-textarea,.embed-copy-row .fwin-input{flex:1;min-width:0}.embed-textarea{background:#14161a;border:1px solid #2b313c;border-radius:4px;color:#c9d1d9;font-family:Consolas,monospace;font-size:11px;padding:5px 6px;resize:vertical}body.embed-mode #menubar,body.embed-mode #statusbar,body.embed-mode #toolbar,body.embed-mode .empty-hint,body.embed-mode .fwin,body.embed-mode .side-panel{display:none!important}.embed-badge{background:rgba(20,22,26,.75);border:1px solid #2b313c;border-radius:999px;bottom:8px;color:#8b949e;font-size:11px;padding:3px 10px;position:absolute;right:10px;z-index:30}.embed-badge:hover{border-color:#58a6ff;color:#58a6ff}