/* V6: app-style mobile presentation. Desktop layouts and all records are retained. */
.app-header,.app-tabs,.app-fallback{display:none}
.app-menu:not([open]){display:none}
.app-menu{box-sizing:border-box;background:var(--paper);color:var(--ink);font-family:inherit;border:1px solid var(--line);border-radius:24px 24px 0 0;padding:22px;width:min(560px,100%);max-width:100%;max-height:calc(100dvh - 24px);margin:auto auto 0;overscroll-behavior:contain}
.app-menu::backdrop{background:rgba(12,18,36,.48);backdrop-filter:blur(3px)}
.app-menu-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:20px}
.app-menu-heading h2{margin:0;font-size:1.2rem}.app-menu-heading p{font-size:.875rem;color:var(--muted);margin:5px 0 0;overflow-wrap:anywhere}
.app-close{display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:50%;font-size:1.6rem;cursor:pointer}
.app-search{margin-bottom:18px}.app-search label{font-size:.875rem}.app-search>div{display:flex;gap:8px}.app-search input{min-width:0;flex:1}.app-search .btn{flex:none}
.app-menu-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.app-menu-links a{display:flex;align-items:center;gap:10px;min-width:0;padding:14px 10px;border:1px solid var(--line);border-radius:12px;font-size:.875rem;font-weight:600;overflow-wrap:anywhere}
.app-menu-links a>span:first-child{display:flex;color:var(--brand)}.app-chevron{margin-left:auto;color:var(--muted);font-size:1.2rem}
.app-menu-links [aria-current=page]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 9%,white);color:var(--brand)}
.app-signout{display:block;text-align:center;padding:14px;margin-top:18px;border-radius:12px;background:#fff0f3;color:#b52c48;font-size:1rem;font-weight:700}
body.app-menu-open{overflow:hidden}
.app-cell-label{display:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
[hidden]{display:none!important}

@media(max-width:900px){
 html{scroll-padding-top:86px;scroll-padding-bottom:100px}
 body{font-size:1rem;line-height:1.5;-webkit-text-size-adjust:100%;text-size-adjust:100%}
 .shell{display:block;min-width:0}.main,.author-shell{width:100%;min-width:0}
 .side,.top,.mobile-nav,.author-top{display:none!important}
 .app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:20;min-height:70px;padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));padding-top:max(12px,env(safe-area-inset-top));background:var(--paper);border-bottom:1px solid var(--line)}
 .app-header .brand{margin:0;gap:10px;min-width:0;color:var(--ink)}
 .app-header .brandmark{width:38px;height:38px;flex-basis:38px;border-radius:11px}.app-header .brandmark svg{width:22px;height:22px}
 .app-header .brand-text{min-width:0}.app-header .brand b{font-size:.95rem;line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
 .app-header .brand small{font-size:.75rem;letter-spacing:.1em;margin-top:2px;color:var(--muted)}
 .app-profile{min-width:44px;min-height:44px;display:grid;place-items:center;flex:none}.app-profile .avatar{width:40px;height:40px}
 .mobile-ready .app-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(23,26,43,.05);padding:6px max(6px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}
 .app-tabs>a,.app-tabs>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:58px;padding:4px 1px;border:0;border-radius:12px;background:transparent;color:#626b80;font:600 .75rem/1.3 Montserrat,Arial,sans-serif;cursor:pointer;text-decoration:none}
 .app-tab-icon{display:grid;place-items:center;width:46px;height:28px;border-radius:10px}.app-tab-icon .nav-icon{width:21px;height:21px}
 .app-tabs [aria-current=page],.app-tabs .on{color:var(--brand)}
 .app-tabs [aria-current=page] .app-tab-icon,.app-tabs .on .app-tab-icon{background:color-mix(in srgb,var(--brand) 12%,white)}
 .app-fallback{display:flex;flex-wrap:wrap;padding:12px;gap:8px;background:var(--paper)}.app-fallback a{padding:10px;border:1px solid var(--line);border-radius:8px}
 .app-menu{padding:20px 16px max(24px,env(safe-area-inset-bottom));max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px)}
 .content,.author-content{width:100%;max-width:720px;margin:0 auto;padding:22px max(16px,env(safe-area-inset-right)) calc(104px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
 .grid,.split,.split-grid,.cards,.author-dashboard-grid,.form-grid{min-width:0;gap:14px}
 .split,.split-grid,.dashboard-split,.lower,.author-dashboard-grid,.cards,.form-grid{grid-template-columns:minmax(0,1fr)}
 .grid>*,.split>*,.split-grid>*,.cards>*,.form-grid>*,.card>*,.panel>*,.book>*,.dashboard-heading>*,.author-welcome>*{min-width:0}
 .card,.panel{padding:16px;border-radius:18px;margin-bottom:16px;min-width:0;max-width:100%}
 .card h2,.panel h2{font-size:1.1rem;line-height:1.4}.card h3,.panel h3{font-size:1rem;line-height:1.4}
 h1,h2,h3,p,.muted,.note,.flash,.reply,.feature-list,.stat strong,.legend b{overflow-wrap:anywhere}
 .title-row,.dashboard-heading,.author-welcome{display:flex;flex-direction:column;align-items:stretch;gap:14px;margin-bottom:20px}
 .title-row h1,.dashboard-heading .title-row h1,.author-welcome h1{font-size:1.55rem;line-height:1.25;margin:6px 0 8px}
 .title-row .muted,.author-welcome .muted{font-size:.875rem;line-height:1.6}.eyebrow{font-size:.75rem;letter-spacing:.12em}
 .dashboard-heading .title-row{margin:0}.dashboard-heading form{width:100%}.dashboard-heading label{width:100%;margin:0}.dashboard-heading label span{font-size:.875rem}
 .title-row>.btn{align-self:flex-start}.author-welcome>.btn{display:none}
 .metric-grid,.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}
 .metric{display:flex;flex-direction:column;align-items:flex-start;padding:14px;min-height:160px;border-radius:18px;gap:0}
 .metric-icon{position:static;width:34px;height:34px;border-radius:10px;margin-bottom:10px}.metric-icon .nav-icon{width:19px;height:19px}
 .metric>span,.stat>span{font-size:.875rem;line-height:1.4;font-weight:600}
 .metric strong,.stat strong{font-size:1.35rem;line-height:1.3;margin-top:6px;font-variant-numeric:tabular-nums;max-width:100%;overflow-wrap:anywhere}
 .metric small{font-size:.75rem;line-height:1.45;margin-top:6px}.stat{min-height:100px}.stats>.stat{margin-bottom:0}.stats>.stat:last-child:nth-child(odd){grid-column:1/-1}
 .panel-head{gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.panel-head h2{font-size:1rem}.panel-head p{font-size:.875rem}.panel-head>div{min-width:0;flex:1}.panel-head>.btn{flex:none}
 .chart{height:218px;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;padding:10px 0 20px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 49px,#edf0f5 50px)}
 .chart-col{min-width:0;gap:10px}.chart-bar{width:70%;max-width:24px}.chart-col span{font-size:.75rem;line-height:1;transform:rotate(-45deg);white-space:nowrap}
 .donut-row{gap:20px;align-items:center}.donut{width:120px;height:120px;flex:none}.donut:after{width:80px;height:80px}.donut b{font-size:1.25rem}.donut span{font-size:.75rem;margin-top:-29px}
 .legend{min-width:0}.legend span,.royalty-total span,.author-payment>span{font-size:.875rem}.legend b{font-size:1rem}.royalty-total strong,.author-payment>strong{font-size:1.65rem}
 .circle-action{width:44px;height:44px;flex:none}.quick-grid{grid-template-columns:minmax(0,1fr);gap:10px}.quick{padding:14px;align-items:center}.quick b{font-size:.875rem}.quick small{font-size:.75rem}.quick i{width:36px;height:36px;flex:none}
 input,select,textarea{font-size:1rem;min-height:48px;max-width:100%;min-width:0;padding:12px;border-radius:12px;scroll-margin:90px 0 110px}input[type=file]{font-size:.875rem;overflow:hidden}input[type=file]::file-selector-button{font:inherit;padding:8px;border:0;border-radius:6px;margin-right:8px;max-width:100%}
 input[type=hidden]{display:none}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:20px;flex:none;accent-color:var(--brand)}
 label{font-size:.875rem;line-height:1.5}.check-line{min-height:44px}.btn{min-height:44px;justify-content:center;font-size:.875rem;line-height:1.4;padding:11px 14px;border-radius:12px;max-width:100%;white-space:normal}
 .toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.toolbar>input,.toolbar>select,.toolbar>label,.toolbar>form{width:100%;flex:1 1 100%;min-width:0}.toolbar input,.toolbar select{min-width:0}.toolbar>.btn{flex:1 1 auto}
 .actions{gap:10px}.actions>.btn,.actions>form{flex:1 1 auto}.actions form .btn{width:100%}.form-grid+button,details form>button{margin-top:16px}.form-actions{align-items:stretch}.form-actions .btn{width:100%}
 .tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;max-width:100%;padding:2px 1px 8px;scrollbar-width:thin;scroll-snap-type:x proximity}.tabs a{flex:none;min-height:44px;display:flex;align-items:center;font-size:.875rem;scroll-snap-align:start}
 .book{grid-template-columns:80px minmax(0,1fr);gap:14px;align-items:start}.book .cover{width:80px!important;height:120px!important;max-width:100%;object-fit:cover;border-radius:10px}.book h2,.book h3{margin:8px 0;font-size:1.05rem}.book p{font-size:.875rem;line-height:1.7;margin:10px 0}.book .actions{display:flex;flex-direction:column}.book dl{display:flex;flex-wrap:wrap;gap:12px;font-size:.875rem}.book dl dd{margin:0;font-weight:700}.book dl dt{font-size:.75rem;color:var(--muted)}
 .author-book-card>div>b{display:block;font-size:.875rem}.badge{font-size:.75rem;white-space:normal}.reply{padding:14px;white-space:normal}.reply small{font-size:.75rem}.feature-list{padding-left:20px;font-size:.875rem;line-height:1.75}.feature-list li{margin-bottom:7px}
 details summary{min-height:44px;font-size:.875rem;padding:10px 0}details[open]>summary{margin-bottom:12px}.note{font-size:.875rem}.flash{font-size:.875rem;line-height:1.6}.empty{font-size:.875rem;padding:24px 12px}
 .section-heading{flex-direction:column;align-items:stretch;gap:16px}.brand-preview{width:100%;min-width:0}.field-help{font-size:.75rem;line-height:1.5}.theme-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.theme-choice{padding:14px;min-height:90px}.theme-choice b{font-size:.875rem}.theme-choice input{width:20px;height:20px;min-height:20px}.color-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.color-grid input[type=color]{height:48px}
 .table-wrap{max-width:100%;min-width:0;-webkit-overflow-scrolling:touch}.table{font-size:.875rem}.table th{font-size:.75rem}
 /* Table data becomes labelled cards without removing any fields or actions. */
 .table.app-card-table{display:block;white-space:normal;width:100%}.app-card-table thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .app-card-table tbody,.app-card-table tfoot{display:block;width:100%}.app-card-table tbody tr,.app-card-table tfoot tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:14px}
 .app-card-table tr:last-child{margin-bottom:0}.app-card-table tr[hidden]{display:none!important}
 .app-card-table td{display:block;min-width:0;padding:0;border:0;text-align:left;overflow-wrap:anywhere;word-break:normal;white-space:normal;font-size:.875rem}
 .app-card-table td:first-child{grid-column:1/-1;background:var(--bg);margin:-14px -14px 0;padding:12px 14px;border-radius:14px 14px 0 0}.app-card-table td.app-cell-actions,.app-card-table td[colspan]{grid-column:1/-1}
 .app-card-table td.app-cell-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:12px}.app-card-table .app-cell-actions .btn{flex:1 1 auto}.app-card-table .app-cell-actions form{flex:1 1 auto}.app-card-table .app-cell-actions form .btn{width:100%}
 .app-card-table .app-cell-label{display:block;color:var(--muted);font-size:.75rem;font-weight:600;margin-bottom:3px}.app-card-table .app-cell-actions .app-cell-label{width:100%}.app-card-table td small{font-size:.75rem}.app-card-table td.empty{padding:18px;background:var(--bg);text-align:center}
 .login-page{min-height:100svh;padding:24px 16px max(24px,env(safe-area-inset-bottom));align-items:center}.login.card{width:100%;max-width:420px;padding:26px 20px;border-radius:24px}.login .brand b{font-size:1.2rem}.login .brand small{font-size:.75rem}.login .muted a{display:inline-flex;min-height:44px;align-items:center;font-size:.875rem}
}
@media(max-width:360px){.content,.author-content{padding-left:12px;padding-right:12px}.metric{padding:12px}.metric strong{font-size:1.2rem}.app-menu-links{grid-template-columns:1fr}.donut{width:104px;height:104px}.donut:after{width:70px;height:70px}.donut-row{gap:12px}.book{grid-template-columns:64px minmax(0,1fr);gap:10px}.book .cover{width:64px!important;height:96px!important}}
@media(max-width:900px) and (orientation:landscape) and (max-height:520px){.app-header{position:relative}.app-tabs>a,.app-tabs>button{min-height:48px}.app-menu{max-height:96dvh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{.app-header,.app-tabs,.app-menu,.app-fallback{display:none!important}.content,.author-content{padding:0}.app-cell-label{display:none}}
