:root{--bg:#f4f7fb;--surface:#fff;--surface-2:#f8fafc;--text:#162033;--muted:#718096;--border:#e5eaf1;--primary:#5b5cf0;--primary-2:#7c3aed;--success:#16a36a;--danger:#e44f5f;--shadow:0 18px 50px rgba(29,42,68,.08);--radius:20px;--sidebar:272px}html[data-theme="dark"]{--bg:#0d1220;--surface:#151c2d;--surface-2:#1b2438;--text:#edf2ff;--muted:#9aa7bd;--border:#29344b;--shadow:0 20px 60px rgba(0,0,0,.28)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);line-height:1.5}button,input,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}.no-scroll{overflow:hidden}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--surface);border-right:1px solid var(--border);padding:20px 16px;display:flex;flex-direction:column;z-index:50}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:4px 4px 22px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;text-decoration:none;color:white;font-weight:800;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 10px 24px rgba(91,92,240,.28)}.brand-mark.large{width:52px;height:52px}.brand-copy{display:grid;text-decoration:none;color:var(--text);line-height:1.2}.brand-copy span{font-size:12px;color:var(--muted);margin-top:4px}.sidebar-close{display:none;margin-left:auto}.sidebar-nav{display:grid;gap:6px}.nav-item{min-height:46px;padding:0 13px;border-radius:13px;display:flex;align-items:center;gap:12px;color:var(--muted);text-decoration:none;font-weight:650}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{color:var(--primary);background:rgba(91,92,240,.11)}.nav-item small{margin-left:auto;font-size:10px}.nav-item.is-disabled{opacity:.55;pointer-events:none}.nav-icon{width:24px;text-align:center;font-size:19px}.nav-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:24px 13px 7px}.sidebar-footer{margin-top:auto}.storage-card{padding:15px;border:1px solid var(--border);border-radius:16px;background:var(--surface-2)}.storage-card-head{display:flex;justify-content:space-between;font-size:12px}.storage-progress{height:7px;margin:12px 0;background:var(--border);border-radius:999px;overflow:hidden}.storage-progress span{height:100%;display:block;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:inherit}.storage-card small{color:var(--muted);font-size:10px}.app-main{margin-left:var(--sidebar);min-height:100vh}.topbar{height:78px;position:sticky;top:0;z-index:35;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--border);padding:0 28px;display:flex;justify-content:space-between;align-items:center}.topbar-left,.topbar-actions,.page-header-actions,.toolbar-group{display:flex;align-items:center;gap:12px}.topbar-title{display:grid;line-height:1.15}.eyebrow,.section-kicker{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);font-weight:800}.topbar-title strong{font-size:16px}.icon-button{width:40px;height:40px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);display:inline-grid;place-items:center;text-decoration:none;cursor:pointer}.icon-button:hover{border-color:var(--primary);color:var(--primary)}.mobile-menu{display:none}.global-search,.local-search{height:42px;min-width:330px;padding:0 12px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2);display:flex;align-items:center;gap:9px}.global-search input,.local-search input{border:0;outline:0;background:transparent;color:var(--text);min-width:0;width:100%}.global-search kbd{font-size:10px;color:var(--muted);border:1px solid var(--border);padding:2px 6px;border-radius:6px}.user-menu{position:relative}.user-trigger{border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:10px;padding:6px;border-radius:14px;cursor:pointer}.user-trigger:hover{background:var(--surface-2)}.avatar,.mini-avatar{display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#e9e8ff,#d9e6ff);color:#4d4edb;font-weight:800}.avatar{width:38px;height:38px}.mini-avatar{width:34px;height:34px}.user-copy{display:grid;text-align:left;line-height:1.2}.user-copy small,.person-cell small{color:var(--muted);font-size:11px}.user-dropdown{position:absolute;right:0;top:calc(100% + 10px);width:230px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-7px);transition:.2s}.user-dropdown.is-open{opacity:1;visibility:visible;transform:none}.user-dropdown-head{display:grid;padding:10px;border-bottom:1px solid var(--border)}.user-dropdown-head small{color:var(--muted)}.user-dropdown button{width:100%;border:0;background:transparent;color:var(--text);padding:11px;text-align:left;border-radius:10px;cursor:pointer}.user-dropdown button:hover{background:var(--surface-2)}.page-content{padding:30px;max-width:1600px;margin:auto}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}.page-header h1{font-size:34px;letter-spacing:-.035em;margin:5px 0}.page-header p{margin:0;color:var(--muted)}.button{min-height:42px;padding:0 17px;border-radius:12px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:750;cursor:pointer}.button-primary{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;border-color:transparent;box-shadow:0 10px 24px rgba(91,92,240,.22)}.button-secondary{background:var(--surface);color:var(--text)}.button-small{min-height:34px;padding:0 12px;font-size:12px}.surface-card,.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat-card{padding:20px;display:flex;gap:16px}.stat-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:rgba(91,92,240,.11);color:var(--primary);font-size:23px}.stat-card div{display:grid}.stat-card small,.stat-card span{color:var(--muted)}.stat-card strong{font-size:25px}.section-heading{display:flex;justify-content:space-between;align-items:center;padding:22px 24px 14px}.section-heading h2{margin:2px 0 0;font-size:20px}.count-badge{min-width:34px;height:28px;padding:0 10px;border-radius:999px;background:var(--surface-2);display:grid;place-items:center;color:var(--muted);font-size:12px}.explorer-toolbar{padding:11px 13px;margin-bottom:18px;display:flex;justify-content:space-between}.toolbar-button,.toolbar-select{height:38px;border:0;border-radius:10px;background:transparent;color:var(--muted);padding:0 12px;cursor:pointer}.toolbar-button.active,.toolbar-button:hover{background:var(--surface-2);color:var(--text)}.toolbar-select{border:1px solid var(--border);background:var(--surface)}.local-search{min-width:250px;height:38px}.breadcrumbs{display:flex;gap:8px;font-size:12px;color:var(--muted)}.breadcrumbs a{color:var(--primary);text-decoration:none}.explorer-card{margin-bottom:18px;overflow:hidden}.explorer-grid{padding:8px 24px 24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.explorer-item{position:relative;min-height:160px;padding:17px;border:1px solid var(--border);border-radius:16px;background:var(--surface-2);color:var(--text);text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;transition:.18s}.explorer-item:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--primary) 45%,var(--border));box-shadow:0 16px 34px rgba(38,51,77,.1)}.folder-visual{position:relative;width:88px;height:68px;border-radius:12px 15px 15px 15px;background:linear-gradient(145deg,#ffd36a,#f4ae38);display:grid;place-items:center;color:#9a5b00;font-size:30px}.folder-tab{position:absolute;left:0;top:-8px;width:38px;height:15px;border-radius:8px 8px 0 0;background:#ffd36a}.item-details{display:grid}.item-details small{color:var(--muted)}.item-check{position:absolute;top:12px;right:12px}.item-more{position:absolute;right:14px;bottom:14px;color:var(--muted)}.explorer-grid.list-mode{display:block}.explorer-grid.list-mode .explorer-item{min-height:66px;margin-bottom:8px;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px}.explorer-grid.list-mode .folder-visual{width:48px;height:38px;font-size:18px}.empty-state{grid-column:1/-1;padding:52px 20px;text-align:center}.empty-state.compact{padding:40px}.empty-state h3{margin:8px 0}.empty-state p{color:var(--muted);margin:0 0 18px}.empty-icon{font-size:48px;color:var(--primary)}.file-table-wrap{overflow-x:auto}.modern-table{width:100%;border-collapse:collapse}.modern-table th,.modern-table td{padding:14px 20px;border-top:1px solid var(--border);text-align:left;font-size:13px;white-space:nowrap}.modern-table th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.file-name-cell,.person-cell{display:flex;align-items:center;gap:11px}.file-name-cell div,.person-cell div{display:grid}.file-icon{width:38px;height:42px;border-radius:10px;background:rgba(91,92,240,.1);color:var(--primary);display:grid;place-items:center;font-size:10px;font-weight:900}.table-actions{text-align:right!important}.activity-badge,.status-badge{padding:5px 9px;border-radius:999px;background:var(--surface-2);font-size:11px}.status-badge.is-active{background:rgba(22,163,106,.12);color:var(--success)}.status-badge.is-passive{background:rgba(228,79,95,.12);color:var(--danger)}.toast{position:relative;padding:13px 44px 13px 15px;margin-bottom:16px;border:1px solid;border-radius:14px;display:flex;gap:10px;align-items:center}.toast-success{background:rgba(22,163,106,.1);border-color:rgba(22,163,106,.25);color:var(--success)}.toast-error{background:rgba(228,79,95,.1);border-color:rgba(228,79,95,.25);color:var(--danger)}.toast-close{position:absolute;right:10px;border:0;background:transparent;color:inherit;font-size:20px}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;transition:.2s}.modal.is-open{opacity:1;visibility:visible}.modal-backdrop{position:absolute;inset:0;background:rgba(8,13,25,.58);backdrop-filter:blur(6px)}.modal-dialog{position:relative;width:min(480px,100%);background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.24);transform:translateY(15px) scale(.98);transition:.2s}.modal.is-open .modal-dialog{transform:none}.modal-dialog.wide{width:min(720px,100%)}.modal-head{padding:22px 24px 14px;display:flex;justify-content:space-between;align-items:flex-start}.modal-head h2{margin:3px 0}.modal-form{padding:8px 24px 24px}.modal-form label,.login-card-modern label{display:grid;gap:7px;font-weight:700;font-size:13px}.modal-form input,.modal-form select,.login-card-modern input{width:100%;height:46px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);padding:0 13px;outline:none}.modal-form input:focus,.modal-form select:focus,.login-card-modern input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,92,240,.12)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.folder-color-preview{display:flex;align-items:center;gap:10px;margin-top:14px;color:var(--muted);font-size:12px}.folder-color-preview span{width:28px;height:22px;border-radius:7px;background:#f5bb46}.form-grid-modern{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid-modern .full{grid-column:1/-1}.auth-shell{min-height:100vh}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-showcase{position:relative;overflow:hidden;padding:42px 54px;color:white;background:linear-gradient(145deg,#2b2b72,#5b5cf0 52%,#8247db);display:flex;flex-direction:column}.showcase-brand{display:flex;align-items:center;gap:12px}.showcase-content{max-width:650px;margin:auto 0}.showcase-content h1{font-size:58px;line-height:1.02;letter-spacing:-.05em;margin:14px 0}.showcase-content p{font-size:18px;color:rgba(255,255,255,.8)}.feature-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.feature-pills span{padding:9px 13px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.08)}.showcase-orb{position:absolute;width:460px;height:460px;border-radius:50%;background:rgba(255,255,255,.12);filter:blur(4px);right:-180px;bottom:-180px}.login-panel{display:grid;place-items:center;padding:30px;background:var(--bg)}.login-card-modern{width:min(430px,100%);padding:34px;background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow);display:grid;gap:18px}.login-head h2{font-size:30px;margin:6px 0}.login-head p,.login-security{color:var(--muted)}.login-submit{width:100%;justify-content:space-between}.auth-toast{position:fixed;top:20px;right:20px;z-index:10;background:var(--surface)}.sidebar-overlay{display:none}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.global-search{min-width:220px}.user-copy{display:none}.login-layout{grid-template-columns:1fr}.login-showcase{display:none}}
@media(max-width:820px){:root{--sidebar:280px}.sidebar{transform:translateX(-105%);transition:.25s}.sidebar.is-open{transform:none}.sidebar-close,.mobile-menu{display:grid}.sidebar-overlay{position:fixed;inset:0;background:rgba(7,11,20,.55);z-index:45}.sidebar-overlay.is-visible{display:block}.app-main{margin-left:0}.topbar{padding:0 16px}.global-search{display:none}.page-content{padding:20px 16px}.page-header{align-items:flex-start;flex-direction:column}.page-header-actions{width:100%;flex-wrap:wrap}.explorer-toolbar{align-items:stretch;gap:10px}.toolbar-right{flex:1}.local-search{min-width:0;flex:1}.explorer-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 16px 20px}.form-grid-modern{grid-template-columns:1fr}}
@media(max-width:560px){.stat-grid{grid-template-columns:1fr}.topbar-title .eyebrow{display:none}.page-header h1{font-size:28px}.explorer-toolbar{flex-direction:column}.toolbar-right{width:100%}.explorer-grid{grid-template-columns:1fr}.explorer-item{min-height:125px}.user-trigger>span:last-child{display:none}.page-content{padding:16px 12px}.modern-table th,.modern-table td{padding:12px 14px}.login-panel{padding:14px}.login-card-modern{padding:24px}}

