:root{--bg: #f4f7fb;--card: #ffffff;--text: #1e293b;--text-sub: #64748b;--border: #e2e8f0;--accent: #3b82f6;--accent-hover: #2563eb;--accent-soft: #eff6ff;--danger: #ef4444;--success: #10b981;--warning: #f59e0b;--radius: 12px;--shadow: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .04);--shadow-hover: 0 4px 12px rgba(16, 24, 40, .12)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.5rem}h2{font-size:1.05rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:8px;padding:8px 16px;font-size:.9rem;font-family:inherit;cursor:pointer;transition:background .15s,box-shadow .15s;white-space:nowrap}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--accent);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--accent-soft)}.btn-danger-ghost{background:transparent;color:var(--danger);border:1px solid var(--border)}.btn-danger-ghost:hover{background:#fef2f2}.btn-block{width:100%;justify-content:center}.upload-btn{cursor:pointer}.icon-btn{background:transparent;border:none;border-radius:6px;padding:4px 6px;font-size:.95rem;cursor:pointer;color:var(--text-sub);text-decoration:none}.icon-btn:hover{background:var(--accent-soft);text-decoration:none}input[type=text],input[type=password],input[type=url]{font-family:inherit;font-size:.95rem;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3b82f626}.form-error{color:var(--danger);font-size:.85rem;margin:8px 0}.empty-note{color:var(--text-sub);font-size:.9rem;padding:16px 0;text-align:center}.page-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--text-sub)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.logo{font-size:1.15rem;font-weight:700;color:var(--text)}.logo:hover{text-decoration:none;color:var(--accent)}.header-right{display:flex;align-items:center;gap:12px}.header-user{color:var(--text-sub);font-size:.9rem}.app-main{flex:1;padding:24px;max-width:1500px;width:100%;margin:0 auto;display:grid;grid-template-columns:1fr 2fr;gap:20px;align-items:start}.main-chat{position:sticky;top:84px}.main-content{min-width:0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eff6ff,#f4f7fb 60%,#ecfeff);padding:20px}.login-card{background:var(--card);border-radius:16px;box-shadow:var(--shadow-hover);padding:40px 36px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px;text-align:center}.login-logo{font-size:2.5rem}.login-sub{color:var(--text-sub);font-size:.9rem;margin-top:-10px}.login-card label{display:flex;flex-direction:column;gap:6px;text-align:left;font-size:.85rem;color:var(--text-sub)}.home-content{display:flex;flex-direction:column;gap:20px;min-width:0}.chat-panel{display:flex;flex-direction:column;height:calc(100vh - 120px);min-height:420px;padding:0;overflow:hidden}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.chat-status{font-size:.75rem;padding:2px 10px;border-radius:999px}.chat-status.online{background:#ecfdf5;color:var(--success)}.chat-status.offline{background:#fffbeb;color:var(--warning)}.chat-messages{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.chat-msg{max-width:90%;align-self:flex-start}.chat-msg.mine{align-self:flex-end}.chat-msg-meta{display:flex;gap:8px;align-items:baseline;font-size:.75rem;margin-bottom:2px}.chat-msg.mine .chat-msg-meta{flex-direction:row-reverse}.chat-msg-name{font-weight:600;color:var(--text)}.chat-msg-time{color:var(--text-sub)}.chat-msg-body{background:var(--bg);border-radius:10px;padding:8px 12px;font-size:.9rem;white-space:pre-wrap;word-break:break-word}.chat-msg.mine .chat-msg-body{background:var(--accent);color:#fff}.chat-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--border)}.chat-input input{flex:1;min-width:0}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.project-card{display:block;border:1px solid var(--border);border-radius:var(--radius);padding:16px;color:var(--text);transition:box-shadow .15s,border-color .15s,transform .15s}.project-card:hover{text-decoration:none;border-color:var(--accent);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.project-card h3{font-size:1rem;margin-bottom:4px}.project-desc{font-size:.82rem;color:var(--text-sub);margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-stats{display:flex;gap:12px;font-size:.8rem;color:var(--text-sub)}.project-updated{font-size:.75rem;color:var(--text-sub);margin-top:6px}.new-project-form{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.new-project-form input{flex:1;min-width:160px}.activity-list{list-style:none}.activity-item{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);font-size:.88rem}.activity-item:last-child{border-bottom:none}.activity-badge{flex-shrink:0;font-size:.72rem;padding:2px 8px;border-radius:999px;font-weight:600}.activity-added{background:#ecfdf5;color:var(--success)}.activity-updated{background:var(--accent-soft);color:var(--accent)}.activity-deleted{background:#fef2f2;color:var(--danger)}.activity-text{flex:1;min-width:0}.activity-time{flex-shrink:0;font-size:.78rem;color:var(--text-sub)}.project-page{display:flex;flex-direction:column;gap:20px}.project-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.back-link{font-size:.85rem}.project-page-desc{color:var(--text-sub);font-size:.9rem}.project-top{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.card-compact{padding:14px 16px;display:flex;flex-direction:column;min-width:0}.card-compact .section-header{margin-bottom:10px}.card-compact h2{font-size:.95rem}.compact-scroll{max-height:168px;overflow-y:auto}.btn-sm{padding:5px 12px;font-size:.82rem}.file-table{width:100%;border-collapse:collapse;font-size:.85rem}.file-table th{text-align:left;font-size:.75rem;font-weight:600;color:var(--text-sub);padding:5px 10px;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;background:var(--card)}.file-table td{padding:7px 10px;border-bottom:1px solid var(--border);white-space:nowrap;color:var(--text-sub)}.file-table tr:last-child td{border-bottom:none}.file-table td.doc-name{width:100%;max-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.file-table .col-size{text-align:right}.file-actions{text-align:right;white-space:nowrap}.dropzone{position:relative;border-radius:10px;min-height:96px}.dropzone.dragover{outline:2px dashed var(--accent);outline-offset:4px;background:var(--accent-soft)}.dropzone-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#eff6ffd9;border-radius:10px;pointer-events:none;z-index:5}.dropzone-message{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--accent-hover);font-size:.9rem;font-weight:600;text-align:center;padding:0 12px}.dropzone-icon{font-size:1.6rem}.explorer-resizer{position:relative;cursor:col-resize;border-radius:3px;touch-action:none}.explorer-resizer:before{content:"";position:absolute;top:8px;bottom:8px;left:4px;width:2px;border-radius:2px;background:var(--border);transition:background .15s}.explorer-resizer:hover:before,.explorer-resizer:focus-visible:before{background:var(--accent);width:3px}.explorer-resizer:focus-visible{outline:none}body.col-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.folder-tree{border-right:1px solid #e1e8f0;padding:8px 4px;background:#fbfcfe;max-height:60vh;overflow:auto;font-size:.85rem}.folder-tree ul{list-style:none}.folder-tree>ul{min-width:max-content}.tree-row{display:flex;align-items:center;gap:2px;border-radius:6px;padding-right:2px}.tree-row:hover{background:var(--accent-soft)}.tree-row.active{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.tree-toggle{flex-shrink:0;width:18px;background:none;border:none;color:var(--text-sub);font-size:.7rem;cursor:pointer;padding:2px 0}.tree-toggle-spacer{flex-shrink:0;width:18px}.tree-label{flex:1;min-width:0;display:flex;align-items:center;gap:5px;background:none;border:none;font-family:inherit;font-size:.85rem;color:var(--text);cursor:pointer;padding:5px 2px;text-align:left}.tree-row.active .tree-label{color:var(--accent-hover);font-weight:600}.tree-icon{flex-shrink:0}.tree-name{max-width:20em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-count{flex-shrink:0;font-size:.7rem;color:var(--text-sub);background:var(--bg);border-radius:999px;padding:0 6px}.tree-actions{flex-shrink:0;display:flex;gap:1px;visibility:hidden;font-size:.8rem}.tree-row:hover .tree-actions,.tree-row.active .tree-actions{visibility:visible}.rename-form{flex:1;min-width:0;display:flex;padding:2px 0}.rename-form input{width:100%;min-width:0;font-size:.85rem;padding:3px 6px;border-radius:6px}.link-form{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.link-form input{flex:1;min-width:100px;padding:6px 10px;font-size:.85rem}.link-list{list-style:none}.link-list li{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--border)}.link-list li:last-child{border-bottom:none}.link-item{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;color:var(--text)}.link-item:hover{text-decoration:none}.link-item:hover .link-title{text-decoration:underline;color:var(--accent)}.link-title{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-url{font-size:.73rem;color:var(--text-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1100px){.project-top{grid-template-columns:1fr}.folder-tree{max-height:240px;min-height:0}}@media (max-width: 900px){.app-main{grid-template-columns:1fr;padding:16px}.main-content{order:1}.main-chat{order:2;position:static}.chat-panel{height:420px}}.explorer-window{border:1px solid #cfd8e3;border-radius:8px;overflow:hidden;background:#fff;display:flex;flex-direction:column}.exp-addressbar{display:flex;align-items:center;gap:8px;padding:7px 8px;background:#f3f6fa;border-bottom:1px solid #e1e8f0}.exp-nav{display:flex;gap:2px;flex-shrink:0}.exp-navbtn{width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:#3d4a5c;font-size:.95rem;cursor:pointer}.exp-navbtn:hover:not(:disabled){background:#e3ebf5}.exp-navbtn:disabled{color:#b6c0cd;cursor:default}.exp-address{flex:1;min-width:0;display:flex;align-items:center;gap:2px;height:28px;padding:0 8px;background:#fff;border:1px solid #cfd8e3;border-radius:4px;overflow-x:auto;white-space:nowrap}.exp-address-icon{flex-shrink:0;margin-right:4px;font-size:.85rem}.exp-crumb-wrap{display:inline-flex;align-items:center}.exp-crumb{background:none;border:none;font-family:inherit;font-size:.82rem;color:#24313f;cursor:pointer;padding:2px 6px;border-radius:3px;white-space:nowrap}.exp-crumb:hover{background:#e8f0fb}.exp-crumb-sep{color:#93a1b3;font-size:.8rem}.exp-viewswitch{display:flex;gap:2px;flex-shrink:0}.exp-viewbtn{width:28px;height:28px;border:1px solid transparent;border-radius:4px;background:transparent;color:#3d4a5c;cursor:pointer;font-size:.85rem}.exp-viewbtn:hover{background:#e3ebf5}.exp-viewbtn.active{background:#dbe9fb;border-color:#9dc2ef;color:var(--accent-hover)}.exp-toolbar{display:flex;align-items:center;gap:2px;padding:5px 8px;background:#fafcfe;border-bottom:1px solid #e1e8f0;flex-wrap:wrap}.exp-tool{display:inline-flex;align-items:center;gap:5px;border:1px solid transparent;border-radius:4px;background:transparent;color:#24313f;font-family:inherit;font-size:.82rem;padding:5px 9px;cursor:pointer;white-space:nowrap;text-decoration:none}.exp-tool:hover:not(:disabled):not(.disabled){background:#e8f0fb;border-color:#cfe0f6;text-decoration:none}.exp-tool:disabled,.exp-tool.disabled{color:#aab4c0;cursor:default;pointer-events:none}.exp-tool.danger:hover:not(:disabled){background:#fdeced;border-color:#f5c2c5;color:var(--danger)}.exp-tool-icon{font-size:.9rem}.exp-tool-sep{width:1px;height:18px;background:#dde5ee;margin:0 5px}.exp-newfolder{display:flex;gap:8px;padding:8px;background:#fafcfe;border-bottom:1px solid #e1e8f0}.exp-newfolder input{flex:1;min-width:0;font-size:.85rem;padding:5px 10px}.exp-error{margin:0;padding:6px 10px;background:#fdeced}.exp-panes{display:grid;grid-template-columns:var(--tree-width, 240px) 6px 1fr;align-items:stretch;min-height:340px}.exp-content{min-width:0;overflow:auto;outline:none;padding:8px}.exp-content:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-soft)}.exp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:4px;align-content:start}.exp-tile{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 5px;border:1px solid transparent;border-radius:4px;cursor:default;-webkit-user-select:none;user-select:none}.exp-tile:hover{background:#f0f6fe;border-color:#d7e6f9}.exp-tile.selected{background:#cce4fb;border-color:#99caf7}.exp-tile-icon{font-size:2.6rem;line-height:1;height:64px;display:flex;align-items:center}.exp-tile-thumb{width:100%;height:64px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#eef2f7,#eef2f7 25%,#fff 0%,#fff 50%) 0 0 / 14px 14px;border:1px solid #e6ecf3;border-radius:3px}.exp-tile-thumb img{max-width:100%;max-height:62px;image-rendering:pixelated}.exp-tile-name{font-size:.76rem;line-height:1.3;text-align:center;word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.exp-tile .rename-form{width:100%;padding:0}.exp-tile .rename-form input{text-align:center;font-size:.75rem;padding:2px 4px}.exp-table{width:100%;border-collapse:collapse;font-size:.8rem;-webkit-user-select:none;user-select:none}.exp-table th{text-align:left;font-weight:500;color:#5a6779;padding:5px 8px;border-bottom:1px solid #e1e8f0;border-right:1px solid #eef2f7;background:#fafcfe;position:sticky;top:-8px}.exp-table th:last-child{border-right:none}.exp-table td{padding:4px 8px;border-bottom:1px solid #f2f5f9;color:#3d4a5c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exp-table tbody tr{cursor:default}.exp-table tbody tr:hover{background:#f0f6fe}.exp-table tbody tr.selected{background:#cce4fb}.exp-table .col-name{width:40%}.exp-table .col-date{width:17%}.exp-table .col-type{width:20%}.exp-table .col-size{width:11%;text-align:right}.exp-table .col-user{width:12%}.exp-table td.col-name{display:flex;align-items:center;gap:6px}.exp-row-icon{flex-shrink:0}.exp-row-thumb{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#eef2f7,#eef2f7 25%,#fff 0%,#fff 50%) 0 0 / 8px 8px;border:1px solid #e6ecf3;border-radius:2px}.exp-row-thumb img{max-width:18px;max-height:18px;image-rendering:pixelated}.exp-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exp-status{display:flex;gap:18px;padding:5px 10px;background:#f3f6fa;border-top:1px solid #e1e8f0;font-size:.75rem;color:#5a6779}.project-heading{min-width:0}.gamelink{display:flex;align-items:center;gap:4px;margin-top:10px}.gamelink-btn{display:inline-flex;align-items:baseline;gap:10px;padding:7px 16px;border-radius:999px;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;font-size:.9rem;font-weight:600;box-shadow:0 2px 6px #3b82f64d;min-width:0}.gamelink-btn:hover{text-decoration:none;filter:brightness(1.06)}.gamelink-url{font-size:.73rem;font-weight:400;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.gamelink-add{display:inline-block;margin-top:10px;padding:6px 14px;border:1px dashed var(--border);border-radius:999px;background:transparent;color:var(--text-sub);font-family:inherit;font-size:.83rem;cursor:pointer}.gamelink-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.gamelink-form{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.gamelink-form input{flex:1;min-width:140px;font-size:.85rem;padding:6px 10px}@media (max-width: 1100px){.exp-panes{grid-template-columns:1fr;min-height:0}.exp-panes .explorer-resizer{display:none}.exp-content{min-height:240px}.gamelink-url{display:none}}
