@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap");:root{--page:#fff;--sidebar:#202124;--surface:#fff;--surface-2:#f1f3f4;--ink:#202124;--ink-soft:#5f6368;--line:#dadce0;--accent:#1a73e8;--accent-soft:#e8f0fe;--accent-strong:#185abc;--green:#34a853;--green-soft:#e6f4ea;--red:#ea4335;--red-soft:#fce8e6;--amber:#fbbc04;--amber-soft:#fef7e0;--on-accent:#fff;--radius:10px;--canvas-bed:#e8eaed}[data-theme=dark]{--page:#121212;--sidebar:#0d0d0d;--surface:#1e1f20;--surface-2:#28292b;--ink:#e8eaed;--ink-soft:#9aa0a6;--line:#3c4043;--accent:#8ab4f8;--accent-soft:#1f2a3d;--accent-strong:#aecbfa;--green:#81c995;--green-soft:#1e2f22;--red:#f28b82;--red-soft:#3a2020;--amber:#fdd663;--amber-soft:#3a3218;--on-accent:#0d0d0d;--canvas-bed:#181a1c}*{box-sizing:border-box}body,html{margin:0;height:100%}body{font-family:Noto Sans JP,Hiragino Sans,Yu Gothic,Meiryo,sans-serif;font-size:15px;line-height:1.7;background:var(--page);color:var(--ink)}button{cursor:pointer}button,input,select,textarea{font-family:inherit}a{color:var(--accent-strong)}.app{height:100vh;overflow:hidden}.app,.rail{display:flex}.rail{width:68px;flex:0 0 68px;background:var(--sidebar);flex-direction:column;align-items:center;padding:14px 0;gap:6px}.rail .logo{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#1a73e8,#34a853);display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px;margin-bottom:14px}.rail a.nav{width:52px;padding:8px 0 6px;border:0;background:transparent;color:#9aa0a6;border-radius:10px;font-size:10.5px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none}.rail a.nav svg{width:20px;height:20px}.rail a.nav.active{background:rgba(138,180,248,.18);color:#8ab4f8}.rail .spacer{flex:1 1}.rail .user{width:36px;height:36px;border-radius:50%;background:#5f6368;border:0;color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.main{flex:1 1;display:flex;flex-direction:column;min-width:0}.topbar{height:56px;flex:0 0 56px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 18px;background:var(--surface)}.topbar h1{font-size:16.5px;font-weight:700;margin:0;white-space:nowrap}.topbar .doc-name{border:1px solid transparent;border-radius:8px;padding:4px 10px;font-size:13.5px;color:var(--ink-soft);background:transparent;min-width:180px;flex:0 1 320px}.topbar .doc-name:focus,.topbar .doc-name:hover{border-color:var(--line);outline:none}.topbar .right{margin-left:auto;display:flex;align-items:center;gap:10px}.theme-toggle{display:flex;border:1px solid var(--line);border-radius:100px;overflow:hidden;flex:0 0 auto}.theme-toggle button{border:0;background:transparent;color:var(--ink-soft);padding:7px 14px;font-size:12px;font-weight:700;min-height:36px}.theme-toggle button.active{background:var(--accent);color:var(--on-accent)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:100px;font-size:12px;font-weight:700;white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor}.badge.live{color:var(--green);background:var(--green-soft)}.badge.accent{color:var(--accent-strong);background:var(--accent-soft)}.badge.pending{color:var(--amber);background:var(--amber-soft)}.badge.off{color:var(--ink-soft);background:var(--surface-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);font-weight:700;font-size:14px;min-height:42px}.btn:hover{filter:brightness(1.05)}.btn-outline{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn-sm{min-height:34px;padding:5px 12px;font-size:12.5px}.btn-green{border-color:var(--green);background:var(--green)}.btn-green,.btn-red{color:var(--on-accent)}.btn-red{border-color:var(--red);background:var(--red)}.btn:disabled{opacity:.55;cursor:default}.editor{flex:1 1;display:flex;min-height:0}.panel{width:248px;flex:0 0 248px;background:var(--surface);border-right:1px solid var(--line);overflow-y:auto;padding:14px}.panel.right{border-right:0;border-left:1px solid var(--line);width:292px;flex-basis:292px}.panel h3{font-size:12px;font-weight:700;color:var(--ink-soft);letter-spacing:.06em;margin:4px 0 10px}.panel section+section{margin-top:20px}.palette{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.palette button{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:12px 6px 9px;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ink);min-height:66px}.palette button:hover{border-color:var(--accent);background:var(--accent-soft)}.palette .ic{font-size:20px;line-height:1}.layer-list{display:flex;flex-direction:column;gap:4px}.layer-list .row{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;border:1px solid transparent;font-size:12.5px;cursor:pointer}.layer-list .row:hover{background:var(--surface-2)}.layer-list .row.sel{background:var(--accent-soft);border-color:var(--accent)}.layer-list .row .t{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-list .row .del{border:0;background:transparent;color:var(--ink-soft);font-size:13px;padding:0 2px}.layer-list .row .del:hover{color:var(--red)}.layer-empty{font-size:12px;color:var(--ink-soft);padding:6px 2px}.stage{flex:1 1;display:flex;flex-direction:column;min-width:0;background:var(--canvas-bed)}.size-tabs{display:flex;gap:6px;padding:10px 14px;flex-wrap:wrap}.size-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);border-radius:100px;padding:6px 14px;font-size:12px;font-weight:600}.size-tabs button.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.canvas-wrap{flex:1 1;display:grid;place-items:center;overflow:auto;padding:10px 20px 24px}.canvas-outer,.mock-canvas{position:relative}.mock-canvas{background:#fff;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.18);transform-origin:top left}.el{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;cursor:-webkit-grab;cursor:grab}.el:active{cursor:-webkit-grabbing;cursor:grabbing}.el.sel{outline:2px solid #1a73e8;outline-offset:0}.el .handle{position:absolute;right:-7px;bottom:-7px;width:14px;height:14px;background:#1a73e8;border:2px solid #fff;border-radius:50%;cursor:nwse-resize;display:none;touch-action:none}.el.sel .handle{display:block}.el-img{display:grid;place-items:center;text-align:center;background:repeating-conic-gradient(#f1f3f4 0 25%,#fff 0 50%) 50% /24px 24px;border:2px dashed #9aa0a6;color:#5f6368;font-size:13px;font-weight:600;overflow:hidden;white-space:pre-line}.el-img.has-img{border:0;background-size:cover!important;background-position:50%!important}.el-text{font-weight:800;line-height:1.25;white-space:pre-wrap;word-break:break-word}.el-person{display:grid;place-items:end center;overflow:hidden}.el-person svg{width:88%;height:92%}.el-person.has-img{background-size:cover!important;background-position:50%!important}.el-badge{display:grid;place-items:center;text-align:center;border-radius:50%;background:repeating-conic-gradient(#f1f3f4 0 25%,#fff 0 50%) 50% /24px 24px;border:2px dashed #9aa0a6;color:#5f6368;font-size:13px;font-weight:600;overflow:hidden}.el-badge.has-img{border:0;background-size:cover!important;background-position:50%!important}.canvas-note{text-align:center;font-size:12px;color:var(--ink-soft);padding-bottom:12px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-size:12px;font-weight:700;color:var(--ink-soft)}.field input,.field select,.field textarea{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);font-size:13.5px;color:var(--ink);min-height:40px}.field textarea{min-height:68px;resize:vertical}.field .help{font-size:11px;color:var(--ink-soft)}.swatches{display:flex;gap:6px;flex-wrap:wrap}.swatches button{width:28px;height:28px;border-radius:50%;border:2px solid var(--line)}.swatches button.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{flex:1 1;border:0;background:var(--surface);color:var(--ink-soft);padding:9px 4px;font-size:12.5px;font-weight:700;min-height:40px}.seg button.active{background:var(--accent);color:var(--on-accent)}.props-empty{font-size:12.5px;color:var(--ink-soft);background:var(--surface-2);border-radius:8px;padding:12px}.gen-box{border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:var(--surface)}.gen-box .cost{font-size:11px;color:var(--ink-soft);margin-top:8px}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.modal{background:var(--page);border-radius:14px;max-width:980px;width:100%;max-height:92vh;overflow-y:auto;padding:22px 24px}.modal h2{margin:0 0 4px;font-size:18px}.modal .sub{font-size:12.5px;color:var(--ink-soft);margin-bottom:16px}.modal .close-row{display:flex;justify-content:flex-end;margin-top:16px;gap:8px}.results{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:14px;gap:14px}.result-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}.result-card img{width:100%;display:block}.result-card .meta{padding:10px 12px}.result-card .meta .name{font-size:13px;font-weight:700}.result-card .meta .actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.gen-progress{text-align:center;padding:40px 0}.gen-progress .bar{height:6px;background:var(--surface-2);border-radius:100px;overflow:hidden;margin:18px auto 10px;max-width:380px}.gen-progress .bar i{display:block;height:100%;background:var(--accent);transition:width .4s}.library{flex:1 1;display:flex;min-height:0}.lib-tree{width:232px;flex:0 0 232px;border-right:1px solid var(--line);background:var(--surface);padding:14px 10px;overflow-y:auto}.lib-tree h3{font-size:12px;font-weight:700;color:var(--ink-soft);letter-spacing:.06em;margin:4px 8px 10px}.lib-tree .node{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;min-height:38px}.lib-tree .node:hover{background:var(--surface-2)}.lib-tree .node.sel{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.lib-tree .node .cnt{margin-left:auto;font-size:11px;color:var(--ink-soft);font-weight:400}.lib-main{flex:1 1;overflow-y:auto;padding:18px 24px;min-width:0}.lib-main h2{font-size:19px;margin:0 0 2px}.lib-main .view-sub{color:var(--ink-soft);font-size:13px;margin-bottom:14px}.lib-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.crumbs{font-size:12.5px;color:var(--ink-soft);margin:4px 0 16px}.crumbs a{color:var(--accent-strong);cursor:pointer;text-decoration:none}.crumbs a:hover{text-decoration:underline}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));grid-gap:12px;gap:12px}.asset-card{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden;position:relative}.asset-card .thumb{height:112px;background-size:cover;background-position:50%;background-color:var(--surface-2)}.asset-card .body{padding:8px 10px}.asset-card .name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-card .sub{font-size:10.5px;color:var(--ink-soft)}.asset-card .acts,.hist-card .acts{position:absolute;top:6px;right:6px;display:none;gap:4px;z-index:2}.asset-card:hover .acts,.hist-card:hover .acts{display:flex}.asset-card .acts button,.hist-card .acts button{width:28px;height:28px;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:12px}.asset-card .acts button:hover,.hist-card .acts button:hover{border-color:var(--accent)}.folder-card{border:1px solid var(--line);border-radius:10px;background:var(--surface-2);display:flex;align-items:center;gap:10px;padding:14px 12px;cursor:pointer;font-size:13px;font-weight:700;min-height:60px}.folder-card:hover{border-color:var(--accent);background:var(--accent-soft)}.folder-card .ic{font-size:22px}.folder-card .cnt{margin-left:auto;font-size:11px;color:var(--ink-soft);font-weight:400}.lib-empty{grid-column:1/-1;font-size:13px;color:var(--ink-soft);background:var(--surface-2);border-radius:10px;padding:22px;text-align:center}.ai-chip{position:absolute;left:6px;top:6px;z-index:1;background:rgba(26,115,232,.92);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:100px;letter-spacing:.04em}.picker-folders{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.picker-folders button{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);border-radius:100px;padding:6px 14px;font-size:12px;font-weight:600}.picker-folders button.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.picker-grid .asset-card{cursor:pointer}.picker-grid .asset-card:hover{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.hist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:14px;gap:14px}.hist-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;position:relative;cursor:pointer}.hist-card:hover{border-color:var(--accent)}.hist-card .thumb{height:130px;display:grid;place-items:center;font-size:12px;color:#fff;font-weight:700;background-size:cover;background-position:50%}.hist-card .body{padding:11px 13px}.hist-card .name{font-weight:700;font-size:13.5px}.hist-card .meta{font-size:11.5px;color:var(--ink-soft);margin:3px 0 8px}.cms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:14px;gap:14px}.cms-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:13px 14px;position:relative;cursor:pointer}.cms-card:hover{border-color:var(--accent)}.cms-card .acts{position:absolute;top:8px;right:8px;display:none;gap:4px}.cms-card:hover .acts{display:flex}.cms-card .acts button{width:28px;height:28px;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:12px}.cms-card .name{font-weight:700;font-size:13.5px;margin:6px 0 4px}.cms-card .excerpt{font-size:12px;color:var(--ink-soft);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:8px;white-space:pre-line}.cms-card .meta{font-size:11.5px;color:var(--ink-soft)}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(16px);background:var(--ink);color:var(--page);padding:11px 24px;border-radius:100px;font-size:13.5px;font-weight:700;opacity:0;transition:opacity .25s,transform .25s;z-index:99;pointer-events:none;max-width:90vw;box-shadow:0 6px 20px rgba(0,0,0,.25)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--canvas-bed);padding:20px}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:34px 32px;width:100%;max-width:400px}.login-card .logo{width:46px;height:46px;border-radius:12px;margin-bottom:14px;background:linear-gradient(135deg,#1a73e8,#34a853);display:grid;place-items:center;color:#fff;font-weight:700;font-size:17px}.login-card h1{font-size:20px;margin:0 0 4px}.login-card .sub{font-size:13px;color:var(--ink-soft);margin-bottom:20px}.login-card .err{font-size:12.5px;color:var(--red);background:var(--red-soft);border-radius:8px;padding:9px 12px;margin-bottom:12px}.login-card .switch{font-size:12.5px;color:var(--ink-soft);margin-top:14px;text-align:center}.login-card .switch a{cursor:pointer}