/* Phase 2: folder personalization */
.folder-item{isolation:isolate}.folder-open-link{position:absolute;inset:0;z-index:1;border-radius:inherit}.folder-visual{background:linear-gradient(145deg,color-mix(in srgb,var(--folder-color) 78%,white),var(--folder-color));color:color-mix(in srgb,var(--folder-color) 38%,#111);box-shadow:inset 0 -8px 16px rgba(0,0,0,.07)}.folder-tab{background:color-mix(in srgb,var(--folder-color) 85%,white)}.favorite-indicator{position:absolute;top:13px;left:14px;color:#c8ced9;z-index:2;font-size:15px}.favorite-indicator.is-active{color:#f5b942;text-shadow:0 3px 8px rgba(245,185,66,.35)}.item-more-button{position:absolute;right:10px;bottom:10px;z-index:4;width:34px;height:32px;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}.item-more-button:hover{background:var(--surface);color:var(--text)}.folder-menu{position:absolute;right:10px;bottom:45px;z-index:15;width:190px;padding:7px;background:var(--surface);border:1px solid var(--border);border-radius:13px;box-shadow:0 20px 45px rgba(21,30,48,.18);opacity:0;visibility:hidden;transform:translateY(6px);transition:.16s}.folder-menu.is-open{opacity:1;visibility:visible;transform:none}.folder-menu a,.folder-menu button{display:flex;width:100%;padding:10px 11px;border:0;border-radius:9px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;text-decoration:none;cursor:pointer}.folder-menu a:hover,.folder-menu button:hover{background:var(--surface-2)}.folder-menu form{margin:0}.appearance-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px;margin-top:17px}.appearance-grid fieldset{min-width:0;border:1px solid var(--border);border-radius:14px;padding:13px}.appearance-grid legend{padding:0 6px;color:var(--muted);font-size:12px;font-weight:800}.appearance-grid select{width:100%;height:42px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);padding:0 10px}.color-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.color-option{cursor:pointer}.color-option input{position:absolute;opacity:0;pointer-events:none}.color-option span{display:block;height:34px;border-radius:10px;background:var(--swatch);border:3px solid transparent;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.color-option input:checked+span{border-color:var(--surface);outline:2px solid var(--primary);transform:scale(.94)}
@media(max-width:560px){.appearance-grid{grid-template-columns:1fr}.folder-menu{position:fixed;left:14px;right:14px;bottom:14px;width:auto}}


/* Phase 3: Windows Explorer interactions */
.selection-toolbar{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:12px;background:rgba(91,92,240,.09);color:var(--primary)}.selection-toolbar[hidden]{display:none}.toolbar-button.danger,.context-menu .danger{color:var(--danger)}.selectable-item{user-select:none}.selectable-item.is-selected{border-color:var(--primary)!important;background:color-mix(in srgb,var(--primary) 10%,var(--surface-2))!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 18%,transparent)}.selection-checkbox{position:relative;z-index:5;width:17px;height:17px;accent-color:var(--primary);cursor:pointer}.folder-item>.selection-checkbox{position:absolute;top:12px;right:12px}.selectable-table tr.is-selected td{background:color-mix(in srgb,var(--primary) 9%,var(--surface))}.context-menu{position:fixed;z-index:250;width:230px;padding:7px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 22px 60px rgba(14,24,43,.25)}.context-menu[hidden]{display:none}.context-menu button{display:flex;width:100%;padding:10px 12px;border:0;border-radius:9px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.context-menu button:hover{background:var(--surface-2)}.context-menu hr{border:0;border-top:1px solid var(--border);margin:6px}.button-danger{background:var(--danger);color:white;border-color:var(--danger)}.modal-message{padding:14px;border-radius:12px;background:rgba(228,79,95,.08);color:var(--muted);line-height:1.55}.property-panel{padding:4px 24px 26px}.property-icon{width:74px;height:64px;margin-bottom:18px;border-radius:16px;background:var(--surface-2);display:grid;place-items:center;color:var(--primary);font-size:36px}.property-panel dl{margin:0}.property-panel dl div{display:grid;grid-template-columns:145px 1fr;gap:15px;padding:11px 0;border-top:1px solid var(--border)}.property-panel dt{color:var(--muted);font-size:12px}.property-panel dd{margin:0;font-weight:700;overflow-wrap:anywhere}.trash-grid .trash-item{cursor:pointer}.trash-item>.selection-checkbox{position:absolute;top:12px;right:12px}.trash-item:has(.selection-checkbox:checked){border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--surface-2))}.explorer-grid.list-mode .folder-item>.selection-checkbox{position:relative;top:auto;right:auto;order:-1}.explorer-grid.list-mode .folder-open-link{z-index:0}.explorer-grid.list-mode .item-more-button{position:relative;margin-left:auto;right:auto;bottom:auto}.explorer-grid.list-mode .item-details{min-width:0;flex:1}.explorer-grid.list-mode .item-details strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:820px){.selection-toolbar{order:3;width:100%;overflow:auto}.explorer-toolbar{flex-wrap:wrap}.context-menu{width:min(260px,calc(100vw - 24px))}.property-panel dl div{grid-template-columns:1fr;gap:4px}}

