:root{
  color-scheme:dark;
  --bg:#0b0b0d;
  --panel:#121216;
  --panel-2:#17171c;
  --panel-3:#1d1d23;
  --line:#2a2a31;
  --text:#f7f7f8;
  --muted:#9a9aa3;
  --orange:#ff7a00;
  --orange-2:#ff9d2e;
  --orange-soft:rgba(255,122,0,.14);
  --danger:#ff5c68;
  --green:#2edb8d;
  --shadow:0 24px 70px rgba(0,0,0,.38);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}
body{min-height:100vh}
button,input,textarea,select{font:inherit}
button,a{touch-action:manipulation}
button{color:inherit}
svg{width:1.2em;height:1.2em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hidden{display:none!important}
.toast{position:fixed;z-index:1000;left:50%;bottom:28px;transform:translate(-50%,18px);padding:12px 18px;border:1px solid #3a3a43;border-radius:999px;background:#202027;color:#fff;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s}
.toast.show{opacity:1;transform:translate(-50%,0)}

.login-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 50% 10%,rgba(255,122,0,.12),transparent 34%),var(--bg)}
.login-card{width:min(390px,100%);padding:36px;border:1px solid var(--line);border-radius:24px;background:rgba(18,18,22,.96);box-shadow:var(--shadow)}
.login-logo{display:block;width:72px;height:72px;margin:0 auto 18px;border-radius:18px;object-fit:cover}
.login-card h1{text-align:center;margin:0;font-size:28px;letter-spacing:-.8px}
.login-card>p{text-align:center;margin:8px 0 28px;color:var(--muted);font-size:13px}
.form-error{min-height:20px;margin-top:12px;color:#ff8d95;font-size:13px}

.app{min-height:100vh}
.app-header{position:sticky;top:0;z-index:50;height:72px;display:grid;grid-template-columns:240px minmax(260px,560px) 1fr;align-items:center;gap:24px;padding:0 26px;border-bottom:1px solid var(--line);background:rgba(11,11,13,.9);backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}
.brand img{width:40px;height:40px;border-radius:12px;object-fit:cover}
.brand div{display:flex;flex-direction:column;gap:2px}
.brand b{font-size:15px}
.brand span{font-size:9px;letter-spacing:1.8px;color:#aaaab3}
.search-box{height:44px;display:flex;align-items:center;gap:11px;padding:0 14px;border:1px solid var(--line);border-radius:13px;background:#111115;color:#777781}
.search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--text)}
.search-box input::placeholder{color:#74747d}
.header-right{display:flex;justify-content:flex-end;align-items:center;gap:10px}
.storage-pill,.account-button{height:46px;border:1px solid var(--line);border-radius:14px;background:#141419;display:flex;align-items:center;gap:10px;padding:0 13px;cursor:pointer}
.storage-pill div{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05}
.storage-pill small{font-size:9px;letter-spacing:1.4px;color:#8b8b94}.storage-pill b{font-size:12px;margin-top:3px}
.status-dot{width:9px;height:9px;border-radius:50%;background:#666}.status-dot.online{background:var(--green);box-shadow:0 0 0 5px rgba(46,219,141,.08)}.status-dot.offline{background:var(--danger)}
.account-button>svg{width:15px}.account-button>span:nth-child(2){max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:700}
.avatar{position:relative;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:50%;overflow:hidden;background:linear-gradient(145deg,var(--orange),var(--orange-2));color:#fff;font-weight:800}
.avatar img{width:100%;height:100%;object-fit:cover}.avatar b{font-size:.44em}.avatar-sm{width:26px;height:26px;font-size:24px}.avatar-md{width:32px;height:32px;font-size:30px}.avatar-lg{width:42px;height:42px;font-size:38px}.avatar-xl{width:86px;height:86px;font-size:78px}.avatar-setup{width:110px;height:110px;font-size:92px;border:3px solid rgba(255,122,0,.5)}

.main-content{max-width:1460px;margin:0 auto;padding:38px 34px 70px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;margin-bottom:22px}
.page-kicker,.eyebrow{display:block;color:var(--orange);font-size:10px;font-weight:800;letter-spacing:1.7px}
.page-head h1{margin:5px 0 0;font-size:34px;letter-spacing:-1.2px}
.page-head p{margin:8px 0 0;color:var(--muted);font-size:13px}
.main-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.button{height:44px;border:1px solid transparent;border-radius:12px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:750;cursor:pointer;transition:.16s;text-decoration:none}
.button:hover{transform:translateY(-1px)}
.button.primary{background:linear-gradient(135deg,var(--orange),#ff8d18);color:#fff;box-shadow:0 10px 28px rgba(255,122,0,.2)}
.button.secondary{background:#1a1a20;border-color:#2f2f37}.button.ghost{background:transparent;border-color:#303038}.button.danger{background:rgba(255,92,104,.12);border-color:rgba(255,92,104,.28);color:#ff858e}.button.wide{width:100%}.button.small{height:36px;padding:0 12px;font-size:12px}
.drop-zone{min-height:98px;display:flex;align-items:center;justify-content:center;gap:14px;border:1px dashed #393942;border-radius:16px;background:#101014;transition:.18s}
.drop-zone.dragging{border-color:var(--orange);background:var(--orange-soft)}
.drop-zone .drop-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:var(--orange-soft);color:var(--orange)}
.drop-zone>div:last-child{display:flex;flex-direction:column;gap:4px}.drop-zone b{font-size:14px}.drop-zone span{font-size:12px;color:var(--muted)}
.progress-area{display:grid;gap:8px;margin:14px 0}.progress-row{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.progress-row header{display:flex;justify-content:space-between;gap:16px}.progress-row small{color:var(--muted)}.progress-line{height:5px;margin-top:9px;border-radius:9px;background:#27272e;overflow:hidden}.progress-line i{display:block;height:100%;width:0;background:var(--orange);transition:.16s}
.library{margin-top:20px}.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.filter-tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.filter-tabs button{height:36px;border:0;border-radius:10px;padding:0 12px;background:transparent;color:#a2a2aa;font-size:12px;font-weight:700;cursor:pointer}.filter-tabs button.active{background:var(--orange-soft);color:var(--orange)}
.toolbar-meta{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px}.toolbar-meta select{height:36px;border:1px solid var(--line);border-radius:10px;background:#17171c;color:var(--text);padding:0 10px}
.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;padding-top:18px}
.data-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:17px;background:var(--panel);transition:.18s}.data-card:hover{border-color:#3b3b44;transform:translateY(-2px);box-shadow:0 18px 42px rgba(0,0,0,.18)}
.media-area{position:relative;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#08080a;cursor:pointer}
.media-area>img:not(.site-favicon),.media-area>video{display:block;width:100%;height:100%;object-fit:contain;background:#08080a}
.media-area>video{pointer-events:none}
.type-chip{pointer-events:none;position:absolute;z-index:2;left:12px;top:12px;padding:5px 8px;border-radius:8px;background:rgba(10,10,12,.78);backdrop-filter:blur(8px);font-size:9px;font-weight:900;letter-spacing:1px}
.text-visual{width:100%;height:100%;padding:48px 18px 18px;white-space:pre-wrap;overflow:hidden;color:#e7e7e9;font-size:13px;line-height:1.7;background:linear-gradient(150deg,#18181d,#101014)}
.url-visual{width:100%;height:100%;display:grid;place-items:center;background:#101014}.url-visual>img:not(.site-favicon){width:100%;height:100%;object-fit:cover}.url-fallback{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#d9d9dd}.url-fallback svg,.site-favicon{width:42px;height:42px;object-fit:contain}
.file-visual{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 50% 38%,rgba(255,122,0,.13),transparent 45%),#0f0f13}.file-symbol{width:76px;height:92px;display:grid;place-items:center;border:1px solid #41414b;border-radius:12px;background:#1d1d23;font-size:15px;font-weight:900;color:#d7d7dc}.file-symbol.pdf{color:#ff6b76}.file-symbol.doc{color:#72a4ff}.file-symbol.xls{color:#56d398}.file-symbol.ppt{color:#ff9a5f}
.card-body{padding:14px}.card-domain{display:block;margin-bottom:5px;color:var(--orange);font-size:9px;font-weight:900;letter-spacing:1px}.card-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;color:#8e8e98;font-size:10px}.saved-by{display:flex;align-items:center;gap:7px;min-width:0}.saved-by>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-note{margin-top:11px;padding:10px;border-radius:10px;background:#18181e;color:#aaaab2;font-size:11px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.card-actions button,.card-actions a{height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #303038;border-radius:9px;padding:0 10px;background:#1a1a20;color:#e8e8eb;text-decoration:none;font-size:10px;font-weight:750;cursor:pointer}.card-actions .danger-action{color:#ff7c85}.card-actions .copy-action{margin-left:auto;color:var(--orange);border-color:rgba(255,122,0,.35)}.card-actions .copied{color:#6ee0a6;border-color:rgba(46,219,141,.35)}
.empty-state{grid-column:1/-1;min-height:310px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #34343c;border-radius:17px;background:#101014;color:var(--muted);text-align:center}.empty-state img{width:68px;height:68px;border-radius:18px;object-fit:cover;margin-bottom:16px}.empty-state strong{color:#f1f1f3;font-size:16px}.empty-state span{margin-top:7px;font-size:12px}

.dialog{width:min(560px,calc(100vw - 30px));max-height:calc(100vh - 34px);overflow:auto;padding:0;border:1px solid #33333b;border-radius:20px;background:#141419;color:var(--text);box-shadow:var(--shadow)}
.dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(4px)}
.dialog>form,.dialog>div:not(#detailContent){padding:22px}.compact-dialog{width:min(520px,calc(100vw - 30px))}.settings-dialog{width:min(620px,calc(100vw - 30px))}.detail-dialog{width:min(1100px,calc(100vw - 24px));overflow:hidden}.avatar-dialog{width:min(520px,calc(100vw - 30px))}.onboarding-dialog{width:min(460px,calc(100vw - 28px))}
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.dialog-head h2{margin:4px 0 0;font-size:21px}.sticky-head{position:sticky;z-index:2;top:0;padding:20px 22px 16px!important;margin:0!important;background:rgba(20,20,25,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.icon-button{width:36px;height:36px;border:1px solid #34343c;border-radius:10px;background:#1c1c22;font-size:20px;cursor:pointer}
.field{display:grid;gap:8px;margin-bottom:16px}.field>span{font-size:11px;font-weight:750;color:#b3b3bb}.field input,.field textarea{width:100%;border:1px solid #33333c;border-radius:11px;background:#0f0f13;color:var(--text);outline:none;padding:12px 13px}.field textarea{resize:vertical}.field input:focus,.field textarea:focus{border-color:rgba(255,122,0,.7);box-shadow:0 0 0 3px rgba(255,122,0,.09)}
.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.dialog-actions.left{justify-content:flex-start}.form-hint{margin:-5px 0 15px;color:var(--muted);font-size:11px;line-height:1.6}
.profile-section{display:flex;align-items:center;gap:16px;padding:22px}.profile-avatar-button{position:relative;padding:0;border:0;background:transparent;cursor:pointer}.profile-avatar-button i{position:absolute;right:-4px;bottom:1px;padding:5px 8px;border-radius:8px;background:var(--orange);font-size:9px;font-style:normal;font-weight:800}.profile-copy{display:flex;flex-direction:column;gap:5px}.profile-copy b{font-size:18px}.profile-copy span{color:var(--muted);font-size:11px}.settings-form{padding:0 22px 24px}.admin-section{padding:22px;border-top:1px solid var(--line)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-title h3{margin:4px 0 0}.account-list{display:grid;gap:9px;margin-top:16px}.account-row{display:flex;align-items:center;gap:12px;padding:11px;border:1px solid var(--line);border-radius:13px;background:#111115}.account-row-info{min-width:0;display:flex;flex-direction:column;gap:4px;flex:1}.account-row-info b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-row-info span{color:var(--muted);font-size:10px}.account-row-actions{display:flex;gap:6px}.account-row-actions button{height:30px;border:1px solid #303038;border-radius:8px;background:#1c1c22;font-size:10px;cursor:pointer}.account-row-actions .delete{color:#ff818a}.account-form{margin-top:15px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#101014}.account-form h4{margin:0 0 16px}.settings-bottom{padding:20px 22px;border-top:1px solid var(--line)}

.detail-shell{display:grid;grid-template-rows:auto minmax(0,1fr);max-height:calc(100vh - 26px)}.detail-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 18px;border-bottom:1px solid var(--line);background:#15151a}.detail-title-wrap{min-width:0}.detail-title-wrap b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-title-wrap span{display:block;margin-top:4px;color:var(--muted);font-size:10px}.detail-top-actions{display:flex;gap:7px}.detail-top-actions button,.detail-top-actions a{height:34px;border:1px solid #36363f;border-radius:9px;background:#1c1c22;color:var(--text);text-decoration:none;padding:0 11px;display:inline-flex;align-items:center;font-size:10px;font-weight:750;cursor:pointer}.detail-display{min-height:0;display:grid;place-items:center;overflow:auto;background:#070709;padding:18px}.detail-image{display:block;max-width:100%;max-height:calc(100vh - 150px);width:auto;height:auto;object-fit:contain}.detail-video{max-width:100%;max-height:calc(100vh - 150px)}.detail-frame{width:100%;height:calc(100vh - 150px);border:0;background:#fff}.detail-text{width:min(760px,100%);min-height:240px;padding:24px;border-radius:14px;background:#141419;color:#ececef;white-space:pre-wrap;line-height:1.75}.detail-file{display:grid;place-items:center;gap:14px;color:var(--muted)}

.crop-viewport{position:relative;width:300px;height:300px;margin:0 auto 18px;overflow:hidden;border-radius:18px;background:#09090b;touch-action:none}.crop-viewport>img{position:absolute;left:50%;top:50%;transform-origin:center center;max-width:none;user-select:none}.crop-ring{position:absolute;inset:20px;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 999px rgba(0,0,0,.48);pointer-events:none}.zoom-control{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px}.zoom-control input{flex:1;accent-color:var(--orange)}.avatar-source-row{display:flex;align-items:center;gap:12px;margin-top:15px;color:var(--muted);font-size:10px}
.onboarding-dialog>form{text-align:center;padding:30px}.onboarding-mark img{width:58px;height:58px;border-radius:15px;object-fit:cover}.onboarding-dialog h2{margin:8px 0 0;font-size:24px}.onboarding-dialog p{margin:10px 0 22px;color:var(--muted);font-size:12px;line-height:1.7}.onboarding-avatar-button{display:grid;justify-items:center;gap:9px;margin:0 auto 22px;border:0;background:transparent;color:var(--orange);font-size:11px;font-weight:800;cursor:pointer}

@media(max-width:1000px){.app-header{grid-template-columns:210px 1fr auto}.storage-pill{display:none}.main-content{padding:30px 22px 60px}}
@media(max-width:760px){.app-header{height:auto;grid-template-columns:1fr auto;padding:12px 16px}.search-box{grid-column:1/-1;grid-row:2}.main-content{padding:24px 15px 50px}.page-head{align-items:flex-start;flex-direction:column}.main-actions{width:100%;justify-content:stretch}.main-actions .button{flex:1}.drop-zone{padding:16px}.library-toolbar{align-items:flex-start;flex-direction:column}.toolbar-meta{width:100%;justify-content:flex-end}.items-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.account-button>span:nth-child(2){display:none}}
@media(max-width:520px){.brand span{display:none}.page-head h1{font-size:30px}.page-head p{line-height:1.6}.main-actions{display:grid;grid-template-columns:1fr 1fr}.main-actions .button:last-of-type{grid-column:1/-1}.drop-zone{justify-content:flex-start}.items-grid{grid-template-columns:1fr}.media-area{aspect-ratio:16/11}.dialog{border-radius:16px}.crop-viewport{width:min(300px,calc(100vw - 72px));height:min(300px,calc(100vw - 72px))}.detail-display{padding:8px}.detail-top{align-items:flex-start;flex-direction:column}.detail-top-actions{width:100%;flex-wrap:wrap}}
/* Tess Cloud 5.1 fixes */
.image-media{background:#111114;padding:10px}
.image-media>img{width:100%;height:100%;object-fit:contain!important;background:#111114;border-radius:8px}
.detail-display{width:100%;height:min(82vh,900px);box-sizing:border-box}
.detail-image{max-width:100%!important;max-height:100%!important;width:auto!important;height:auto!important;object-fit:contain!important}
.account-self-hint{margin:0 0 4px;padding:10px 12px;border:1px solid rgba(255,122,0,.22);border-radius:10px;background:rgba(255,122,0,.07);color:#cfcfd5}
.page-head h1{font-weight:820;letter-spacing:-1px}

.image-load-error{display:grid;place-items:center;align-content:center;gap:5px;width:100%;height:100%;min-height:120px;color:#d8d8dc;text-align:center;background:#111114}.image-load-error b{font-size:12px}.image-load-error span{font-size:10px;color:#888891}

/* Tess Cloud 5.4: music player, internal library scrolling and display modes */
html,body{height:100%;overflow:hidden}
.app{height:100vh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.app-header{position:relative;flex:0 0 auto}
.main-content{width:100%;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:18px}
.page-head,.drop-zone,.progress-area{flex:0 0 auto}
.library{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.library-toolbar{flex:0 0 auto}
.items-scroll{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:18px 6px 42px 0;scrollbar-gutter:stable}
.items-scroll::-webkit-scrollbar{width:10px}
.items-scroll::-webkit-scrollbar-track{background:transparent}
.items-scroll::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:rgba(150,150,160,.4);background-clip:padding-box}
.items-scroll::-webkit-scrollbar-thumb:hover{background:rgba(255,122,0,.58);background-clip:padding-box}
.items-grid{padding-top:0;align-content:start}
.items-grid.view-cards.size-small{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px}
.items-grid.view-cards.size-medium{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.items-grid.view-cards.size-large{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}
.items-grid.view-cards.size-small .card-body{padding:11px}
.items-grid.view-cards.size-small .media-area{aspect-ratio:16/11}
.items-grid.view-cards.size-large .card-title{font-size:14px}

.toolbar-meta{flex-wrap:wrap;justify-content:flex-end}
.segmented-control{height:36px;display:inline-flex;align-items:center;padding:3px;border:1px solid var(--line);border-radius:10px;background:#15151a}
.segmented-control button{min-width:34px;height:28px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:#8e8e98;font-size:10px;font-weight:800;cursor:pointer;padding:0 8px}
.segmented-control button svg{width:15px;height:15px}
.segmented-control button.active{background:#292930;color:var(--orange);box-shadow:0 1px 4px rgba(0,0,0,.25)}
.segmented-control.disabled{opacity:.38;pointer-events:none}
.size-switch button{min-width:29px;padding:0 7px}

.audio-media{cursor:pointer;background:radial-gradient(circle at 50% 20%,rgba(255,122,0,.2),transparent 48%),#0d0d11}
.audio-visual{width:100%;height:100%;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:45px 16px 18px}
.music-mark{width:66px;height:66px;display:grid;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(145deg,var(--orange),#ff9d2e);box-shadow:0 16px 38px rgba(255,122,0,.22)}
.music-mark svg{width:31px;height:31px;stroke-width:2}
.music-mark.large{width:104px;height:104px}
.music-mark.large svg{width:48px;height:48px}
.audio-title{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;color:#d7d7dc;font-size:11px;font-weight:700}
.detail-audio{width:min(620px,100%);display:grid;justify-items:center;gap:18px;padding:38px 26px;border:1px solid var(--line);border-radius:20px;background:radial-gradient(circle at 50% 15%,rgba(255,122,0,.18),transparent 45%),#111115}
.detail-audio b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px}

.items-grid.view-list{display:flex;flex-direction:column;gap:5px}
.list-row{min-width:0;height:54px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid transparent;border-bottom-color:#25252c;background:#101014;transition:.14s}
.list-row:hover{border-color:#34343d;border-radius:10px;background:#15151a}
.list-row-main{min-width:0;height:100%;display:grid;grid-template-columns:32px minmax(150px,1fr) 68px minmax(80px,130px) 74px 100px;align-items:center;gap:10px;padding:0 10px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.list-type-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--orange-soft);color:var(--orange)}
.list-type-icon svg{width:15px;height:15px}
.list-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.list-kind,.list-sender,.list-size,.list-date{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#85858e;font-size:10px}
.list-kind{color:#b0b0b8;font-weight:800;letter-spacing:.5px}
.list-actions{display:flex;align-items:center;gap:4px;padding-right:8px;opacity:.22;transition:.14s}
.list-row:hover .list-actions,.list-row:focus-within .list-actions{opacity:1}
.list-icon-action{height:29px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #303038;border-radius:7px;padding:0 7px;background:#1a1a20;color:#d9d9dd;text-decoration:none;font-size:9px;font-weight:750;cursor:pointer;white-space:nowrap}
.list-icon-action svg{display:none}
.list-icon-action.danger-action{color:#ff7c85}
.list-icon-action.copy-action{color:var(--orange)}
.view-list .empty-state{width:100%}

@media(max-width:1000px){
  .list-row-main{grid-template-columns:32px minmax(140px,1fr) 58px minmax(70px,110px) 68px 86px}
  .list-actions{opacity:1}
}
@media(max-width:760px){
  .main-content{padding-bottom:10px}
  .page-head{margin-bottom:14px}
  .drop-zone{min-height:78px}
  .library{margin-top:14px}
  .library-toolbar{gap:10px}
  .toolbar-meta{justify-content:flex-start}
  .items-scroll{padding-top:12px;padding-bottom:30px}
  .items-grid.view-cards.size-small,.items-grid.view-cards.size-medium,.items-grid.view-cards.size-large{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
  .list-row-main{grid-template-columns:30px minmax(120px,1fr) 58px 74px;padding-left:7px;gap:7px}
  .list-sender,.list-size{display:none}
  .list-actions{padding-right:5px}
  .list-icon-action{padding:0 6px}
}
@media(max-width:520px){
  .page-head p{display:none}
  .drop-zone{display:none}
  .toolbar-meta{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;justify-content:flex-start}
  .toolbar-meta>span{flex:0 0 auto}
  .items-grid.view-cards.size-small,.items-grid.view-cards.size-medium,.items-grid.view-cards.size-large{grid-template-columns:1fr}
  .list-row{height:50px}
  .list-row-main{grid-template-columns:28px minmax(90px,1fr) 70px}
  .list-kind,.list-sender,.list-size{display:none}
  .list-actions{gap:2px}
  .list-icon-action{font-size:0;width:28px;padding:0}
  .list-icon-action::first-letter{font-size:0}
  .list-icon-action[title="表示"]::after{content:"↗";font-size:12px}
  .list-icon-action[title="端末へ保存"]::after{content:"↓";font-size:13px}
  .list-icon-action[title="ゴミ箱へ移動"]::after{content:"×";font-size:13px}
  .list-icon-action[title="コピー"]::after{content:"⧉";font-size:12px}
}
@media(max-width:520px){
  .list-icon-action[title="サイトを開く"]::after{content:"↗";font-size:12px}
  .list-icon-action[title="復元"]::after{content:"↶";font-size:13px}
  .list-icon-action[title="完全削除"]::after{content:"×";font-size:13px}
}

/* Tess Cloud 5.5: audio and permission polish */
.audio-media .music-mark,.audio-media .audio-title{pointer-events:none}
.card-actions:empty,.list-actions:empty{display:none}


/* Tess Cloud 5.8: 共通音楽プレイヤー・音量・固定動画コントロール */
.shared-audio-engine{position:fixed!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;left:-9999px!important}
.shared-audio-controls{position:relative;z-index:5;width:min(100%,340px);display:grid;grid-template-columns:40px minmax(80px,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:rgba(12,12,16,.9);box-shadow:0 8px 24px rgba(0,0,0,.22);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.audio-toggle,.audio-mute{display:grid;place-items:center;border:0;cursor:pointer;color:#fff}
.audio-toggle{width:38px;height:38px;border-radius:50%;background:var(--orange);color:#15100a;box-shadow:0 5px 16px rgba(255,122,0,.28)}
.audio-toggle:hover{filter:brightness(1.08)}
.audio-toggle svg{width:17px;height:17px;fill:currentColor;stroke:none}
.audio-main-controls{min-width:0;display:grid;gap:5px}
.audio-progress{width:100%;height:4px;accent-color:var(--orange);cursor:pointer}
.audio-time{color:#aaaab2;font-size:9px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.audio-volume-controls{display:flex;align-items:center;gap:5px}
.audio-mute{width:28px;height:28px;border-radius:8px;background:transparent;color:#bdbdc5}
.audio-mute:hover,.audio-mute.muted{background:#23232a;color:var(--orange)}
.audio-mute svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.audio-volume{width:58px;height:4px;accent-color:var(--orange);cursor:pointer}
.detail-audio-controls{width:min(560px,100%);grid-template-columns:46px minmax(140px,1fr) auto;padding:13px 15px;border-radius:16px}
.detail-audio-controls .audio-toggle{width:44px;height:44px}
.detail-audio-controls .audio-volume{width:90px}

.detail-video-player{width:100%;height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;background:#050507}
.detail-video-stage{min-height:0;overflow:hidden;display:grid;place-items:center;padding:8px 12px;background:#050507}
.detail-video{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;cursor:pointer}
.video-control-bar{position:sticky;bottom:0;z-index:8;display:grid;grid-template-columns:auto auto minmax(90px,1fr) auto auto minmax(55px,90px) auto;align-items:center;gap:9px;width:100%;padding:12px 14px;border-top:1px solid rgba(255,255,255,.12);background:rgba(16,16,21,.96);box-shadow:0 -10px 28px rgba(0,0,0,.32);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.video-icon-button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:var(--orange);color:#171009;cursor:pointer}
.video-icon-button.secondary{width:32px;height:32px;border-radius:9px;background:#25252c;color:#dedee3}
.video-icon-button:hover{filter:brightness(1.08)}
.video-icon-button svg{width:18px;height:18px;fill:currentColor;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.video-icon-button.secondary svg{fill:none}
.video-progress,.video-volume{width:100%;accent-color:var(--orange);cursor:pointer}
.video-time{font-size:10px;color:#b1b1b8;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:700px){.audio-volume{width:44px}.video-control-bar{grid-template-columns:auto minmax(70px,1fr) auto auto;gap:7px}.video-control-bar .video-time:first-of-type,.video-volume,.video-control-bar .video-time:nth-of-type(2){display:none}}
@media(max-width:560px){.shared-audio-controls{width:100%;grid-template-columns:38px minmax(70px,1fr) auto;gap:7px;padding:8px}.audio-volume{width:36px}.detail-audio-controls{grid-template-columns:42px minmax(80px,1fr) auto}.detail-audio-controls .audio-volume{width:48px}}

/* 5.7 video detail keeps the transport bar visible */
.detail-display:has(.detail-video-player){padding:0;overflow:hidden;place-items:stretch}


/* Tess Cloud 5.8: 20件ページング */
.pagination{flex:0 0 auto;min-height:56px;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 8px 0;border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(11,11,13,0),var(--bg) 28%)}
.pager-pages{display:flex;align-items:center;gap:5px}
.pager-page,.pager-arrow{height:34px;min-width:34px;border:1px solid var(--line);border-radius:10px;background:#17171c;color:#c8c8ce;font-weight:800;cursor:pointer}
.pager-arrow{font-size:22px;line-height:1;padding-bottom:2px}
.pager-page:hover,.pager-arrow:hover:not(:disabled){border-color:#4a4a54;background:#202026}
.pager-page.active{border-color:rgba(255,122,0,.48);background:var(--orange-soft);color:var(--orange)}
.pager-arrow:disabled{opacity:.3;cursor:default}
.pager-ellipsis{width:24px;text-align:center;color:#777780}
.pager-status{margin:0 5px;color:#8f8f98;font-size:10px;white-space:nowrap}

/* 全画面でも独自の動画操作バーを含めて表示する */
.detail-video-player:fullscreen,.detail-video-player:-webkit-full-screen{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;display:grid!important;grid-template-rows:minmax(0,1fr) auto!important;background:#000!important}
.detail-video-player:fullscreen .detail-video-stage,.detail-video-player:-webkit-full-screen .detail-video-stage{min-height:0!important;padding:0!important;overflow:hidden!important;background:#000!important}
.detail-video-player:fullscreen .detail-video,.detail-video-player:-webkit-full-screen .detail-video{max-width:100vw!important;max-height:100%!important;width:auto!important;height:auto!important;object-fit:contain!important}
.detail-video-player:fullscreen .video-control-bar,.detail-video-player:-webkit-full-screen .video-control-bar{position:relative!important;bottom:auto!important;z-index:2147483647!important;padding-bottom:max(12px,env(safe-area-inset-bottom))!important;background:rgba(10,10,13,.97)!important}
@media(max-width:620px){.pagination{gap:5px}.pager-pages{gap:3px}.pager-page,.pager-arrow{height:32px;min-width:32px}.pager-status{display:none}.pager-ellipsis{width:15px}}

/* Tess Cloud 5.9: left navigation, responsive workspace, upload titles */
.app{height:100vh;min-height:0;display:grid;grid-template-columns:238px minmax(0,1fr);overflow:hidden;background:var(--bg)}
.sidebar{position:relative;z-index:70;min-width:0;height:100vh;display:flex;flex-direction:column;padding:18px 14px 14px;border-right:1px solid var(--line);background:#101014}
.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 6px 18px}
.sidebar-brand{min-width:0;display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none}
.sidebar-brand img{width:42px;height:42px;border-radius:12px;object-fit:cover;box-shadow:0 8px 24px rgba(255,122,0,.15)}
.sidebar-brand div{min-width:0;display:flex;flex-direction:column;gap:2px}.sidebar-brand b{font-size:15px;white-space:nowrap}.sidebar-brand span{font-size:8px;letter-spacing:1.7px;color:#85858e}
.sidebar-close,.mobile-menu-button{display:none;border:0;background:transparent;color:#d8d8dd;cursor:pointer}
.sidebar-menu{display:flex;flex-direction:column;gap:4px}
.sidebar-menu button{width:100%;height:43px;display:flex;align-items:center;gap:12px;padding:0 13px;border:1px solid transparent;border-radius:11px;background:transparent;color:#b2b2ba;font-size:13px;font-weight:750;text-align:left;cursor:pointer;transition:.14s}
.sidebar-menu button svg{width:19px;height:19px;color:#e1e1e5;stroke-width:1.75;flex:0 0 auto}
.sidebar-menu button:hover{background:#18181d;color:#fff}.sidebar-menu button.active{border-color:rgba(255,122,0,.22);background:var(--orange-soft);color:var(--orange)}
.sidebar-menu button.active svg{color:#fff}
.sidebar-bottom{margin-top:auto;display:grid;gap:7px;padding-top:14px;border-top:1px solid #25252b}
.sidebar-status,.sidebar-account{width:100%;min-width:0;min-height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid transparent;border-radius:13px;background:transparent;color:inherit;text-align:left;cursor:pointer}
.sidebar-status:hover,.sidebar-account:hover{border-color:#303038;background:#17171c}
.sidebar-status>div,.sidebar-account>div{min-width:0;display:flex;flex-direction:column;gap:4px}.sidebar-status small,.sidebar-account small{color:#777781;font-size:9px;letter-spacing:.7px}.sidebar-status b,.sidebar-account b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.sidebar-status>svg,.sidebar-account>svg{width:15px;color:#707079}
.app-workspace{min-width:0;height:100vh;display:flex;flex-direction:column;overflow:hidden}
.app-header{position:relative;top:auto;z-index:45;flex:0 0 72px;height:72px;display:grid;grid-template-columns:42px minmax(280px,720px) 42px;justify-content:center;align-items:center;gap:16px;padding:0 28px;border-bottom:1px solid var(--line);background:rgba(11,11,13,.92);backdrop-filter:blur(18px)}
.search-box{width:100%;height:45px;border-radius:14px;background:#131317}.search-box:focus-within{border-color:rgba(255,122,0,.55);box-shadow:0 0 0 3px rgba(255,122,0,.08)}
.header-spacer{display:block;width:42px}
.main-content{max-width:none;margin:0;width:100%;padding:30px 30px 18px}
.library-current{min-width:0;display:flex;align-items:center;gap:9px}.library-current>span:first-child{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--orange-soft);color:var(--orange)}.library-current svg{width:16px;height:16px}.library-current b{font-size:13px}.library-current #itemCount{color:#85858e;font-size:11px}
.library-toolbar{min-height:50px;padding-bottom:12px}
.sidebar-backdrop{display:none}
.mobile-drop-copy{display:none}
.drop-zone{cursor:pointer}.drop-zone:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.upload-dialog{width:min(680px,calc(100vw - 26px));max-height:min(780px,calc(100vh - 30px));overflow:auto}
.upload-file-list{display:grid;gap:9px;max-height:430px;overflow:auto;padding:2px 4px 2px 0;margin:14px 0 18px}
.upload-file-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:13px;background:#15151a}
.upload-file-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:var(--orange-soft);color:var(--orange)}.upload-file-icon svg{width:20px;height:20px}
.upload-file-copy{min-width:0;display:grid;gap:7px}.upload-file-copy>span{display:flex;gap:8px;color:#96969f;font-size:10px}.upload-file-copy>span b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d6d6db;font-weight:700}.upload-file-copy input{width:100%;height:37px;border:1px solid #303038;border-radius:9px;background:#101014;color:#fff;padding:0 10px;outline:0}.upload-file-copy input:focus{border-color:var(--orange)}
.rename-action{color:#d9d9de}.rename-action svg{width:14px;height:14px}.detail-top-actions .rename-action{display:inline-flex;align-items:center;gap:6px}
.card-title-line{display:flex;align-items:center;gap:7px;min-width:0}.card-title-line .card-title{flex:1;min-width:0}.title-edit-mini{width:27px;height:27px;display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:8px;background:transparent;color:#73737c;cursor:pointer}.title-edit-mini:hover{background:#222229;color:var(--orange)}.title-edit-mini svg{width:14px;height:14px}
@media(max-width:1050px){
  .app{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding-left:10px;padding-right:10px}.main-content{padding-left:22px;padding-right:22px}.page-head{align-items:flex-start}.page-head p{max-width:520px}
}
@media(max-width:800px){
  .app{display:block}.app-workspace{height:100vh}
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(284px,86vw);height:100dvh;transform:translateX(-105%);transition:transform .2s ease;box-shadow:28px 0 70px rgba(0,0,0,.48)}
  body.sidebar-open .sidebar{transform:translateX(0)}
  .sidebar-backdrop{position:fixed;inset:0;z-index:65;display:block;background:rgba(0,0,0,.56);opacity:0;pointer-events:none;transition:.2s}
  body.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}
  .sidebar-close{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;font-size:25px}.sidebar-close:hover{background:#222229}
  .mobile-menu-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:#15151a}.mobile-menu-button svg{width:20px;height:20px}
  .app-header{grid-template-columns:42px minmax(0,1fr) 42px;padding:0 16px;gap:10px}
  .main-content{padding:22px 16px 12px}.page-head{gap:16px}.page-head h1{font-size:30px}.main-actions{width:100%;justify-content:flex-start}.main-actions .button{flex:1;min-width:118px}
  .library-toolbar{align-items:center;flex-direction:row}.toolbar-meta{width:auto;max-width:70%;overflow-x:auto;justify-content:flex-end}
}
@media(max-width:600px){
  .app-header{height:64px;flex-basis:64px;padding:0 12px}.header-spacer{width:42px}.search-box{height:42px}
  .main-content{padding:16px 12px 8px}.page-head{margin-bottom:13px}.page-head>div:first-child{width:100%}.page-head p{display:none}.page-kicker{font-size:8px}.page-head h1{font-size:27px;margin-top:3px}
  .main-actions{gap:7px}.main-actions .button{height:40px;min-width:0;padding:0 10px;font-size:11px}.main-actions .button svg{width:16px;height:16px}
  .drop-zone{min-height:76px;padding:12px 14px;justify-content:flex-start}.desktop-drop-copy{display:none!important}.mobile-drop-copy{display:flex}.drop-zone .drop-icon{width:42px;height:42px}.drop-zone b{font-size:13px}.drop-zone span{font-size:10px}
  .library{margin-top:12px}.library-toolbar{min-height:46px;gap:8px;padding-bottom:8px}.library-current>span:first-child{width:28px;height:28px}.library-current b{font-size:12px}.toolbar-meta{max-width:62%;gap:7px}.toolbar-meta select{max-width:96px}.size-switch{display:none!important}
  .items-scroll{padding-right:0}.pagination{padding-left:0;padding-right:0}
  .upload-dialog{width:calc(100vw - 18px);max-height:calc(100dvh - 18px)}.upload-file-list{max-height:48dvh}.upload-file-row{grid-template-columns:36px minmax(0,1fr);padding:9px}.upload-file-icon{width:36px;height:36px}
}
@media(max-width:390px){
  .main-actions .button{font-size:0}.main-actions .button svg{width:19px;height:19px}.main-actions .button::after{font-size:10px}.main-actions #textButton::after{content:'テキスト'}.main-actions #urlButton::after{content:'URL'}.main-actions #pickButton::after{content:'追加'}
  .library-current #itemCount{display:none}.toolbar-meta{max-width:68%}.segmented-control button{min-width:33px}
}
@media(max-width:520px){.drop-zone{display:flex!important}}


/* Tess Cloud 5.10: 検索欄とドロップエリアの修正 */
.app-header > .mobile-menu-button{grid-column:1}
.app-header > .search-box{grid-column:2;min-width:0;width:min(100%,920px);justify-self:center}
.app-header > .header-spacer{grid-column:3}
.search-box svg{width:19px;height:19px;flex:0 0 auto}
.search-box input{min-width:0;height:100%;font-size:14px;line-height:1}
.search-box input::-webkit-search-cancel-button{cursor:pointer}
.drop-zone{min-height:132px;padding:22px 24px}
.drop-zone .drop-copy{display:block;text-align:left}
.drop-zone .drop-copy b{display:block;font-size:15px;line-height:1.55}
.drop-label-mobile{display:none!important}
@media(max-width:800px){
  .app-header > .mobile-menu-button{grid-column:1}
  .app-header > .search-box{grid-column:2;width:100%}
  .app-header > .header-spacer{grid-column:3}
}
@media(max-width:600px){
  .drop-zone{min-height:94px;padding:16px 15px}
  .drop-label-desktop{display:none!important}
  .drop-label-mobile{display:block!important}
  .drop-zone .drop-copy b{font-size:13px}
}


/* Tess Cloud 5.11: 任意ファイル・フォルダ対応 */
.folder-media{cursor:pointer;background:radial-gradient(circle at 50% 20%,rgba(255,123,0,.18),transparent 58%),#101014}
.folder-visual{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;color:#f4f4f5;text-align:center}
.folder-visual svg{width:76px;height:76px;fill:rgba(255,123,0,.18);stroke:#ff7a00;stroke-width:1.7;filter:drop-shadow(0 10px 26px rgba(255,112,0,.18))}
.folder-visual b{max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.folder-visual span{font-size:11px;color:#9a9aa3}
.file-symbol.folder{background:rgba(255,122,0,.14);color:#ff8a1d;border-color:rgba(255,122,0,.35)}
.detail-folder{width:min(920px,100%);height:min(65vh,680px);display:flex;flex-direction:column;gap:12px}
.detail-folder-summary{display:flex;gap:18px;align-items:center;padding:12px 14px;border:1px solid #2b2b32;border-radius:12px;background:#141419;color:#c8c8ce;font-size:12px}
.folder-entry-list{min-height:0;overflow:auto;border:1px solid #28282f;border-radius:13px;background:#101014}
.folder-entry{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #202027}
.folder-entry:last-child{border-bottom:0}
.folder-entry>span{width:28px;height:28px;display:grid;place-items:center;color:#b9b9c0}
.folder-entry.is-folder>span{color:#ff8618}
.folder-entry svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.folder-entry.is-folder svg{fill:rgba(255,122,0,.13)}
.folder-entry b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650}
.folder-entry em{font-style:normal;color:#8d8d97;font-size:11px}
.folder-empty{padding:40px;text-align:center;color:#8d8d97}
@media(max-width:760px){#folderButton{display:flex}.detail-folder{height:58vh}.folder-entry{grid-template-columns:30px minmax(0,1fr)}.folder-entry em{display:none}}

/* Tess Cloud 6.0: cloud features */
.notification-button{position:relative;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:#15151a;color:#d9d9df;cursor:pointer}.notification-button:hover{border-color:#3a3a43;color:#fff}.notification-button svg{width:20px;height:20px}.notification-badge{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border:2px solid #0b0b0d;border-radius:10px;background:var(--orange);color:#fff;font-size:9px;font-weight:900}.favorite-button{position:absolute;z-index:4;right:10px;top:10px;width:31px;height:31px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:rgba(10,10,12,.72);color:#c2c2c9;backdrop-filter:blur(10px);cursor:pointer}.favorite-button.active{color:#ff951f;background:rgba(76,38,8,.86);border-color:rgba(255,122,0,.34)}.favorite-button svg{width:17px;height:17px}.data-card{position:relative}.list-favorite{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#73737c;cursor:pointer}.list-favorite.active{color:#ff951f}.list-favorite svg{width:17px;height:17px}.panel-dialog{width:min(680px,calc(100vw - 28px));max-height:min(760px,calc(100vh - 28px));overflow:auto}.panel-actions{display:flex;justify-content:flex-end;margin:-4px 0 12px}.notification-list,.activity-list{display:grid;gap:8px}.notification-row,.activity-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#141419}.notification-row.unread{border-color:rgba(255,122,0,.35);background:rgba(255,122,0,.055)}.notification-dot{width:9px;height:9px;margin-top:6px;border-radius:50%;background:#555}.notification-row.unread .notification-dot{background:var(--orange);box-shadow:0 0 0 4px rgba(255,122,0,.12)}.notification-row b,.activity-row b{font-size:12px}.notification-row p,.activity-row p{margin:5px 0;color:#a4a4ad;font-size:11px;line-height:1.5}.notification-row time,.activity-row time{color:#6f6f79;font-size:9px}.admin-tools{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.admin-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.admin-tool-button{min-height:78px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#15151a;color:#fff;text-align:left;cursor:pointer}.admin-tool-button:hover{border-color:#3a3a43;background:#19191f}.admin-tool-button b{font-size:12px}.admin-tool-button span{color:#8b8b95;font-size:10px;line-height:1.4}.detail-extra{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:16px;padding:16px 0 4px}.detail-panel{border:1px solid var(--line);border-radius:15px;background:#131318;padding:14px}.detail-panel h3{margin:0 0 12px;font-size:13px}.detail-quick-actions{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.detail-quick-actions button,.detail-quick-actions a{height:35px;display:inline-flex;align-items:center;gap:6px;padding:0 11px;border:1px solid #303038;border-radius:9px;background:#1a1a20;color:#ddd;text-decoration:none;font-size:10px;font-weight:750;cursor:pointer}.detail-quick-actions button.active{border-color:rgba(255,122,0,.5);color:var(--orange);background:var(--orange-soft)}.reaction-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.reaction-button{height:32px;padding:0 9px;border:1px solid #303038;border-radius:16px;background:#17171c;color:#ddd;cursor:pointer}.reaction-button.active{border-color:rgba(255,122,0,.45);background:var(--orange-soft)}.comment-list{display:grid;gap:8px;max-height:240px;overflow:auto}.comment-row{padding:10px;border-radius:11px;background:#0f0f13;border:1px solid #292930}.comment-row header{display:flex;justify-content:space-between;gap:8px}.comment-row header b{font-size:10px}.comment-row header span{color:#666;font-size:9px}.comment-row p{margin:6px 0 0;color:#d8d8dd;font-size:11px;line-height:1.55;white-space:pre-wrap}.comment-row button{float:right;border:0;background:transparent;color:#d96b72;font-size:9px;cursor:pointer}.comment-form{display:flex;gap:7px;margin-top:10px}.comment-form input{flex:1;min-width:0;height:37px;border:1px solid #303038;border-radius:9px;background:#0f0f13;color:#fff;padding:0 10px}.comment-form button{height:37px}.version-list,.share-link-list{display:grid;gap:7px;max-height:200px;overflow:auto}.version-row,.share-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px;border:1px solid #2b2b32;border-radius:10px;background:#0f0f13}.version-row b,.share-link-row b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.version-row span,.share-link-row span{color:#74747e;font-size:9px}.version-row-actions,.share-link-row-actions{display:flex;gap:5px}.version-row-actions a,.version-row-actions button,.share-link-row-actions button{height:29px;padding:0 8px;border:1px solid #303038;border-radius:8px;background:#19191f;color:#ddd;text-decoration:none;font-size:9px;cursor:pointer}.share-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.share-create-grid input,.share-create-grid select{height:37px;border:1px solid #303038;border-radius:9px;background:#0f0f13;color:#fff;padding:0 9px}.offline-badge{display:inline-flex;align-items:center;gap:5px;color:#69d49b;font-size:9px}.offline-empty{padding:50px 16px;text-align:center;color:#777}.backup-state-success{color:#5ed693}.backup-state-failed{color:#ff737c}.backup-state-running{color:#ffae4f}.upload-resume-note{color:#8b8b95;font-size:9px;margin-top:4px}.detail-replace-input{display:none}.cloud-feature-note{margin-top:8px;color:#777;font-size:9px}.offline-mode-banner{display:none;padding:8px 14px;background:#57360c;color:#ffd7a9;font-size:11px;text-align:center}.offline-mode .offline-mode-banner{display:block}.offline-mode .app-header{top:0}.notification-button .hidden{display:none}
@media(max-width:900px){.detail-extra{grid-template-columns:1fr}.admin-tool-grid{grid-template-columns:1fr}.share-create-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.notification-button{width:42px;height:42px}.detail-extra{padding-top:10px}.detail-panel{padding:12px}.share-create-grid{grid-template-columns:1fr}.comment-form{flex-direction:column}.comment-form button{width:100%}}

/* Tess Cloud 6.1: share-link copy */
.share-copy-help{margin:2px 0 10px;color:#8f8f99;font-size:10px;line-height:1.5}
.share-link-info{min-width:0;display:grid;gap:4px}
.share-link-info code{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#cfcfd5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}
.share-link-info em{color:#c18b57;font-size:9px;font-style:normal;line-height:1.45}
.share-link-row-actions .share-copy-button{border-color:rgba(255,122,0,.42);background:rgba(255,122,0,.11);color:#ff9a3c;font-weight:800}
.share-link-row-actions button.copied{border-color:rgba(68,201,126,.45);background:rgba(68,201,126,.12);color:#69d49b}
@media(max-width:600px){.share-link-row{grid-template-columns:1fr}.share-link-row-actions{flex-wrap:wrap}.share-link-row-actions button{flex:1;min-width:110px}}

/* Tess Cloud 7.0: shared-link result */
.new-share-link-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:10px 0;padding:11px;border:1px solid rgba(255,122,0,.42);border-radius:11px;background:rgba(255,122,0,.08)}
.new-share-link-result.hidden{display:none}
.new-share-link-result b{grid-column:1/-1;color:#ff9a3c;font-size:11px}
.new-share-link-result code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e2e2e7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}
.new-share-link-result .share-copy-button{height:33px;padding:0 11px;border:1px solid rgba(255,122,0,.45);border-radius:9px;background:rgba(255,122,0,.14);color:#ff9a3c;font-size:10px;font-weight:800;cursor:pointer}
.new-share-link-result .share-copy-button.copied{border-color:rgba(68,201,126,.45);background:rgba(68,201,126,.12);color:#69d49b}
@media(max-width:600px){.new-share-link-result{grid-template-columns:1fr}.new-share-link-result .share-copy-button{width:100%}}


/* Tess Cloud 7.1: account modal layout and reliable backup settings */
.settings-dialog{
  width:min(680px,calc(100vw - 24px));
  max-width:calc(100vw - 24px);
  overflow-x:hidden;
  overscroll-behavior:contain;
}
.settings-dialog .sticky-head{
  width:100%;
}
.settings-dialog .profile-section,
.settings-dialog .settings-form,
.settings-dialog .admin-section,
.settings-dialog .admin-tools,
.settings-dialog .settings-bottom{
  width:100%;
  min-width:0;
  padding-left:22px;
  padding-right:22px;
}
.settings-dialog .admin-tools{
  margin:0;
  padding-top:22px;
  padding-bottom:22px;
  border-top:1px solid var(--line);
}
.settings-dialog .admin-tool-grid{
  width:100%;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}
.settings-dialog .admin-tool-button{
  width:100%;
  min-width:0;
  overflow:hidden;
}
.settings-dialog .admin-tool-button b,
.settings-dialog .admin-tool-button span{
  max-width:100%;
  overflow-wrap:anywhere;
}
.settings-dialog .section-title,
.settings-dialog .account-row,
.settings-dialog .account-row-info{
  min-width:0;
}
.settings-dialog .settings-bottom{
  position:sticky;
  bottom:0;
  z-index:2;
  background:rgba(20,20,25,.97);
  backdrop-filter:blur(10px);
}
.backup-dialog{width:min(560px,calc(100vw - 24px))}
.backup-path-hint{margin-top:-8px}
.backup-detail{
  min-height:42px;
  display:flex;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#101014;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
  overflow-wrap:anywhere;
}
.backup-save-message{
  min-height:20px;
  margin-top:9px;
  color:#69d49b;
  font-size:11px;
  font-weight:750;
}
.backup-save-message.error{color:#ff858e}
.backup-dialog-actions{align-items:center;flex-wrap:wrap}
.backup-dialog-actions .button{min-width:150px}
.backup-dialog-actions .button[disabled]{opacity:.55;cursor:wait;transform:none}
@media(max-width:620px){
  .settings-dialog{width:calc(100vw - 12px);max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px);border-radius:16px}
  .settings-dialog .profile-section,
  .settings-dialog .settings-form,
  .settings-dialog .admin-section,
  .settings-dialog .admin-tools,
  .settings-dialog .settings-bottom{padding-left:16px;padding-right:16px}
  .settings-dialog .admin-tool-grid{grid-template-columns:1fr}
  .settings-dialog .account-row{align-items:flex-start;flex-wrap:wrap}
  .settings-dialog .account-row-actions{width:100%;justify-content:flex-end}
  .backup-dialog-actions{display:grid;grid-template-columns:1fr}
  .backup-dialog-actions .button{width:100%;min-width:0}
}

/* Tess Cloud 8.0: installable web app */
.app-install-section{padding:22px 20px;border-top:1px solid var(--line,#29292f)}
.install-app-button{width:100%;text-align:left}
.install-guide{display:grid;gap:14px;line-height:1.7;color:var(--muted,#aaa)}
.install-guide strong{color:var(--text,#fff)}
.install-guide .install-step{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line,#29292f);border-radius:14px;background:rgba(255,255,255,.025)}
.install-guide .step-number{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#ff7900;color:#fff;font-weight:800}
@media(max-width:700px){.app-install-section{padding:18px 14px}.install-dialog{width:min(92vw,520px)}}

/* Tess Cloud 8.3: iPhone専用レイアウト。デスクトップには一切影響しない */
.mobile-bottom-nav{display:none}
@media (max-width:767px){
  :root{--mobile-header:58px;--mobile-nav:66px}
  html,body{width:100%;height:100%;min-height:0;overflow:hidden;background:#09090b}
  body{overscroll-behavior:none;-webkit-text-size-adjust:100%}
  .app{width:100%;height:100dvh;min-height:0;display:block;overflow:hidden}
  .app-workspace{width:100%;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:calc(var(--mobile-nav) + env(safe-area-inset-bottom))}

  .app-header{
    position:relative;z-index:45;top:auto;
    flex:0 0 calc(var(--mobile-header) + env(safe-area-inset-top));
    height:calc(var(--mobile-header) + env(safe-area-inset-top));
    display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:end;gap:9px;
    padding:env(safe-area-inset-top) 12px 8px;
    border-bottom:1px solid #222228;background:rgba(10,10,12,.97);backdrop-filter:blur(20px)
  }
  .mobile-menu-button,.notification-button{width:42px;height:42px;border-radius:13px;background:#15151a}
  .search-box{grid-column:2!important;width:100%!important;height:42px;padding:0 12px;border-radius:13px;background:#15151a}
  .search-box input{font-size:16px}

  .main-content{
    width:100%;max-width:none;margin:0;padding:12px 12px 0;
    flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden
  }
  .page-head{flex:0 0 auto;display:block;margin:0 0 10px;min-width:0}
  .page-head>div:first-child{width:100%;min-width:0}
  .page-kicker{font-size:8px;letter-spacing:1.45px}
  .page-head h1{margin:3px 0 0;font-size:24px;line-height:1.05;letter-spacing:-.7px}
  .page-head p{display:none}
  .main-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
  .main-actions .button{width:100%;height:43px;min-width:0;padding:0 10px;border-radius:12px;font-size:12px;box-shadow:none}
  .main-actions .button svg{width:17px;height:17px}
  .main-actions #pickButton{grid-column:1/-1;height:46px;font-size:13px}

  .drop-zone{flex:0 0 auto;min-height:74px;margin:0;padding:13px 15px;justify-content:flex-start;gap:12px;border-radius:15px;background:#101014}
  .drop-zone .drop-icon{width:42px;height:42px;flex:0 0 auto;border-radius:12px}
  .drop-zone .drop-copy{min-width:0}
  .drop-zone .drop-copy b{font-size:13px;line-height:1.35}
  .desktop-drop-copy,.drop-label-desktop{display:none!important}
  .mobile-drop-copy{display:flex!important}
  .drop-label-mobile{display:block!important}

  .progress-area{flex:0 0 auto;max-height:132px;overflow:auto;margin:8px 0 0}
  .library{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin-top:10px}
  .library-toolbar{flex:0 0 auto;min-height:45px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:0 0 8px}
  .library-current{min-width:0;gap:7px}
  .library-current>span:first-child{width:28px;height:28px;border-radius:9px}
  .library-current b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .library-current #itemCount{font-size:10px;white-space:nowrap}
  .toolbar-meta{width:auto;max-width:61%;display:flex;justify-content:flex-end;gap:6px;overflow:visible}
  .toolbar-meta select{height:34px;max-width:98px;padding:0 7px;font-size:11px}
  .segmented-control{height:34px}
  .segmented-control button{min-width:34px;height:32px}
  .size-switch{display:none!important}

  .items-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:10px 0 92px;scrollbar-width:none}
  .items-scroll::-webkit-scrollbar{display:none}
  .items-grid,.items-grid.view-cards{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:12px;padding:0}
  .data-card{width:100%;border-radius:16px;transform:none!important;box-shadow:none!important}
  .media-area{aspect-ratio:16/10;min-height:176px;max-height:245px}
  .image-media{padding:8px}
  .text-visual{padding:44px 15px 15px;font-size:12px;line-height:1.6}
  .card-body{padding:12px}
  .card-title{font-size:13px}
  .card-meta{margin-top:10px}
  .card-note{margin-top:9px;padding:9px}
  .card-actions{gap:6px;margin-top:10px}
  .card-actions button,.card-actions a{height:34px;min-width:48px;padding:0 9px}
  .card-actions .copy-action{margin-left:0}
  .type-chip{left:10px;top:10px}
  .favorite-button{right:9px;top:9px}

  .items-grid.view-list{gap:5px}
  .list-row{height:58px;border:1px solid #25252c;border-radius:12px;background:#111115}
  .list-row-main{grid-template-columns:30px minmax(0,1fr) 72px!important;gap:8px;padding:0 8px}
  .list-row-type,.list-row-owner,.list-row-date{display:none!important}
  .list-actions{opacity:1;padding-right:6px}
  .list-actions button,.list-actions a{width:30px;height:30px}

  .pagination{flex:0 0 auto;min-height:48px;padding:7px 0 2px;background:#0b0b0d}
  .pager-page,.pager-arrow{height:32px;min-width:32px}
  .pager-status{display:none}

  .mobile-bottom-nav{
    position:fixed;z-index:58;left:0;right:0;bottom:0;
    height:calc(var(--mobile-nav) + env(safe-area-inset-bottom));
    display:grid;grid-template-columns:repeat(5,1fr);align-items:start;
    padding:7px 8px env(safe-area-inset-bottom);
    border-top:1px solid #29292f;background:rgba(15,15,18,.96);backdrop-filter:blur(24px)
  }
  .mobile-bottom-nav button{position:relative;height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-radius:12px;background:transparent;color:#8b8b95;font-size:9px;font-weight:700;cursor:pointer}
  .mobile-bottom-nav button svg{width:21px;height:21px}
  .mobile-bottom-nav button.active{color:var(--orange)}
  .mobile-bottom-nav .mobile-add{width:52px;height:52px;justify-self:center;margin-top:-20px;border-radius:18px;background:linear-gradient(145deg,var(--orange),#ff982d);color:#fff;box-shadow:0 10px 28px rgba(255,122,0,.33)}
  .mobile-bottom-nav .mobile-add span{display:none}
  .mobile-bottom-nav .mobile-add svg{width:24px;height:24px}

  .sidebar{width:min(318px,88vw);height:100dvh;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom));background:#111115}
  .sidebar-menu{overflow-y:auto;padding-bottom:10px}
  .sidebar-menu button{height:45px;font-size:13px}
  .sidebar-bottom{padding-bottom:4px}

  .dialog,.compact-dialog,.settings-dialog,.detail-dialog,.panel-dialog,.upload-dialog,.backup-dialog,.install-dialog{
    width:100vw!important;max-width:none!important;height:100dvh;max-height:100dvh!important;margin:0;border:0;border-radius:0;overflow:auto;padding-bottom:env(safe-area-inset-bottom)
  }
  .dialog::backdrop{background:#09090b}
  .sticky-head{padding-top:calc(16px + env(safe-area-inset-top))!important}
  .detail-shell{height:100dvh;max-height:100dvh;grid-template-rows:auto minmax(0,1fr)}
  .detail-top{padding-top:calc(13px + env(safe-area-inset-top));align-items:center;flex-direction:row}
  .detail-top-actions{width:auto;flex-wrap:nowrap}
  .detail-display{height:auto;min-height:0;padding:8px 8px calc(12px + env(safe-area-inset-bottom));overflow:auto}
  .detail-image,.detail-video{max-width:100%!important;max-height:calc(100dvh - 120px)!important}
  .detail-frame{height:calc(100dvh - 110px)}
  .detail-extra{grid-template-columns:1fr;padding:10px 0 4px}
  .settings-dialog .profile-section,.settings-dialog .settings-form,.settings-dialog .admin-section,.settings-dialog .admin-tools,.settings-dialog .settings-bottom{padding-left:16px;padding-right:16px}
  .admin-tool-grid{grid-template-columns:1fr!important}

  .login-page{min-height:100dvh;padding:calc(22px + env(safe-area-inset-top)) 18px calc(22px + env(safe-area-inset-bottom))}
  .login-card{width:100%;max-width:390px;padding:28px 20px;border-radius:22px}
  .login-logo{width:68px;height:68px}
  .login-card h1{font-size:27px}
  .login-card>p{margin-bottom:22px}

  .toast{bottom:calc(var(--mobile-nav) + env(safe-area-inset-bottom) + 12px);max-width:calc(100vw - 28px);text-align:center}
}
@media (max-width:374px){
  .main-content{padding-left:10px;padding-right:10px}
  .main-actions{gap:6px}
  .main-actions .button{font-size:11px;padding:0 8px}
  .page-head h1{font-size:22px}
  .media-area{min-height:160px}
  .toolbar-meta select{max-width:88px}
}
@media (min-width:430px) and (max-width:767px){
  .main-content{padding-left:16px;padding-right:16px}
  .media-area{max-height:270px}
}
@media (max-width:767px){
  .main-actions .button::after{content:none!important;display:none!important}
}
@media (max-width:359px){
  .main-content{padding-top:9px}
  .page-head{margin-bottom:7px}
  .page-kicker{display:none}
  .page-head h1{font-size:20px}
  .main-actions{margin-top:8px;gap:5px}
  .main-actions .button{height:38px;font-size:10px}
  .main-actions #pickButton{height:41px;font-size:11px}
  .drop-zone{min-height:60px;padding:9px 12px}
  .drop-zone .drop-icon{width:36px;height:36px}
  .drop-zone .drop-copy b{font-size:11px}
  .library{margin-top:6px}
  .library-toolbar{min-height:40px}
}
