@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--paper: #eef1f5;--surface: #ffffff;--ink: #17222c;--ink-2: #263646;--on-ink: #ffffff;--muted: #5d6b78;--line: #d8dfe6;--line-strong: #c3cdd6;--hover: #f2f5f8;--accent: #4f46e5;--accent-ink: #3730a3;--accent-bg: #e8e7f9;--b-slate: #3b5b78;--b-slate-bg: #e4eaf0;--b-moss: #2f6b4f;--b-moss-bg: #e2efe7;--b-plum: #7a3e6d;--b-plum-bg: #f1e4ee;--danger: #b23a2e;--danger-bg: #fbe9e5;--radius: 12px;--radius-lg: 18px;--shadow: 0 1px 2px rgba(23, 34, 44, .06), 0 8px 24px rgba(23, 34, 44, .08);--font-display: "Space Grotesk", "Inter", sans-serif;--font-body: "Inter", "Segoe UI", system-ui, sans-serif;--font-brush: "Permanent Marker", "Yuji Syuku", "HG行書体", "Yu Mincho", serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text: var(--ink);--border: var(--line);--primary: var(--accent);--primary-dark: var(--accent-ink)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--accent);cursor:pointer}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select,textarea{font-family:var(--font-body);font-size:14px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--line-strong);box-shadow:0 0 0 3px #4f46e51f}.landing{min-height:100vh;background:#fff;color:#111;position:relative}.landing>:not(.landing-bg){position:relative;z-index:1}.landing-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(900px 520px at 82% -5%,rgba(0,0,0,.05),transparent 60%),radial-gradient(700px 460px at 8% 108%,rgba(0,0,0,.045),transparent 60%)}.landing-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='104' viewBox='0 0 120 104'%3E%3Cpath d='M60 8 L112 96 L8 96 Z' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E");background-size:120px 104px;opacity:.04}.landing-ring{position:absolute;border:1px solid rgba(0,0,0,.09);border-radius:50%;opacity:0;animation:ringDrift 24s ease-in-out infinite}.landing-ring.r1{width:340px;height:340px;left:10%;top:20%}.landing-ring.r2{width:220px;height:220px;left:78%;top:28%;animation-delay:-8s}.landing-ring.r3{width:480px;height:480px;left:42%;top:66%;animation-delay:-15s}@keyframes ringDrift{0%{transform:translateY(36px) scale(1);opacity:0}25%{opacity:.5}75%{opacity:.3}to{transform:translateY(-140px) scale(1.08);opacity:0}}.landing-contact-inner{max-width:560px}.landing .btn-dark{background:#111;color:#fff;border:1px solid #111}.landing .btn-dark:hover{background:#000}.landing .btn-ghost{background:transparent;color:#111;border:1px solid #d0d0d0}.landing .btn-ghost:hover{border-color:#111}.landing-header{position:sticky;top:0;z-index:40;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #e5e5e5}.landing-header-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 28px}.landing-nav-links{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.landing-nav-links a{font-size:13.5px;color:#444;text-decoration:none;padding:4px 2px;border-bottom:1px solid transparent;white-space:nowrap}.landing-nav-links a:hover{color:#111;border-bottom-color:#111}.landing-nav-links a.active{color:#111;font-weight:600;border-bottom-color:#111}.landing-brand{font-family:var(--font-brush);font-size:28px;color:#111;text-decoration:none}.landing-nav-actions{display:flex;gap:10px}.landing-hero{text-align:center;padding:80px 24px 60px;max-width:860px;margin:0 auto}.landing-hero-title{font-family:var(--font-brush);font-size:clamp(56px,12vw,96px);font-weight:400;letter-spacing:.04em;margin:0;line-height:1}.landing-hero-tag{font-size:21px;font-weight:600;letter-spacing:.02em;margin:20px 0 8px}.landing-hero-sub{font-size:15px;line-height:1.9;color:#666;margin:0 auto 28px;max-width:620px}.landing-hero-actions{display:flex;gap:12px;justify-content:center}.landing-hero-note{margin-top:16px;font-size:12px;color:#888}.landing-section{max-width:1080px;margin:0 auto;padding:60px 24px;border-top:1px solid #eee}.landing-section.center .landing-h2,.landing-section.center .landing-lead{text-align:center}.landing-section.center .landing-faq,.landing-section.center .landing-capacity{margin:0 auto}.landing-h2{font-size:26px;font-weight:600;margin:0 0 8px}.landing-lead{margin:0 0 28px}.landing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.landing-card{padding:22px;border:1px solid #e5e5e5;border-radius:12px;background:#fff}.landing-card-icon{width:30px;height:30px;color:#111;margin-bottom:14px}.landing-card-icon svg{width:100%;height:100%}.landing-card h3{margin:0 0 6px;font-size:16px;font-weight:600}.landing-card p{margin:0;font-size:13px;line-height:1.8;color:#666}.landing-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.landing-plan{padding:22px;border:1px solid #e5e5e5;border-radius:12px;background:#fff;display:flex;flex-direction:column}.landing-plan-name{margin:0;font-size:16px;font-weight:600;letter-spacing:.04em}.landing-plan-trial{display:inline-block;margin-top:8px;font-size:11px;letter-spacing:.03em;color:#fff;background:#111;padding:3px 10px;border-radius:999px}.landing-plan-price{font-family:var(--font-mono);font-size:28px;font-weight:700;color:#111;margin:10px 0 2px}.landing-plan-note{font-size:12px;margin-bottom:14px;color:#888}.landing-plan-features{margin:0 0 18px;padding-left:18px;font-size:13px;line-height:1.9;color:#444;flex:1}.landing-capacity{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;max-width:820px}.landing-capacity-card{position:relative;padding:24px 22px;border:1px solid #e0e0e0;border-radius:12px;background:#fff;display:flex;flex-direction:column}.landing-capacity-card.featured{border-color:#111;box-shadow:0 1px #0000000a}.landing-capacity-tag{position:absolute;top:-10px;right:14px;background:#111;color:#fff;font-size:11px;padding:3px 10px;border-radius:999px;letter-spacing:.04em}.landing-capacity-size{font-family:var(--font-brush);font-size:34px;margin-bottom:16px}.landing-capacity-rows{border-top:1px solid #eee;margin-bottom:18px}.landing-capacity-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #eee;font-size:13px;color:#555}.landing-capacity-row .price{font-family:var(--font-mono);font-size:15px;font-weight:700;color:#111;white-space:nowrap}.landing-cta{text-align:center;padding:72px 24px;border-top:1px solid #eee}.landing-cta h2{margin:0 0 8px;font-size:26px;font-weight:600}.landing-cta p{margin:0 0 20px;color:#666}.landing-details{display:grid;gap:0}.landing-detail{display:flex;gap:18px;padding:20px 4px;border-top:1px solid #eee}.landing-detail:last-child{border-bottom:1px solid #eee}.landing-detail-icon{width:26px;height:26px;color:#111;flex-shrink:0;margin-top:2px}.landing-detail-icon svg{width:100%;height:100%}.landing-detail h3{margin:0 0 6px;font-size:16px;font-weight:600}.landing-detail p{margin:0;font-size:13.5px;line-height:1.9;color:#555;max-width:720px}.landing-faq{max-width:720px}.landing-faq-item{border-top:1px solid #eee}.landing-faq-item:last-child{border-bottom:1px solid #eee}.landing-faq-item summary{cursor:pointer;padding:18px 2px;font-size:15px;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center}.landing-faq-item summary::-webkit-details-marker{display:none}.landing-faq-item summary:after{content:"+";font-size:20px;color:#888;transition:transform .15s ease}.landing-faq-item[open] summary:after{content:"−"}.landing-faq-item p{margin:0 0 18px;padding:0 2px;font-size:13.5px;line-height:1.9;color:#555}.landing-footer{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding:48px 28px 40px;background:#111;color:#fff}.landing-contact{flex:1;min-width:280px;max-width:480px}.landing-contact h2{font-size:22px;font-weight:600;margin:0 0 6px;color:#fff}.landing-contact .muted{color:#aaa;margin:0 0 16px}.landing-contact-form{display:flex;flex-direction:column;gap:10px}.landing-contact-form input,.landing-contact-form textarea{width:100%;box-sizing:border-box;background:#fff;border:1px solid #333;border-radius:8px;padding:10px 12px;font-size:14px;color:#111}.landing-contact-form textarea{min-height:96px;resize:vertical}.landing-contact-form button{align-self:flex-start}.landing-contact-ok{padding:16px;border:1px solid #333;border-radius:8px;color:#ccc;font-size:14px}.landing-footer-side{display:flex;flex-direction:column;gap:16px;align-items:flex-start}.landing-footer-side .landing-brand{color:#fff}.landing-footer-links{display:flex;flex-direction:column;gap:10px}.landing-footer-links a{font-size:13px;color:#bbb;text-decoration:none;border-bottom:1px solid transparent}.landing-footer-links a:hover{color:#fff;border-bottom-color:#fff}.landing-footer-side .muted{font-size:12px;color:#777}.legal{min-height:100vh;background:#fff;color:#111}.legal-nav{display:flex;align-items:center;padding:14px 28px;border-bottom:1px solid #e5e5e5}.legal-body{max-width:720px;margin:0 auto;padding:48px 24px 72px}.legal-body h1{font-size:28px;font-weight:600;margin:0 0 4px}.legal-updated{font-size:12px;color:#888;margin:0 0 28px}.legal-body section{margin-bottom:24px}.legal-body h2{font-size:16px;font-weight:600;margin:0 0 6px}.legal-body p{font-size:14px;line-height:1.9;color:#444;margin:0}.legal-back{margin-top:32px}.legal-back a{color:#111;font-size:13px;text-decoration:underline}.landing-more{margin:24px 0 0;text-align:center}.landing-more a{color:#111;font-size:13.5px;text-decoration:underline;text-underline-offset:3px}.article-card{text-decoration:none;color:inherit;display:flex;flex-direction:column}.article-card h3{margin:8px 0 6px;font-size:16px;font-weight:600}.article-card:hover{border-color:#111}.article-tag{font-size:11px;letter-spacing:.06em;color:#888;margin-bottom:4px}.article-title{font-size:26px;font-weight:600;line-height:1.5;margin:8px 0 24px}.article-body section{margin-bottom:20px}.article-body h2{font-size:17px;font-weight:600;margin:0 0 8px}.article-body p{font-size:14.5px;line-height:2;color:#444;margin:0}.article-body ul{font-size:14px;line-height:2;color:#444;padding-left:20px}.article-cta{margin-top:28px;padding:20px;border:1px solid #111;border-radius:12px;text-align:center}.article-cta p{margin:0 0 14px;font-size:14px;color:#333}.article-hero{width:100%;margin-bottom:14px;border:1px solid #eee;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,#f7f7f7,#ececec);aspect-ratio:3 / 1}.article-hero-img{width:100%;height:100%;object-fit:cover;display:block}.article-hero-wide{margin:0 0 24px}.article-table-wrap{margin:16px 0 8px}.article-table-caption{font-size:12px;color:#888;margin:0 0 8px}.article-table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.6}.article-table th,.article-table td{border:1px solid #e5e5e5;padding:8px 10px;text-align:left;vertical-align:top}.article-table th{background:#f7f7f7;font-weight:600;white-space:nowrap}.article-table td:first-child{white-space:nowrap;font-weight:500}@media(max-width:560px){.article-table th,.article-table td{font-size:12px;padding:6px}}.features-page{max-width:860px;margin:0 auto;padding:56px 24px 24px}.features-title,.contact-title{font-size:28px;font-weight:600;margin:0 0 8px}.feature-section{padding:40px 4px;border-top:1px solid #eee}.feature-section:last-child{border-bottom:1px solid #eee}.feature-head{display:flex;align-items:flex-start;gap:16px}.feature-icon{width:30px;height:30px;color:#111;flex-shrink:0;margin-top:2px}.feature-icon svg{width:100%;height:100%}.feature-head h2{margin:0 0 4px;font-size:20px;font-weight:600}.feature-tagline{margin:0;font-size:13px;color:#888}.feature-overview{margin:18px 0 0;font-size:14px;line-height:1.9;color:#444}.feature-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:20px}.feature-cols h3{font-size:13px;font-weight:600;letter-spacing:.04em;color:#888;margin:0 0 8px}.feature-cols ul{margin:0;padding-left:18px;font-size:13.5px;line-height:1.9;color:#444}.feature-plan{margin:20px 0 0;font-size:12.5px;color:#888}.feature-plan strong{color:#111}@media(max-width:640px){.feature-cols{grid-template-columns:1fr;gap:18px}}.contact-page{max-width:620px;margin:0 auto;padding:56px 24px 72px}.contact-form{display:flex;flex-direction:column;gap:16px}.contact-field{display:flex;flex-direction:column;gap:6px}.contact-field label{font-size:13px;font-weight:600;color:#333}.contact-field input,.contact-field select,.contact-field textarea{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #ccc;border-radius:8px;font-size:14px;color:#111;background:#fff}.contact-field textarea{min-height:140px;resize:vertical}.contact-form button{align-self:flex-start}.contact-ok{padding:20px;border:1px solid #ddd;border-radius:8px;color:#333;font-size:14px;line-height:1.8}@media(max-width:720px){.landing-hero{padding:48px 16px 40px}.landing-footer{flex-direction:column;align-items:flex-start}}.app{display:flex;flex-direction:column;height:100vh}.app-body{display:flex;flex:1;overflow:hidden}.main{flex:1;overflow-y:auto;padding:30px 36px 64px}.screen-root{position:relative;min-height:100%;margin:-30px -36px -64px;padding:30px 36px 64px}.topbar{display:flex;align-items:center;gap:20px;height:72px;padding:0 28px;background:var(--surface);border-bottom:1px solid var(--line);position:relative;z-index:50;flex-shrink:0}.topbar-brand{display:flex;align-items:center;gap:12px;min-width:0;white-space:nowrap}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--accent);color:var(--on-ink)}.brand-name{font-family:var(--font-brush);font-size:33px;font-weight:400;line-height:1;letter-spacing:.04em;color:var(--ink)}.topbar-search{flex:1;display:flex;justify-content:center;padding:0 12px}.search-wrap{position:relative;width:min(560px,100%)}.search-pill{display:flex;align-items:center;gap:6px;height:48px;padding:0 6px 0 16px;background:var(--paper);border:1px solid transparent;border-radius:14px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.search-pill:focus-within{background:var(--surface);border-color:var(--accent);box-shadow:0 2px 12px #4f46e52e}.search-pill .search-ico{color:var(--muted);flex-shrink:0}.search-pill input{flex:1;min-width:0;border:none;background:transparent;padding:0;font-size:15px;color:var(--ink)}.search-pill input::placeholder{color:var(--muted)}.search-pill input:focus{outline:none;box-shadow:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;border-radius:10px;color:var(--muted);flex-shrink:0}.icon-btn:hover{background:var(--hover);color:var(--ink)}.icon-btn.on{color:var(--accent);background:var(--accent-bg)}.topbar-right{display:flex;align-items:center;gap:12px;min-width:0}.user-meta{display:flex;flex-direction:column;align-items:flex-end;min-width:0}.user-email{font-size:12px;color:var(--ink);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--on-ink);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:12px;font-weight:600;flex-shrink:0}.link-btn{background:none;border:none;color:var(--muted);font-size:12px;padding:0}.link-btn:hover{color:var(--ink);text-decoration:underline}.search-pop{position:absolute;top:calc(100% + 10px);left:0;width:420px;max-width:92vw;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:18px;z-index:60}.search-pop-title{font-family:var(--font-display);font-size:15px;font-weight:600;margin:0 0 14px}.search-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.search-field>span{font-size:12px;font-weight:500;color:var(--muted)}.search-field .row{display:flex;gap:8px;align-items:center}.search-field .row input{flex:1;min-width:0}.search-pop-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px;border-top:1px solid var(--line);padding-top:14px}.sidebar{width:268px;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 12px 14px;flex-shrink:0;overflow-y:auto}.nav{display:flex;flex-direction:column;gap:2px}.nav-label{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:16px 14px 6px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:none;background:transparent;border-radius:10px;color:var(--ink);font-size:14px;font-weight:500;text-align:left;transition:background .12s ease,color .12s ease}.nav-item svg{flex-shrink:0;color:var(--muted)}.nav-item:hover{background:var(--hover)}.nav-item.active{background:var(--ink);color:var(--on-ink)}.nav-item.active svg{color:var(--on-ink)}.nav-lock{margin-left:auto;display:inline-flex;color:var(--muted)}.sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}.storage-block{padding:8px}.storage-label{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--muted)}.storage-label b{font-family:var(--font-mono);font-weight:500;color:var(--ink)}.usage-bar{height:6px;background:var(--track);border-radius:999px;overflow:hidden;margin:10px 0 4px}.usage-bar>div{height:100%;border-radius:999px;background:var(--accent)}.plan-line{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.storage-upgrade{margin-top:10px;width:100%;justify-content:center;background:var(--accent)}.storage-upgrade:hover{background:var(--accent-ink)}.user-card{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;margin-top:8px}.user-card:hover{background:var(--hover)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-title{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.02em;margin:0}.page-sub{font-size:13px;color:var(--muted);margin-top:3px}.page-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.breadcrumb{margin-bottom:14px;font-family:var(--font-mono);font-size:12px;color:var(--muted)}.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb a:hover{color:var(--ink);text-decoration:underline}.breadcrumb strong{color:var(--ink)}.drive-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.query-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 16px}.query-label{font-family:var(--font-display);font-size:23px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.query-label .q{color:var(--accent)}.query-count{font-family:var(--font-mono);font-size:12px;color:var(--muted)}.filter-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 6px 4px 12px;font-size:12px;color:var(--ink);font-family:var(--font-mono)}.filter-chip button{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:transparent;border-radius:50%;color:var(--muted);line-height:1;font-size:14px}.filter-chip button:hover{background:var(--hover);color:var(--ink)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line)}.table th{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;background:var(--hover)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background .1s ease}.table tbody tr:hover{background:var(--hover)}.row-main{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.row-main:hover .row-name{color:var(--accent);text-decoration:underline}.row-name{font-weight:500}.owner-cell{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink)}.owner-avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--on-ink);font-family:var(--font-mono);font-size:10px;font-weight:600;flex-shrink:0}.share-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;margin-bottom:6px}.share-url{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-ico{display:inline-flex;align-items:center;justify-content:center;margin-right:12px;flex-shrink:0;line-height:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;margin-bottom:20px}.card h2{font-family:var(--font-display);font-size:16px;font-weight:600;margin:0 0 16px}.form-row{display:flex;gap:10px;align-items:center;margin-bottom:12px}.form-row label{font-size:13px;color:var(--muted);width:110px;flex-shrink:0}.muted{color:var(--muted);font-size:13px}.mono{font-family:var(--font-mono);font-size:12px}.section-label{font-size:12px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tabs{display:flex;gap:4px;background:var(--hover);border-radius:10px;padding:4px;width:fit-content}.tab{border:none;background:transparent;padding:8px 16px;font-size:13px;font-weight:600;color:var(--muted);border-radius:8px;cursor:pointer}.tab.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #00000014}@media(max-width:980px){.grid-2{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:10px;padding:9px 16px;font-size:13px;font-weight:600;background:var(--ink);color:var(--on-ink);transition:background .12s ease,transform .05s ease}.btn:hover{background:var(--ink-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default}.btn-ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line);font-weight:500}.btn-ghost:hover{background:var(--hover)}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-danger:hover{background:#f5d6cf}.btn-text{background:none;border:none;color:var(--muted);font-size:12px;padding:6px 8px}.btn-text:hover{color:var(--ink);text-decoration:underline}.btn-small{padding:6px 12px;font-size:12px;border-radius:8px}.badge{display:inline-block;font-family:var(--font-mono);font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px}.badge-a{background:var(--b-slate-bg);color:var(--b-slate)}.badge-b{background:var(--b-moss-bg);color:var(--b-moss)}.badge-c{background:var(--b-plum-bg);color:var(--b-plum)}.auth-wrap{display:flex;min-height:100vh;background:var(--paper)}.auth-brand{flex:1.1;min-width:0;background:#10161d;color:#fff;display:flex;align-items:center;justify-content:center;padding:48px;position:relative;overflow:hidden}.auth-brand:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(139,147,248,.28),transparent 62%);top:-180px;right:-140px}.auth-brand:after{content:"";position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(20,130,150,.22),transparent 62%);bottom:-160px;left:-120px}.auth-brand-inner{position:relative;z-index:1;max-width:460px}.auth-brand-inner .brand-mark{background:var(--accent)}.auth-brand-title{font-family:var(--font-brush);font-size:52px;font-weight:400;letter-spacing:.06em;margin-top:18px}.auth-brand-sub{color:#c7d0d9;margin-top:8px;font-size:15px}.auth-brand-features{margin-top:34px;display:flex;flex-direction:column;gap:14px}.auth-brand-features>div{display:flex;align-items:center;gap:12px;color:#e7edf3;font-size:14px}.auth-brand-features>div:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.auth-main{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:36px;width:400px;max-width:100%}.auth-card h1{font-family:var(--font-display);font-size:24px;font-weight:700;margin:0 0 4px;letter-spacing:-.01em}.auth-card p.sub{color:var(--muted);font-size:13px;margin:0 0 22px}.auth-card .form-row{flex-direction:column;align-items:stretch;gap:4px}.auth-card .form-row label{width:auto}.auth-card .btn{width:100%;padding:11px;margin-top:8px}.auth-divider{display:flex;align-items:center;gap:10px;margin:16px 0 12px;color:var(--muted);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.switch{margin-top:16px;font-size:13px;text-align:center;color:var(--muted)}@media(max-width:860px){.auth-wrap{flex-direction:column}.auth-brand{flex:none;padding:32px 24px;align-items:flex-start}.auth-brand-title{font-size:26px}.auth-brand-features{margin-top:20px}}.error-box{background:var(--danger-bg);border:1px solid #f0c9c2;color:var(--danger);border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:12px}.notice-box{background:var(--b-slate-bg);border:1px solid #c9d6e1;color:var(--b-slate);border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:12px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.row-dragging{opacity:.4}.drop-target{background:var(--accent-bg)!important;outline:2px dashed var(--accent);outline-offset:-2px}.row-menu-btn{padding:6px;line-height:0}.row-menu,.context-menu{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px;min-width:180px}.row-menu-item{display:flex;width:100%;text-align:left;border:none;background:transparent;padding:9px 12px;font-size:13px;border-radius:8px;cursor:pointer;color:var(--ink)}.row-menu-item:hover{background:var(--hover)}.row-menu-item.danger{color:var(--danger)}.row-menu-item.danger:hover{background:var(--danger-bg)}.row-menu-hint{padding:8px 12px;font-size:12px;color:var(--muted)}.popup-area{position:fixed;right:16px;bottom:16px;z-index:999;display:flex;flex-direction:column;gap:8px;align-items:flex-end;width:320px;max-width:calc(100vw - 32px);pointer-events:none;overflow-anchor:none}.busy-float{position:fixed;top:12px;right:16px;z-index:999;color:var(--muted);font-size:12px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px 10px;pointer-events:none}.toast{background:#16a34a;color:#fff;padding:10px 16px;border-radius:8px;box-shadow:0 4px 12px #00000026;font-size:13px;max-width:100%;animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast.error{background:#dc2626}.upload-panel{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px;display:flex;flex-direction:column;gap:8px;pointer-events:auto}.upload-item{padding:8px 10px;border:1px solid var(--line);border-radius:10px}.upload-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.upload-name{font-size:12px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-status{font-family:var(--font-mono);font-size:11px;color:var(--muted);flex-shrink:0}.upload-item.done .upload-status{color:var(--b-moss)}.upload-item.error .upload-status{color:var(--danger)}.upload-error{font-size:11px;color:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#17222c66;display:flex;align-items:center;justify-content:center;z-index:70;padding:20px}.preview-card{width:min(960px,100%);max-height:92vh;display:flex;flex-direction:column;padding:0;overflow:hidden}.preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.preview-title{display:flex;align-items:center;gap:12px;min-width:0}.preview-name{font-size:15px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}.preview-meta{font-family:var(--font-mono);font-size:11px;color:var(--muted);margin-top:2px}.preview-body{flex:1;min-height:0;overflow:auto;background:var(--paper);display:flex;align-items:flex-start;justify-content:center;padding:20px}.preview-media{max-width:100%;max-height:70vh;border-radius:8px;background:var(--surface);margin:auto}.preview-empty{margin:auto}.preview-audio{width:100%}.preview-pdf{width:100%;height:60vh;border:none;border-radius:8px;background:var(--surface)}.preview-text{width:100%;margin:0;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-family:var(--font-mono);font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.preview-text table{border-collapse:collapse;font-family:var(--font-body);font-size:13px}.preview-md{width:100%;padding:20px 24px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:14px;line-height:1.7;color:var(--ink);overflow-wrap:break-word}.preview-md h1,.preview-md h2,.preview-md h3,.preview-md h4{margin:1.2em 0 .5em;line-height:1.3;border-bottom:1px solid var(--line);padding-bottom:.25em}.preview-md h1{font-size:1.6em}.preview-md h2{font-size:1.35em}.preview-md h3{font-size:1.2em}.preview-md h4{font-size:1.05em}.preview-md p{margin:.6em 0}.preview-md ul,.preview-md ol{margin:.6em 0;padding-left:1.6em}.preview-md li{margin:.2em 0}.preview-md code{font-family:var(--font-mono);font-size:.9em;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:.1em .35em}.preview-md pre{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px;overflow:auto;font-family:var(--font-mono);font-size:12px;line-height:1.5}.preview-md pre code{background:none;border:none;padding:0}.preview-md blockquote{margin:.8em 0;padding:.2em 1em;border-left:4px solid var(--line);color:var(--muted)}.preview-md table{border-collapse:collapse;margin:.8em 0;font-size:13px}.preview-md th,.preview-md td{border:1px solid var(--line);padding:6px 10px;text-align:left}.preview-md th{background:var(--paper)}.preview-md a{color:var(--accent);text-decoration:underline}.preview-md img{max-width:100%;border-radius:6px}.preview-md hr{border:none;border-top:1px solid var(--line);margin:1.2em 0}.preview-text td,.preview-text th{border:1px solid var(--line);padding:4px 8px}.preview-doc,.preview-pptx{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px;font-family:var(--font-body)}.pptx-stage{transform-origin:0 0}.pptx-slide{position:relative;background:#fff;margin:0 auto 14px;box-shadow:0 1px 4px #0003;overflow:hidden;color:#1f2937}.pptx-slide:last-child{margin-bottom:0}.pptx-shape{position:absolute;font-size:14px;line-height:1.45}.pptx-text{padding:4px 6px}.pptx-para{min-height:1em}.pptx-pic{display:block}.pptx-tbl{width:100%;border-collapse:collapse;font-size:12px}.pptx-td{border:1px solid #d1d5db;padding:3px 6px;vertical-align:top;text-align:left}.pptx-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:13px}.preview-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--muted);font-size:13px;padding:24px}.preview-actions{display:flex;gap:8px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid var(--line);background:var(--surface)}@media(max-width:720px){.topbar{padding:0 14px;gap:10px}.topbar-right .user-meta{display:none}.sidebar{width:72px;padding:14px 8px}.nav-item{justify-content:center;padding:10px}.nav-item .nav-text,.nav-label,.storage-block,.user-card .user-email{display:none}.main{padding:20px 16px 48px}}:root[data-theme=dark]{--paper: #111820;--surface: #1a2430;--ink: #e7edf3;--ink-2: #cdd8e2;--on-ink: #10161d;--muted: #94a3b1;--line: #2b3947;--line-strong: #405163;--hover: #212d3b;--track: #283543;--accent: #8b93f8;--accent-ink: #6a74e8;--accent-bg: #2a2f55;--b-slate: #9db8d0;--b-slate-bg: #233141;--b-moss: #7fd0a8;--b-moss-bg: #1e3a2e;--b-plum: #c9a4e8;--b-plum-bg: #3a2c4a;--danger: #f28b81;--danger-bg: #4a2723;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .4)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