/* Phase 4: File preview */
.preview-dialog{width:min(1180px,calc(100vw - 32px));height:min(820px,calc(100vh - 32px));display:flex;flex-direction:column;overflow:hidden}.preview-head{flex:0 0 auto}.preview-actions{display:flex;align-items:center;gap:10px}.preview-stage{flex:1;min-height:0;background:var(--surface-subtle,#eef2f7);display:flex;align-items:center;justify-content:center;overflow:auto}.preview-frame{width:100%;height:100%;border:0;background:#fff}.preview-image{display:block;max-width:100%;max-height:100%;object-fit:contain;padding:20px}.preview-media{width:min(100%,980px);max-height:100%;background:#090b10}.preview-audio{width:min(720px,calc(100% - 40px))}.preview-unsupported{text-align:center;max-width:560px;padding:48px 28px}.preview-unsupported h3{margin:14px 0 8px}.preview-unsupported p{margin:0;color:var(--text-muted)}.preview-large-icon{display:inline-grid;place-items:center;width:76px;height:76px;border-radius:22px;background:var(--primary-soft);font-size:34px}.table-actions{white-space:nowrap}@media(max-width:720px){.preview-dialog{width:100vw;height:100vh;max-width:none;border-radius:0}.preview-actions .button{padding-inline:12px}.preview-head h2{max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Phase 5: User and role management */
.admin-stat-grid{margin-bottom:22px}.admin-panel{overflow:hidden}.admin-panel .panel-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid var(--border)}.admin-panel .panel-header h2{margin:0}.admin-panel .panel-header p{margin:4px 0 0;color:var(--muted)}.admin-table td{vertical-align:middle}.person-cell{display:flex;align-items:center;gap:11px}.person-cell>span:last-child{display:grid}.badge-list{display:flex;flex-wrap:wrap;gap:6px}.badge{display:inline-flex;padding:4px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:11px;font-weight:750}.badge-purple{color:var(--primary);background:rgba(91,92,240,.1);border-color:rgba(91,92,240,.2)}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:800}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-pill.is-active{color:var(--success);background:rgba(22,163,106,.1)}.status-pill.is-passive{color:var(--danger);background:rgba(228,79,95,.1)}.row-actions{display:flex;justify-content:flex-end;gap:6px}.row-actions form{margin:0}.danger-icon,.text-danger{color:var(--danger)!important}.role-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;border:1px solid var(--border);border-radius:14px;padding:13px}.role-check-grid legend{padding:0 7px;color:var(--muted);font-size:12px;font-weight:800}.check-card{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:pointer}.check-card:has(input:checked){border-color:var(--primary);background:rgba(91,92,240,.08)}.check-card input{margin-top:4px;accent-color:var(--primary)}.check-card span{display:grid}.check-card small{color:var(--muted)}.modal-small{width:min(520px,calc(100vw - 28px))}.modal-body textarea{width:100%;resize:vertical;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);padding:12px;outline:0}.modal-body textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,92,240,.12)}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.role-card{display:flex;flex-direction:column;min-height:260px;padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow)}.role-card-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;color:var(--primary);background:rgba(91,92,240,.1);font-size:22px;margin-bottom:18px}.role-card-body{flex:1}.role-card-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.role-card-title h2{margin:0;font-size:20px}.role-card-body p{color:var(--muted);min-height:48px}.role-metrics{display:flex;gap:10px;flex-wrap:wrap}.role-metrics span{padding:8px 10px;border-radius:10px;background:var(--surface-2);font-size:12px}.role-metrics strong{color:var(--primary)}.role-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;padding-top:15px;border-top:1px solid var(--border)}.role-card footer small{color:var(--muted)}.role-card footer button{border:0;background:transparent;font:inherit;font-size:12px;cursor:pointer}.muted{color:var(--muted);font-size:12px}
@media(max-width:1100px){.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.role-grid{grid-template-columns:1fr}.admin-panel .panel-header{align-items:stretch;flex-direction:column}.admin-panel .local-search{min-width:0;width:100%}.role-check-grid{grid-template-columns:1fr}.admin-table th:nth-child(4),.admin-table td:nth-child(4),.admin-table th:nth-child(5),.admin-table td:nth-child(5){display:none}}

/* Phase 6: folder permissions */
.permission-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:20px}.permission-summary{display:flex;align-items:center;gap:16px;padding:20px}.permission-summary .summary-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:22px}.permission-summary div{display:flex;flex-direction:column;min-width:0}.permission-summary small,.permission-summary span{color:var(--muted);font-size:12px}.permission-summary strong{font-size:20px;margin:3px 0}.permissions-card{padding:22px}.permission-list{display:flex;flex-direction:column;gap:12px}.permission-row{display:grid;grid-template-columns:minmax(230px,1.1fr) minmax(280px,2fr) auto;gap:18px;align-items:center;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface-2)}.permission-target{display:flex;align-items:center;gap:12px;min-width:0}.permission-target>div{display:flex;flex-direction:column;min-width:0}.permission-target strong,.permission-target small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.permission-target small{color:var(--muted)}.permission-avatar{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}.target-badge{margin-left:auto;font-size:11px;padding:5px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--muted)}.permission-chips{display:flex;flex-wrap:wrap;gap:6px}.permission-chips span{font-size:11px;padding:5px 8px;border-radius:999px;background:var(--primary-soft);color:var(--primary)}.permission-chips .inherit-chip{background:var(--success-soft);color:var(--success)}.permission-actions{display:flex;gap:6px}.permission-actions form{margin:0}.permission-dialog{max-width:720px}.target-type-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px}.target-type-switch label{cursor:pointer}.target-type-switch input{position:absolute;opacity:0}.target-type-switch span{display:block;text-align:center;padding:11px;border:1px solid var(--border);border-radius:12px}.target-type-switch input:checked+span{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);font-weight:700}.permission-fieldset{border:1px solid var(--border);border-radius:14px;padding:14px}.permission-fieldset legend{padding:0 7px;font-weight:700}.permission-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.permission-check-grid label{display:flex;align-items:center;gap:8px;padding:9px;border-radius:10px;background:var(--surface-2);font-size:13px}.inherit-toggle{display:flex!important;align-items:flex-start!important;gap:10px}.inherit-toggle>span{display:flex;flex-direction:column}.inherit-toggle small{color:var(--muted)}.permission-presets{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:900px){.permission-summary-grid{grid-template-columns:1fr}.permission-row{grid-template-columns:1fr}.permission-actions{justify-content:flex-end}.permission-check-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.permission-check-grid{grid-template-columns:1fr}.target-type-switch{grid-template-columns:1fr}.permission-presets .button{width:100%}}

/* Phase 7: secure sharing */
.share-create-card{max-width:820px}.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.permission-switches{display:grid;gap:10px}.switch-row{display:flex!important;align-items:center;justify-content:space-between;gap:20px;padding:16px;border:1px solid var(--border-color);border-radius:16px;background:var(--surface-muted)}.switch-row span{display:grid;gap:3px}.switch-row small{color:var(--text-muted)}.switch-row input{width:20px;height:20px}.share-list{display:grid;gap:16px}.share-card{padding:20px;border:1px solid var(--border-color);border-radius:20px;background:var(--surface-muted);display:grid;gap:16px}.share-card.is-disabled{opacity:.58}.share-card-main{display:flex;gap:14px}.share-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--primary-soft);font-size:25px}.share-card h3{margin:0 0 4px}.share-card p{margin:0;color:var(--text-muted)}.share-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.share-meta span,.public-share-badges span{font-size:12px;padding:6px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--border-color)}.share-url-row{display:flex;gap:8px}.share-url-row input{flex:1}.share-actions{display:flex;justify-content:flex-end;gap:8px}.qr-dialog{max-width:380px}.qr-content{text-align:center;padding:12px 24px 28px}.qr-content img{width:240px;height:240px;background:#fff;padding:10px;border-radius:18px}.public-share-shell{min-height:100vh;width:100%;padding:42px 20px;display:grid;place-items:center;background:radial-gradient(circle at top,var(--primary-soft),transparent 42%),var(--body-bg)}.public-share-card{width:min(100%,620px);background:var(--surface);border:1px solid var(--border-color);border-radius:28px;padding:32px;box-shadow:var(--shadow-lg)}.public-share-card.wide{width:min(100%,980px)}.public-share-card.compact{text-align:center}.public-brand{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:var(--primary);color:#fff;font-size:26px;margin-bottom:18px}.compact .public-brand{margin-inline:auto}.public-share-head{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--border-color);padding-bottom:22px;margin-bottom:22px}.public-share-head h1{margin:4px 0}.public-share-badges{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px}.shared-single-file,.shared-file-row{display:flex;align-items:center;gap:14px;padding:15px;border:1px solid var(--border-color);border-radius:16px}.shared-single-file>div,.shared-file-row>div{flex:1;display:grid}.shared-single-file small,.shared-file-row small{color:var(--text-muted)}.shared-folder-heading{display:flex;justify-content:space-between;align-items:center}.shared-file-list{display:grid;gap:10px}.public-upload-box{margin-top:22px;padding:18px;border:1px dashed var(--primary);border-radius:18px;display:flex;align-items:center;gap:15px;background:var(--primary-soft)}.public-upload-box>div{display:grid;flex:1}.public-upload-box small{color:var(--text-muted)}.public-share-footer{text-align:center;margin-top:24px;color:var(--text-muted);font-size:13px}.button-block{width:100%;justify-content:center}
@media(max-width:700px){.form-grid.two{grid-template-columns:1fr}.share-url-row,.public-share-head,.public-upload-box{flex-direction:column;align-items:stretch}.share-actions{justify-content:stretch}.share-actions form,.share-actions button{width:100%}.public-share-card{padding:22px}.public-share-badges{justify-content:flex-start}}

/* Phase 8: activity audit */
.activity-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.activity-stat{padding:20px;display:grid;gap:4px}.activity-stat span,.activity-stat small{color:var(--muted);font-size:12px}.activity-stat strong{font-size:30px;letter-spacing:-.04em}.activity-filter-card{padding:20px;margin-bottom:20px}.activity-filters{display:grid;grid-template-columns:2fr repeat(3,minmax(150px,1fr));gap:14px;align-items:end}.activity-filters .field{display:grid;gap:7px}.activity-filters .field>span{font-size:12px;font-weight:750;color:var(--muted)}.activity-filters input,.activity-filters select{width:100%;height:43px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);padding:0 12px;outline:0}.activity-filters input:focus,.activity-filters select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,92,240,.12)}.activity-filter-actions{display:flex;gap:8px}.activity-table-card{padding:0;overflow:hidden}.activity-table-card .panel-header{padding:20px 22px;border-bottom:1px solid var(--border)}.activity-table td>small{display:block;color:var(--muted);margin-top:3px}.activity-user{display:flex;align-items:center;gap:10px}.activity-user>span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:rgba(91,92,240,.1);color:var(--primary);font-weight:800}.activity-user>div{display:grid}.activity-action-badge{display:inline-flex;padding:6px 9px;border-radius:999px;background:rgba(91,92,240,.1);color:var(--primary);font-size:12px;font-weight:750}.activity-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.activity-table code{font-size:12px;color:var(--muted)}.pagination{display:flex;justify-content:center;gap:7px;padding:18px;border-top:1px solid var(--border)}.pagination a{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;color:var(--text);text-decoration:none}.pagination a.active{background:var(--primary);border-color:var(--primary);color:#fff}.activity-detail-dialog{width:min(650px,calc(100vw - 28px))}.detail-list{display:grid;grid-template-columns:150px 1fr;gap:0;margin:0;border:1px solid var(--border);border-radius:14px;overflow:hidden}.detail-list dt,.detail-list dd{margin:0;padding:11px 13px;border-bottom:1px solid var(--border)}.detail-list dt{font-weight:750;color:var(--muted);background:var(--surface-2)}.detail-list dd{overflow-wrap:anywhere}.detail-list dt:last-of-type,.detail-list dd:last-of-type{border-bottom:0}.activity-json-block{margin-top:16px}.activity-json-block>span{display:block;font-size:12px;font-weight:750;color:var(--muted);margin-bottom:7px}.activity-json-block pre{margin:0;max-height:270px;overflow:auto;padding:15px;border-radius:14px;background:#101827;color:#dce7ff;font:12px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1180px){.activity-stat-grid{grid-template-columns:repeat(2,1fr)}.activity-filters{grid-template-columns:repeat(2,1fr)}.activity-search{grid-column:1/-1}}@media(max-width:700px){.activity-stat-grid,.activity-filters{grid-template-columns:1fr}.activity-search{grid-column:auto}.activity-filter-actions{flex-direction:column}.activity-filter-actions .button{justify-content:center}.activity-table th:nth-child(4),.activity-table td:nth-child(4),.activity-table th:nth-child(5),.activity-table td:nth-child(5){display:none}.detail-list{grid-template-columns:1fr}.detail-list dt{border-bottom:0;padding-bottom:3px}.detail-list dd{padding-top:3px}}


/* Phase 9: file versioning */
.version-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.version-summary{padding:20px;display:grid;gap:4px}.version-summary span,.version-summary small{color:var(--muted);font-size:12px}.version-summary strong{font-size:28px;letter-spacing:-.04em}.version-upload-card,.version-history-card{padding:22px;margin-bottom:20px}.version-upload-form{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(240px,2fr) auto;gap:14px;align-items:end}.version-file-picker{position:relative;min-height:72px;border:1px dashed var(--primary);border-radius:15px;background:rgba(91,92,240,.07);padding:13px 15px;display:grid;cursor:pointer}.version-file-picker input{position:absolute;inset:0;opacity:0;cursor:pointer}.version-file-picker span{font-weight:800;color:var(--primary)}.version-file-picker small,.version-note{color:var(--muted);font-size:12px}.version-note{display:grid;gap:7px;font-weight:700}.version-note input{height:44px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);padding:0 12px}.version-timeline{display:grid}.version-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:14px;padding:18px 0;border-bottom:1px solid var(--border)}.version-row:last-child{border-bottom:0}.version-marker{position:relative;display:flex;justify-content:center}.version-marker:after{content:"";position:absolute;top:37px;bottom:-19px;width:2px;background:var(--border)}.version-row:last-child .version-marker:after{display:none}.version-marker span{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);font-weight:800}.version-row.is-current .version-marker span{background:var(--primary);border-color:var(--primary);color:#fff}.version-main{min-width:0}.version-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.version-main p{margin:5px 0 9px;color:var(--muted)}.version-meta{display:flex;flex-wrap:wrap;gap:7px 14px;color:var(--muted);font-size:12px}.version-main code{display:inline-block;margin-top:9px;font-size:11px;color:var(--muted)}.version-actions{display:flex;align-items:center;gap:8px}.version-actions form{margin:0}.button-small{min-height:36px;padding:0 12px;font-size:12px}@media(max-width:900px){.version-upload-form{grid-template-columns:1fr}.version-row{grid-template-columns:44px 1fr}.version-actions{grid-column:2;justify-content:flex-start}}@media(max-width:650px){.version-summary-grid{grid-template-columns:1fr}.version-actions{flex-direction:column;align-items:stretch}.version-actions .button,.version-actions form,.version-actions form button{width:100%;justify-content:center}}

/* Phase 10: advanced dashboard */
.dashboard-hero{padding:8px 0}.dashboard-stat-grid{margin-bottom:22px}.dashboard-grid{display:grid;gap:22px;margin-bottom:22px}.dashboard-grid-main{grid-template-columns:minmax(0,1.65fr) minmax(290px,.75fr)}.dashboard-grid-secondary{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr)}.dashboard-chart-card{min-height:360px}.text-link{color:var(--primary);font-size:13px;font-weight:750;text-decoration:none}.activity-bars{height:255px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:14px;padding:20px 4px 0}.activity-bar-column{height:100%;display:grid;grid-template-rows:22px 1fr 24px;gap:7px;text-align:center;min-width:0}.activity-bar-column strong{font-size:12px;color:var(--muted)}.activity-bar-column small{font-size:11px;color:var(--muted)}.activity-bar-track{height:100%;min-height:120px;background:var(--surface-2);border-radius:12px;display:flex;align-items:end;overflow:hidden}.activity-bar-track span{width:100%;display:block;border-radius:12px 12px 5px 5px;background:linear-gradient(180deg,var(--primary-2),var(--primary));transition:height .5s ease}.storage-overview-card{display:flex;flex-direction:column}.storage-ring{--storage-percent:0;width:174px;aspect-ratio:1;border-radius:50%;margin:16px auto 24px;display:grid;place-items:center;background:conic-gradient(var(--primary) calc(var(--storage-percent) * 1%),var(--surface-2) 0);position:relative}.storage-ring:before{content:"";position:absolute;inset:17px;border-radius:50%;background:var(--surface)}.storage-ring>div{position:relative;display:grid;text-align:center}.storage-ring strong{font-size:27px}.storage-ring small{color:var(--muted)}.storage-overview-meta{display:grid;gap:11px}.storage-overview-meta>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--border);font-size:13px}.storage-overview-meta span{color:var(--muted)}.type-distribution{display:grid;gap:17px}.type-distribution-row{display:grid;gap:8px}.type-distribution-head{display:flex;justify-content:space-between;gap:12px;font-size:13px}.type-distribution-head span{color:var(--muted);font-size:12px;text-align:right}.mini-progress{height:7px;background:var(--surface-2);border-radius:999px;overflow:hidden}.mini-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:inherit}.recent-file-list{display:grid}.recent-file-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none}.recent-file-item:last-child{border-bottom:0}.recent-file-item:hover strong{color:var(--primary)}.recent-file-icon{width:42px;height:42px;border-radius:12px;background:rgba(91,92,240,.1);color:var(--primary);display:grid;place-items:center;font-size:10px;font-weight:900;overflow:hidden}.recent-file-copy{display:grid;min-width:0}.recent-file-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-file-copy small,.recent-file-item time{color:var(--muted);font-size:11px}.dashboard-activity-card{margin-bottom:30px}.empty-inline{padding:25px;text-align:center;color:var(--muted)}@media(max-width:1100px){.dashboard-grid-main,.dashboard-grid-secondary{grid-template-columns:1fr}}@media(max-width:720px){.activity-bars{gap:6px;height:220px}.activity-bar-column strong{font-size:10px}.recent-file-item{grid-template-columns:40px minmax(0,1fr)}.recent-file-item time{grid-column:2}.dashboard-stat-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.dashboard-stat-grid{grid-template-columns:1fr}.type-distribution-head{align-items:flex-start;flex-direction:column}.type-distribution-head span{text-align:left}}

/* Phase 11: quick access and global search */
.pin-indicator{position:absolute;top:12px;left:14px;font-size:10px;opacity:0;color:var(--text-muted);z-index:3}.pin-indicator.is-active{opacity:1}.quick-access-grid{min-height:220px}.quick-access-item{padding-bottom:58px}.quick-card-actions{position:absolute;left:16px;right:16px;bottom:13px;display:flex;gap:7px;z-index:4}.quick-card-actions form{flex:1}.mini-action{width:100%;border:1px solid var(--border);background:var(--surface-soft);color:var(--text);border-radius:9px;padding:7px 8px;font:inherit;font-size:12px;cursor:pointer}.mini-action:hover{background:var(--surface-hover)}.favorite-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.favorite-summary>div{display:flex;align-items:baseline;gap:8px}.favorite-summary strong{font-size:26px}.favorite-summary span{color:var(--text-muted)}.search-panel{padding:22px;margin-bottom:18px}.advanced-search-form{display:grid;gap:16px}.search-main{display:flex;align-items:center;gap:12px;border:1px solid var(--border);background:var(--surface-soft);border-radius:14px;padding:0 16px}.search-main input{width:100%;border:0;background:transparent;padding:16px 0;color:var(--text);outline:0;font:inherit}.search-filters{display:grid;grid-template-columns:1.2fr .8fr 1fr 1fr auto;gap:12px;align-items:end}.search-filters label{display:grid;gap:6px;font-size:12px;color:var(--text-muted)}.search-filters input,.search-filters select{min-height:42px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:0 11px}.search-result-summary{display:flex;gap:10px;align-items:baseline;margin:18px 2px;color:var(--text-muted)}.search-result-summary strong{color:var(--text);font-size:20px}.search-results-card{padding:20px;margin-bottom:18px}.search-result-list{display:grid}.search-result-item{display:grid;grid-template-columns:46px minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:13px 8px;border-top:1px solid var(--border);color:var(--text);text-decoration:none}.search-result-item:first-child{border-top:0}.search-result-item:hover{background:var(--surface-soft)}.search-result-item>span:nth-child(2){min-width:0;display:grid;gap:3px}.search-result-item strong,.search-result-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-item small,.result-meta,.empty-inline{color:var(--text-muted)}.result-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-weight:700;background:var(--surface-soft)}.result-icon.folder{font-size:26px}.result-actions{display:flex;gap:5px}.global-search{margin:0}.global-search input{min-width:250px}@media(max-width:900px){.search-filters{grid-template-columns:1fr 1fr}.search-filters .button{grid-column:1/-1}.global-search{display:none}}@media(max-width:620px){.favorite-summary{align-items:stretch;flex-direction:column}.search-filters{grid-template-columns:1fr}.search-result-item{grid-template-columns:42px minmax(0,1fr) auto}.result-meta{display:none}.result-actions{grid-column:2/4}}

/* Phase 12 — Notifications */
.notification-menu-wrap{position:relative}.notification-trigger{position:relative}.notification-badge{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:10px;background:#ef4444;color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;border:2px solid var(--surface,#fff)}
.notification-dropdown{position:absolute;right:0;top:calc(100% + 12px);width:min(390px,calc(100vw - 24px));background:var(--surface,#fff);border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 60px rgba(15,23,42,.18);z-index:80;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s ease;overflow:hidden}.notification-dropdown.open{opacity:1;visibility:visible;transform:none}.notification-dropdown-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}.notification-dropdown-head div{display:grid}.notification-dropdown-head small{color:var(--muted)}.notification-dropdown-head a{font-size:13px;font-weight:700}.notification-dropdown-list{max-height:390px;overflow:auto}.notification-dropdown-item{display:flex;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);color:inherit}.notification-dropdown-item:hover{background:var(--surface-soft)}.notification-dropdown-item.is-unread{background:rgba(59,130,246,.07)}.notification-dropdown-item>span:last-child{display:grid;gap:4px}.notification-dropdown-item strong{font-size:13px}.notification-dropdown-item small{color:var(--muted);font-size:11px}.notification-mini-icon,.notification-type-icon{width:36px;height:36px;border-radius:12px;background:var(--surface-soft);display:grid;place-items:center;flex:0 0 auto}.notification-dropdown-empty{padding:28px;text-align:center;color:var(--muted)}.nav-badge{margin-left:auto;min-width:22px;padding:2px 7px;border-radius:999px;background:var(--primary);color:#fff;font-size:11px;text-align:center}
.notification-panel{overflow:hidden}.notification-list{display:grid}.notification-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding:18px 20px;border-top:1px solid var(--border)}.notification-row:first-child{border-top:0}.notification-row.is-unread{background:rgba(59,130,246,.055)}.notification-body{min-width:0}.notification-title-line{display:flex;align-items:center;gap:9px}.notification-body p{margin:7px 0;color:var(--text-secondary);line-height:1.55}.notification-body small{color:var(--muted)}.unread-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);display:inline-block}.notification-actions{display:flex;gap:7px;align-items:center}.notification-actions form{margin:0}.notification-stats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:680px}.segmented-control{display:flex;gap:5px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.segmented-control a{padding:8px 13px;border-radius:9px;font-size:13px;font-weight:700;color:var(--muted)}.segmented-control a.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px rgba(15,23,42,.08)}
@media(max-width:720px){.notification-row{grid-template-columns:auto 1fr}.notification-actions{grid-column:2;justify-content:flex-start}.notification-stats{grid-template-columns:1fr}.global-search{display:none}}
.role-matrix{border-top:1px solid var(--border,#e5e7eb);padding:16px 18px 18px;display:grid;gap:12px}.role-matrix .permission-check-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.role-matrix .button{justify-self:start}
@media(max-width:720px){.role-matrix .permission-check-grid{grid-template-columns:1fr 1fr}.page-header-actions{width:100%;display:grid;grid-template-columns:1fr}.page-header-actions .button{width:100%;justify-content:center}.modern-table{min-width:720px}.preview-dialog{width:calc(100vw - 16px);height:calc(100dvh - 16px);margin:8px}.modal-dialog{max-height:calc(100dvh - 16px);overflow:auto}.permission-check-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.role-matrix .permission-check-grid,.permission-check-grid{grid-template-columns:1fr}.dashboard-stat-grid{grid-template-columns:1fr}.toolbar-group.toolbar-right{width:100%}.local-search{width:100%}}
/* 2026 kurumsal arayüz yenilemesi */
:root{--radius-xl:22px;--radius-lg:16px;--shadow-soft:0 12px 36px rgba(15,23,42,.08);--border-soft:rgba(148,163,184,.22)}
.page-header{padding:8px 2px 20px}.page-header h1{letter-spacing:-.035em;font-weight:750}.section-kicker{letter-spacing:.08em;font-size:.72rem;font-weight:750}
.surface-card,.admin-panel,.role-card{border:1px solid var(--border-soft);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);background:color-mix(in srgb,var(--surface) 96%,transparent)}
.button{min-height:42px;border-radius:12px;font-weight:680;letter-spacing:-.01em}.button-primary,.button.primary{box-shadow:0 8px 20px rgba(79,70,229,.2)}
.modern-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.055em}.modern-table td{padding-top:15px;padding-bottom:15px}.modern-table tbody tr{transition:background .18s ease,transform .18s ease}.modern-table tbody tr:hover{background:rgba(99,102,241,.045)}
.modal-dialog{border-radius:24px;border:1px solid var(--border-soft);box-shadow:0 30px 80px rgba(15,23,42,.24)}.modal-head{padding:22px 24px 18px}.modal-form,.modal-body{padding:22px 24px 24px}.modal-form input,.modal-form select,.modal-form textarea,.modal-body input,.modal-body select,.modal-body textarea{min-height:46px;border-radius:12px}
.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:20px}.role-card{overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.role-card:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(15,23,42,.11)}.role-card-icon{background:linear-gradient(135deg,rgba(99,102,241,.15),rgba(14,165,233,.12));border-radius:14px}
.role-matrix{background:rgba(148,163,184,.07);border-top:1px solid var(--border-soft);padding:18px}.permission-check-grid label,.check-card{border-radius:14px;transition:border-color .18s ease,background .18s ease}.permission-check-grid label:hover,.check-card:hover{border-color:rgba(99,102,241,.45);background:rgba(99,102,241,.05)}
.form-hint{margin:0;color:var(--muted);font-size:.86rem}.trash-item{cursor:pointer}.trash-item:has(input:checked){outline:2px solid rgba(99,102,241,.5);background:rgba(99,102,241,.06)}
@media(max-width:760px){.page-header-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.page-header-actions .button,.page-header-actions form,.page-header-actions form .button{width:100%}.role-grid{grid-template-columns:1fr}.modal-dialog{width:calc(100% - 20px);max-height:calc(100vh - 20px);border-radius:20px}.permission-check-grid{grid-template-columns:1fr 1fr}.admin-table{min-width:760px}}

.favorite-toggle-button{border:0;background:transparent;cursor:pointer;padding:2px;line-height:1}.favorite-toggle-button:hover{transform:scale(1.12)}.file-favorite-button{color:#aab2c0}.file-favorite-button.is-active{color:#f5b942;background:rgba(245,185,66,.12)}.table-actions form{display:inline-flex;margin:0}

/* Folder appearance editor */
.appearance-editor{align-items:start}.icon-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.icon-option{cursor:pointer}.icon-option input{position:absolute;opacity:0;pointer-events:none}.icon-option span{min-height:76px;padding:10px 6px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;transition:.18s ease}.icon-option b{font-size:25px;color:var(--primary)}.icon-option small{font-size:11px;color:var(--muted)}.icon-option input:checked+span{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 16%,transparent)}.folder-appearance-preview{display:flex;align-items:center;gap:18px;padding:14px 16px;border:1px dashed var(--border);border-radius:14px;background:var(--surface-2)}.folder-appearance-preview>span{font-size:12px;font-weight:700;color:var(--muted)}.folder-appearance-preview .folder-visual{width:76px;height:58px}.folder-appearance-preview .folder-glyph{font-size:27px}@media(max-width:640px){.icon-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}


.share-upload-limit{margin:0 16px 16px;padding:16px;border:1px solid var(--border,#dfe3ec);border-radius:14px;background:var(--surface-muted,#f7f8fb)}.share-upload-limit[hidden]{display:none!important}.share-upload-limit label{display:grid;gap:8px;font-weight:700}.share-upload-limit small{display:block;margin-top:8px;color:var(--text-muted,#6b7280);line-height:1.5}.share-upload-limit input{width:100%;max-width:240px}@media(max-width:640px){.share-upload-limit{margin:0 10px 12px;padding:14px}.share-upload-limit input{max-width:none}}


/* V11 — Favori durumunu belirginleştiren ve tüm görünümlerde tutarlı çalışan stiller */
.favorite-toggle-button{position:absolute;top:3px;left:11px;z-index:8;min-width:20px;height:20px;padding:0 10px;border:1px solid rgba(148,163,184,.34)!important;border-radius:999px!important;background:color-mix(in srgb,var(--surface) 94%,transparent)!important;color:#94a3b8!important;display:inline-flex!important;align-items:center;justify-content:center;gap:7px;box-shadow:0 6px 18px rgba(15,23,42,.10);backdrop-filter:blur(12px);transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;line-height:1}
.favorite-toggle-button:hover{transform:translateY(-1px) scale(1.03);border-color:#f59e0b!important;color:#d97706!important;background:#fffbeb!important}
.favorite-toggle-button.is-active{color:#fff!important;background:linear-gradient(135deg,#f59e0b,#f97316)!important;border-color:transparent!important;box-shadow:0 9px 24px rgba(245,158,11,.38)}
.favorite-star{font-size:18px;line-height:1;text-shadow:none}.favorite-toggle-button.is-active .favorite-star{filter:drop-shadow(0 1px 2px rgba(120,53,15,.28))}
.favorite-state-text{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;font-size:11px;font-weight:800;transition:max-width .2s ease,opacity .2s ease}
.favorite-toggle-button:hover .favorite-state-text,.favorite-toggle-button.is-active .favorite-state-text{max-width:92px;opacity:1}
.folder-item:has(.favorite-toggle-button.is-active){border-color:rgba(245,158,11,.55);box-shadow:0 14px 34px rgba(245,158,11,.10)}
.folder-item:has(.favorite-toggle-button.is-active)::after{content:"Favori";position:absolute;right:5px;top:40px;z-index:5;padding:1px 3px;border-radius:999px;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;font-size:10px;font-weight:850;letter-spacing:.02em}
.file-favorite-button{width:auto!important;min-width:42px;padding:0 11px!important;gap:7px;color:#94a3b8!important;background:var(--surface)!important;transition:.18s ease;white-space:nowrap}
.file-favorite-button:hover{color:#d97706!important;border-color:#f59e0b!important;background:#fffbeb!important}
.file-favorite-button.is-active{color:#fff!important;border-color:transparent!important;background:linear-gradient(135deg,#f59e0b,#f97316)!important;box-shadow:0 7px 18px rgba(245,158,11,.30)}
.file-favorite-button>span:first-child{font-size:17px;line-height:1}.file-favorite-label{font-size:11px;font-weight:800}
.modern-table tr:has(.file-favorite-button.is-active){background:linear-gradient(90deg,rgba(245,158,11,.055),transparent 48%)}
.favorite-status-badge{position:absolute!important;top:12px!important;left:12px!important;width:auto!important;min-width:74px;height:30px;padding:0 10px;border-radius:999px;background:#fff7ed;color:#c2410c!important;border:1px solid #fed7aa;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:11px!important;font-weight:850;box-shadow:0 5px 15px rgba(194,65,12,.12)}
.favorite-status-badge.is-active{background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff!important;border-color:transparent;text-shadow:none!important}
.mini-action.favorite-action{font-weight:800;border-color:#fed7aa;background:#fff7ed;color:#c2410c}.mini-action.favorite-action:hover{background:#ffedd5}.mini-action.favorite-action.is-active{background:linear-gradient(135deg,#f59e0b,#f97316);border-color:transparent;color:#fff;box-shadow:0 6px 15px rgba(245,158,11,.24)}
[data-favorite-toggle].is-submitting{pointer-events:none;opacity:.72;transform:scale(.96)}
@media(max-width:760px){.favorite-state-text{display:none}.favorite-toggle-button{width:40px;min-width:40px;height:40px;padding:0!important}.folder-item:has(.favorite-toggle-button.is-active)::after{display:none}.file-favorite-button{width:40px!important;min-width:40px;padding:0!important}.file-favorite-label{display:none}.favorite-status-badge{min-width:34px;width:34px!important;padding:0!important}.favorite-status-badge span:last-child{display:none}.quick-card-actions{display:grid;grid-template-columns:1fr}.quick-card-actions form{width:100%}}
@media(max-width:430px){.favorite-toggle-button{top:9px;left:9px}.table-actions{display:flex;justify-content:flex-end;gap:6px}.file-favorite-button{flex:0 0 40px}}

/* V12 — Dosya tablosu favori butonu hizalama düzeltmesi
   Yalnızca tablo içindeki aksiyonları etkiler; klasör kartı stillerini değiştirmez. */
.modern-table td.table-actions{
    vertical-align:middle !important;
    white-space:nowrap !important;
}

.modern-table .table-actions form{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    margin:0 !important;
    vertical-align:middle !important;
}

.modern-table .table-actions .favorite-toggle-button.file-favorite-button{
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;

    width:108px !important;
    min-width:108px !important;
    height:44px !important;
    min-height:44px !important;
    max-height:44px !important;
    padding:0 12px !important;

    display:inline-flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;

    line-height:1 !important;
    vertical-align:middle !important;
    transform:none;
}

.modern-table .table-actions .favorite-toggle-button.file-favorite-button:hover{
    transform:translateY(-1px) !important;
}

.modern-table .table-actions .file-favorite-button .favorite-star,
.modern-table .table-actions .file-favorite-button > span:first-child{
    display:inline-flex !important;
    flex:0 0 auto !important;
    align-items:center !important;
    justify-content:center !important;
    margin:0 !important;
    line-height:1 !important;
}

.modern-table .table-actions .file-favorite-button .file-favorite-label,
.modern-table .table-actions .file-favorite-button .favorite-state-text{
    display:inline-block !important;
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
    overflow:visible !important;
    opacity:1 !important;
    white-space:nowrap !important;
    line-height:1 !important;
}

.modern-table .table-actions .icon-button,
.modern-table .table-actions .button-small{
    vertical-align:middle !important;
}

/* Dar ekranlarda tablo yatay kaydırılır; aksiyon butonları küçülüp üst üste binmez. */
@media(max-width:760px){
    .modern-table .table-actions .favorite-toggle-button.file-favorite-button{
        width:44px !important;
        min-width:44px !important;
        height:44px !important;
        min-height:44px !important;
        padding:0 !important;
    }

    .modern-table .table-actions .file-favorite-button .file-favorite-label,
    .modern-table .table-actions .file-favorite-button .favorite-state-text{
        display:none !important;
    }
}
/* V13 — Yönetici klasör sahipliği ve hızlı yetki erişimi */
.folder-owner-label{
    margin-top:3px;
    color:var(--primary) !important;
    font-size:10px !important;
    font-weight:750;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.folder-permission-shortcut{
    position:absolute;
    right:50px;
    bottom:10px;
    z-index:5;
    width:34px;
    height:32px;
    display:grid;
    place-items:center;
    border:1px solid var(--border);
    border-radius:9px;
    background:var(--surface);
    color:var(--primary);
    text-decoration:none;
    box-shadow:0 5px 14px rgba(15,23,42,.07);
}
.folder-permission-shortcut:hover{
    border-color:var(--primary);
    background:color-mix(in srgb,var(--primary) 9%,var(--surface));
}
.explorer-grid.list-mode .folder-permission-shortcut{
    position:relative;
    right:auto;
    bottom:auto;
    margin-left:auto;
    flex:0 0 auto;
}
.explorer-grid.list-mode .folder-permission-shortcut + .item-more-button{
    margin-left:0;
}
@media(max-width:560px){
    .folder-permission-shortcut{
        width:36px;
        height:34px;
    }
}

/* V13 — Modal, simge seçici ve standart buton hizalama düzeltmeleri
   Mevcut HTML/PHP/JS yapısını değiştirmeden yalnızca görünümü düzeltir. */

/* Bütün butonlarda ortak ölçü ve taşma güvenliği */
.button,
.icon-button,
.toolbar-button,
.item-more-button,
.mini-action,
.permission-actions button,
.permission-actions a,
.row-actions button,
.row-actions a,
.modal-actions button,
.modal-actions a {
    box-sizing: border-box;
    flex: 0 0 auto;
    max-width: 100%;
    line-height: 1.2;
}

.button {
    min-height: 42px;
    height: auto;
    padding: 10px 17px;
    white-space: nowrap;
}

.button-small {
    min-height: 36px;
    padding: 8px 12px;
}

.icon-button {
    width: 42px;
    min-width: 42px;
    height: 42px;
    min-height: 42px;
    padding: 0;
}

.modal-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
}

.modal-actions .button,
.modal-actions button {
    min-width: 116px;
}

/* Klasör görünümü modalı genişlik ve içerik taşma düzeltmesi */
.modal-dialog.wide {
    width: min(760px, calc(100vw - 32px));
}

.modal-form,
.modal-body {
    min-width: 0;
}

.appearance-editor,
.appearance-grid {
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 20px;
    align-items: stretch;
}

.appearance-grid fieldset {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    padding: 15px;
}

.appearance-grid legend {
    max-width: calc(100% - 20px);
    white-space: nowrap;
}

/* Renk alanı */
.color-picker {
    width: 100%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.color-option,
.color-option span {
    min-width: 0;
    width: 100%;
}

/* Simge seçeneklerinin birbirine girmesini engeller */
.icon-picker {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.icon-option {
    position: relative;
    display: block;
    min-width: 0;
    width: 100%;
    cursor: pointer;
}

.icon-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.icon-option span {
    width: 100%;
    min-width: 0;
    min-height: 86px;
    padding: 11px 5px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface-2);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    overflow: hidden;
    text-align: center;
    transition: border-color .18s ease, background .18s ease,
                box-shadow .18s ease, transform .18s ease;
}

.icon-option b {
    display: grid;
    place-items: center;
    width: 30px;
    min-width: 30px;
    height: 30px;
    margin: 0;
    font-size: 24px;
    line-height: 1;
    color: var(--primary);
}

.icon-option small {
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--muted);
    font-size: 10.5px;
    line-height: 1.25;
    font-weight: 700;
}

.icon-option:hover span {
    border-color: color-mix(in srgb, var(--primary) 45%, var(--border));
    background: color-mix(in srgb, var(--primary) 6%, var(--surface-2));
    transform: translateY(-1px);
}

.icon-option input:checked + span {
    border-color: var(--primary);
    background: color-mix(in srgb, var(--primary) 10%, var(--surface));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 15%, transparent);
}

.icon-option input:checked + span::after {
    content: "✓";
    position: absolute;
    top: 6px;
    right: 6px;
    width: 19px;
    height: 19px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: var(--primary);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    box-shadow: 0 4px 10px rgba(91, 92, 240, .28);
}

/* Önizleme alanı */
.folder-appearance-preview {
    width: 100%;
    min-width: 0;
    min-height: 118px;
    margin-top: 20px;
    padding: 18px 20px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 22px;
    overflow: hidden;
}

.folder-appearance-preview > span {
    white-space: nowrap;
}

/* Kullanıcı, rol ve yetki ekranlarında aksiyon butonları */
.row-actions,
.permission-actions,
.share-actions,
.version-actions,
.activity-filter-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}

.row-actions form,
.permission-actions form,
.share-actions form,
.version-actions form {
    display: inline-flex;
    margin: 0;
}

.row-actions .icon-button,
.permission-actions .icon-button {
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
}

/* Dar ekranlar */
@media (max-width: 760px) {
    .modal {
        padding: 10px;
    }

    .modal-dialog,
    .modal-dialog.wide,
    .modal-small,
    .permission-dialog {
        width: min(100%, calc(100vw - 20px));
        max-height: calc(100dvh - 20px);
        overflow-y: auto;
        border-radius: 20px;
    }

    .modal-head {
        padding: 20px 18px 12px;
    }

    .modal-form,
    .modal-body {
        padding: 16px 18px 20px;
    }

    .appearance-editor,
    .appearance-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .icon-picker {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .modal-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
    }

    .modal-actions .button,
    .modal-actions button,
    .modal-actions form {
        width: 100%;
        min-width: 0;
    }

    .modal-actions form .button,
    .modal-actions form button {
        width: 100%;
    }

    .row-actions,
    .permission-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 520px) {
    .icon-picker {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }

    .icon-option span {
        min-height: 78px;
    }

    .color-picker {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .folder-appearance-preview {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .modal-actions {
        grid-template-columns: 1fr;
    }

    .button {
        white-space: normal;
        text-align: center;
    }
}

/* =========================================================
   V14 — Form, modal, simge seçici ve buton standartlaştırma
   Bu bölüm en sonda kalmalıdır.
   ========================================================= */

/* Temel form ölçüleri */
:root {
    --control-height: 48px;
    --control-radius: 13px;
    --control-border: var(--border, #e5eaf1);
    --control-bg: var(--surface-2, #f8fafc);
    --control-focus: var(--primary, #5b5cf0);
}

.modal-form,
.modal-body,
.form-grid-modern,
.form-grid,
.form-grid.two {
    min-width: 0;
}

.modal-form label,
.modal-body label,
.form-grid-modern label,
.form-grid label,
.field {
    min-width: 0;
}

/* Metin, e-posta, parola, sayı, tarih ve seçim alanları aynı görünür */
.modal-form input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.modal-form select,
.modal-form textarea,
.modal-body input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.modal-body select,
.modal-body textarea,
.form-grid-modern input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.form-grid-modern select,
.form-grid-modern textarea,
.form-grid input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.form-grid select,
.form-grid textarea {
    display: block;
    width: 100%;
    min-width: 0;
    height: var(--control-height);
    min-height: var(--control-height);
    margin: 0;
    padding: 0 14px;
    border: 1px solid var(--control-border);
    border-radius: var(--control-radius);
    background: var(--control-bg);
    color: var(--text);
    font: inherit;
    line-height: 1.2;
    outline: none;
    box-shadow: none;
    appearance: none;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.modal-form textarea,
.modal-body textarea,
.form-grid-modern textarea,
.form-grid textarea {
    height: auto;
    min-height: 110px;
    padding-top: 12px;
    padding-bottom: 12px;
    resize: vertical;
}

.modal-form input:focus,
.modal-form select:focus,
.modal-form textarea:focus,
.modal-body input:focus,
.modal-body select:focus,
.modal-body textarea:focus,
.form-grid-modern input:focus,
.form-grid-modern select:focus,
.form-grid-modern textarea:focus,
.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus {
    border-color: var(--control-focus);
    background: var(--surface);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--control-focus) 14%, transparent);
}

/* Kullanıcı oluşturma/düzenleme formları */
.form-grid-modern {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 20px;
    align-items: start;
}

.form-grid-modern > *,
.form-grid-modern label {
    min-width: 0;
}

.form-grid-modern .full,
.form-grid-modern fieldset,
.form-grid-modern .role-check-grid,
.form-grid-modern .modal-actions {
    grid-column: 1 / -1;
}

.form-grid-modern label {
    display: grid;
    grid-template-rows: auto var(--control-height);
    align-content: start;
    gap: 8px;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.25;
}

.form-grid-modern label > span:first-child {
    display: block;
    min-height: 17px;
}

/* Rol kutuları */
.role-check-grid {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 16px;
}

.role-check-grid legend {
    padding: 0 8px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.check-card {
    width: 100%;
    min-width: 0;
    min-height: 112px;
    margin: 0;
    padding: 16px;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: var(--surface-2);
    overflow: hidden;
}

.check-card input[type="checkbox"],
.check-card input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 0;
    align-self: center;
    accent-color: var(--primary);
}

.check-card > span {
    display: grid;
    min-width: 0;
    gap: 4px;
}

.check-card strong,
.check-card small {
    min-width: 0;
    overflow-wrap: anywhere;
}

.check-card strong {
    font-size: 15px;
}

.check-card small {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

/* Modal genel yapısı */
.modal {
    padding: 18px;
}

.modal-dialog,
.modal-dialog.wide,
.modal-small,
.permission-dialog {
    width: min(720px, calc(100vw - 36px));
    max-width: 100%;
    max-height: calc(100dvh - 36px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.modal-dialog:not(.wide):not(.permission-dialog) {
    width: min(650px, calc(100vw - 36px));
}

.modal-head {
    flex: 0 0 auto;
    padding: 26px 30px 18px;
}

.modal-head > div {
    min-width: 0;
}

.modal-head h2 {
    margin: 5px 0 0;
    font-size: clamp(25px, 3vw, 32px);
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.modal-head .icon-button,
.modal-head button[aria-label="Kapat"],
.modal-head .modal-close {
    flex: 0 0 54px;
    width: 54px;
    min-width: 54px;
    height: 54px;
    min-height: 54px;
}

.modal-form,
.modal-body {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 24px 30px 28px;
}

/* Klasör görünümü modalı */
.appearance-editor,
.appearance-grid {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(300px, 1.15fr);
    gap: 22px;
    align-items: stretch;
}

.appearance-grid fieldset {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 16px;
    overflow: visible;
    border: 1px solid var(--border);
    border-radius: 17px;
}

.appearance-grid legend {
    padding: 0 8px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}

/* Renk paleti */
.color-picker {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(42px, 1fr));
    gap: 12px;
}

.color-option {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
}

.color-option span {
    display: block;
    width: 100%;
    height: 42px;
    min-height: 42px;
    border-radius: 12px;
}

/* Simge paleti: metinler kesilmez, hücreler çakışmaz */
.icon-picker {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(64px, 1fr));
    gap: 10px;
}

.icon-option {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
}

.icon-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.icon-option span {
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: 96px;
    padding: 13px 7px 10px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: var(--surface-2);
    display: grid;
    grid-template-rows: 34px auto;
    place-items: center;
    align-content: center;
    gap: 7px;
    overflow: hidden;
    text-align: center;
    transition: border-color .18s ease, background .18s ease,
                box-shadow .18s ease, transform .18s ease;
}

.icon-option b {
    width: 34px;
    height: 34px;
    margin: 0;
    display: grid;
    place-items: center;
    font-size: 24px;
    line-height: 1;
    color: var(--primary);
}

.icon-option small {
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0 2px;
    color: var(--muted);
    font-size: 10.5px;
    font-weight: 750;
    line-height: 1.25;
    white-space: normal;
    overflow-wrap: anywhere;
    text-overflow: clip;
    overflow: visible;
}

.icon-option:hover span {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--primary) 50%, var(--border));
    background: color-mix(in srgb, var(--primary) 6%, var(--surface-2));
}

.icon-option input:checked + span {
    border-color: var(--primary);
    background: color-mix(in srgb, var(--primary) 10%, var(--surface));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 15%, transparent);
}

.icon-option input:checked + span::after {
    content: "✓";
    position: absolute;
    top: 7px;
    right: 7px;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: var(--primary);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    box-shadow: 0 5px 12px rgba(91, 92, 240, .30);
}

/* Önizleme */
.folder-appearance-preview {
    width: 100%;
    min-width: 0;
    min-height: 150px;
    margin-top: 24px;
    padding: 22px 26px;
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    align-items: center;
    justify-items: start;
    gap: 24px;
    overflow: hidden;
    border: 1px dashed var(--border);
    border-radius: 17px;
    background: var(--surface-2);
}

.folder-appearance-preview > span {
    font-size: 12px;
    font-weight: 800;
    color: var(--muted);
}

.folder-appearance-preview .folder-visual {
    width: 104px;
    height: 78px;
}

/* Buton standardı */
.button,
button.button,
a.button {
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    line-height: 1.15;
    font-size: 14px;
    font-weight: 780;
    white-space: nowrap;
}

.button-small {
    min-height: 38px;
    padding: 8px 13px;
    font-size: 12px;
}

.modal-actions {
    width: 100%;
    margin-top: 24px;
    padding-top: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
}

.modal-actions .button,
.modal-actions button {
    min-width: 150px;
}

.button-secondary {
    background: var(--surface);
    color: var(--text);
    border-color: var(--border);
}

.button-secondary:hover {
    border-color: color-mix(in srgb, var(--primary) 40%, var(--border));
    background: var(--surface-2);
}

/* Tablet */
@media (max-width: 760px) {
    .modal {
        padding: 10px;
    }

    .modal-dialog,
    .modal-dialog.wide,
    .modal-small,
    .permission-dialog,
    .modal-dialog:not(.wide):not(.permission-dialog) {
        width: calc(100vw - 20px);
        max-height: calc(100dvh - 20px);
        border-radius: 20px;
    }

    .modal-head {
        padding: 20px 18px 14px;
    }

    .modal-head .icon-button,
    .modal-head button[aria-label="Kapat"],
    .modal-head .modal-close {
        flex-basis: 46px;
        width: 46px;
        min-width: 46px;
        height: 46px;
        min-height: 46px;
    }

    .modal-form,
    .modal-body {
        padding: 18px;
    }

    .form-grid-modern,
    .appearance-editor,
    .appearance-grid {
        grid-template-columns: 1fr;
    }

    .role-check-grid {
        grid-template-columns: 1fr;
    }

    .icon-picker {
        grid-template-columns: repeat(4, minmax(60px, 1fr));
    }

    .modal-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .modal-actions .button,
    .modal-actions button,
    .modal-actions form,
    .modal-actions form .button,
    .modal-actions form button {
        width: 100%;
        min-width: 0;
    }
}

/* Telefon */
@media (max-width: 520px) {
    .modal-head h2 {
        font-size: 24px;
    }

    .icon-picker {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .color-picker {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .folder-appearance-preview {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .modal-actions {
        grid-template-columns: 1fr;
    }

    .button,
    button.button,
    a.button {
        white-space: normal;
        text-align: center;
    }
}

/* V17 — Tam klasör yolu / tıklanabilir breadcrumb */
.explorer-heading-copy{min-width:0;max-width:100%}
.folder-path-breadcrumbs{display:flex;align-items:center;gap:7px;max-width:min(100%,980px);min-width:0;padding:3px 0 7px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--primary) 35%,transparent) transparent;white-space:nowrap}
.folder-path-breadcrumbs::-webkit-scrollbar{height:4px}.folder-path-breadcrumbs::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--primary) 35%,transparent);border-radius:999px}
.folder-path-breadcrumbs .breadcrumb-item{min-width:0;max-width:240px;min-height:30px;padding:4px 8px;border:1px solid transparent;border-radius:9px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);text-decoration:none;font-size:12px;font-weight:700;transition:background .18s ease,border-color .18s ease,color .18s ease}
.folder-path-breadcrumbs .breadcrumb-item>span:last-child{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folder-path-breadcrumbs a.breadcrumb-item:hover{background:color-mix(in srgb,var(--primary) 8%,var(--surface));border-color:color-mix(in srgb,var(--primary) 22%,var(--border));color:var(--primary)}
.folder-path-breadcrumbs .breadcrumb-item.is-current{max-width:320px;background:color-mix(in srgb,var(--primary) 9%,var(--surface));border-color:color-mix(in srgb,var(--primary) 20%,var(--border));color:var(--text);font-weight:850}
.folder-path-breadcrumbs .breadcrumb-root{color:var(--primary)}
.breadcrumb-folder-icon{flex:0 0 auto;font-size:15px;line-height:1;color:currentColor}
.breadcrumb-separator{flex:0 0 auto;color:color-mix(in srgb,var(--muted) 65%,transparent);font-size:16px;line-height:1}
@media(max-width:760px){.folder-path-breadcrumbs{width:calc(100vw - 44px);max-width:100%;padding-bottom:9px}.folder-path-breadcrumbs .breadcrumb-item{max-width:170px}.folder-path-breadcrumbs .breadcrumb-item.is-current{max-width:210px}}

