@charset "UTF-8";
:root{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  color:#30362e;
  background:#f7f7f2;
  font-size:14px;
  line-height:1.6;
  --ink:#303b2c;
  --olive:#697356;
  --muted:#82867c;
  --line:#e8e9e1;
  --paper:#fff;
  --accent:#a56749
}
*{
  box-sizing:border-box
}
body{
  margin:0
}
button,input,textarea,select{
  font:inherit
}
button,a,input,select,textarea{
  -webkit-tap-highlight-color:transparent
}
button,a{
  transition:background .15s,color .15s
}
button{
  cursor:pointer
}
button:disabled,input:disabled,textarea:disabled,select:disabled{
  cursor:default;
  opacity:.65
}
a{
  color:inherit;
  text-decoration:none
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid #8c986c;
  outline-offset:3px
}
h1,h2,h3,p{
  margin-top:0
}
h1{
  font-family:"Songti SC","STSong",serif;
  font-weight:600;
  letter-spacing:.02em;
  font-size:32px;
  line-height:1.4;
  margin-bottom:12px
}
h2{
  font-size:16px;
  font-weight:600;
  margin:0
}
h3{
  font-size:16px
}
button{
  border:0
}
.primary,.secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  border-radius:5px;
  padding:11px 20px;
  font-size:13px;
  font-weight:500;
  white-space:nowrap;
  border:1px solid transparent
}
.primary{
  background:var(--ink);
  color:#fff
}
.primary:hover{
  background:#49533d
}
.secondary{
  background:#fff;
  border-color:#dfe2d6;
  color:#505746
}
.secondary:hover{
  background:#f2f4ec
}
.small{
  font-size:12px;
  padding:6px 12px
}
.text-button{
  background:transparent;
  padding:4px 0;
  color:#72796a;
  font-size:12px
}
.text-button:hover{
  color:#2b3824;
  text-decoration:underline
}
input:not([type=checkbox]),select,textarea{
  display:block;
  width:100%;
  border:1px solid #dfe2d8;
  border-radius:4px;
  padding:10px 12px;
  background:#fff;
  color:var(--ink);
  min-height:42px
}
textarea{
  resize:vertical;
  line-height:1.8
}
input::placeholder,textarea::placeholder{
  color:#a4a79b
}
input[type=checkbox]{
  accent-color:#5c6b48;
  width:16px;
  height:16px
}
.muted{
  color:var(--muted)
}
.eyebrow{
  display:block;
  font-size:10px;
  letter-spacing:.16em;
  color:var(--olive);
  font-weight:600;
  margin-bottom:16px
}
.mono,.nav-number,.row-index,.version{
  font-family:"SFMono-Regular",Consolas,monospace
}
.brand{
  display:block;
  font-family:"Songti SC","STSong",serif;
  font-size:25px;
  letter-spacing:.16em;
  font-weight:600
}
.brand span{
  display:block;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;
  font-size:9px;
  letter-spacing:.12em;
  font-weight:400;
  color:#929b85;
  margin-top:7px
}
.loading{
  padding:80px;
  color:var(--muted);
  text-align:center
}
.login-layout{
  display:grid;
  grid-template-columns:48% 52%;
  min-height:100vh
}
.login-story{
  position:relative;
  overflow:hidden;
  background:#e9ecdf;
  padding:55px 70px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:800px
}
.login-story>div{
  z-index:1;
  margin-top:120px;
  margin-bottom:130px
}
.login-story h1{
  font-size:43px;
  line-height:1.65;
  letter-spacing:.08em;
  margin-bottom:25px
}
.login-story p{
  font-size:14px;
  line-height:2.2;
  color:#707a61
}
.login-story footer{
  font-size:11px;
  letter-spacing:.35em;
  color:#7b856d;
  z-index:1
}
.river{
  position:absolute;
  width:600px;
  height:550px;
  right:-160px;
  bottom:-100px;
  color:#b5bf9f;
  pointer-events:none
}
.river path{
  stroke:currentColor;
  stroke-width:1.4
}
.login-panel{
  display:grid;
  place-items:center;
  background:#fbfbf8;
  padding:60px
}
.login-form{
  width:100%;
  max-width:350px
}
.login-form h2{
  font-family:"Songti SC","STSong",serif;
  font-size:31px;
  letter-spacing:.07em;
  margin-bottom:10px
}
.login-form .muted{
  font-size:13px;
  margin-bottom:30px
}
.login-form label{
  display:block;
  margin:20px 0 8px;
  font-size:12px;
  color:#666d5d
}
.login-submit{
  margin-top:30px;
  width:100%;
  justify-content:space-between;
  padding:13px 20px
}
.login-footer{
  font-size:10px;
  color:#9b9f94;
  text-align:center;
  margin-top:35px;
  letter-spacing:.08em
}
.demo-note{
  background:#eff2e8;
  border-left:2px solid #9ba682;
  padding:12px 15px;
  color:#69745b;
  font-size:12px;
  line-height:1.9;
  margin:20px 0
}
.password-page{
  display:grid;
  place-items:center;
  min-height:100vh;
  padding:40px
}
.password-page .brand{
  margin-bottom:50px
}
.password-page h1{
  font-size:27px
}
.password-page form>button{
  margin-top:24px;
  margin-right:10px
}
.workspace{
  display:grid;
  grid-template-columns:225px minmax(0,1fr);
  min-height:100vh
}
.sidebar{
  background:#eef0e6;
  position:sticky;
  top:0;
  height:100vh;
  padding:34px 23px 20px;
  display:flex;
  flex-direction:column;
  border-right:1px solid #e1e5d7;
  overflow:auto
}
.sidebar .brand{
  padding:0 9px;
  font-size:23px
}
.workspace-label{
  margin:30px 8px 5px;
  padding:13px 0;
  border-top:1px solid #dce0d1;
  border-bottom:1px solid #dce0d1;
  font-size:11px;
  color:#7d856f
}
.workspace-dot{
  display:inline-block;
  background:#899774;
  width:6px;
  height:6px;
  border-radius:50%;
  margin-right:9px
}
.nav-group{
  margin:25px 12px 8px;
  font-size:10px;
  color:#959d87;
  letter-spacing:.12em
}
.sidebar nav a{
  display:flex;
  align-items:center;
  padding:10px 12px;
  margin:3px 0;
  gap:12px;
  font-size:12px;
  border-radius:4px;
  color:#6f7862
}
.sidebar nav a:hover{
  background:#e3e7d9
}
.sidebar nav a.active{
  background:#dfe5d3;
  color:#34452b;
  font-weight:600
}
.nav-number{
  font-size:10px;
  opacity:.6;
  min-width:18px
}
.nav-symbol{
  font-size:18px;
  line-height:1;
  min-width:18px
}
.sidebar-bottom{
  margin-top:auto;
  padding:30px 9px 0
}
.sidebar-bottom p{
  font-family:"Songti SC","STSong",serif;
  color:#8d967f;
  font-size:14px;
  letter-spacing:.08em;
  line-height:1.9;
  margin-bottom:20px
}
.version{
  font-size:9px;
  color:#99a08d
}
.workspace-main{
  min-width:0;
  display:flex;
  flex-direction:column
}
.topbar{
  height:70px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 38px;
  background:#fbfcf8;
  font-size:11px;
  color:#8a9080
}
.topbar-right{
  display:flex;
  gap:18px;
  align-items:center
}
.topbar small{
  margin-left:8px;
  color:#9ca28e;
  font-size:10px
}
.environment{
  font-size:10px;
  color:#778364;
  border:1px solid #e0e5d7;
  padding:4px 9px;
  border-radius:3px
}
#page{
  padding:42px 38px 60px;
  flex:1;
  min-width:0;
  animation:appear .25s ease-out
}
.page-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  margin-bottom:32px
}
.page-heading .eyebrow{
  margin-bottom:14px
}
.page-heading p{
  font-size:12px;
  color:#8d9285;
  margin-bottom:0
}
.paper{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:7px;
  overflow:hidden
}
.section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:22px 23px;
  border-bottom:1px solid #f0f1eb
}
.section-title .muted{
  font-size:10px
}
.stat-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-bottom:32px;
  border:1px solid var(--line);
  border-radius:7px;
  background:white
}
.stat-grid>div{
  padding:25px 27px;
  border-right:1px solid var(--line)
}
.stat-grid>div:last-child{
  border:0
}
.stat-grid>div>span{
  font-size:12px;
  color:#858d79
}
.stat-grid strong{
  display:block;
  font-family:"Songti SC","STSong",serif;
  font-size:43px;
  font-weight:500;
  line-height:1.4;
  margin-top:11px;
  color:#48533c
}
.stat-grid strong small{
  font:10px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;
  color:#969d8c;
  margin-left:10px
}
.stat-grid p{
  font-size:10px;
  color:#9ca18f;
  margin:10px 0 0
}
.overview-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:25px;
  align-items:start
}
.table-wrap{
  overflow-x:auto
}
table{
  border-collapse:collapse;
  width:100%;
  text-align:left;
  font-size:12px;
  white-space:nowrap
}
th{
  background:#fafbf7;
  color:#8d9580;
  font-size:10px;
  font-weight:400;
  padding:13px 23px;
  border-bottom:1px solid var(--line)
}
td{
  padding:20px 23px;
  border-bottom:1px solid #eff0e9;
  color:#666f5b
}
tr:last-child td{
  border-bottom:0
}
td strong{
  font-weight:500;
  color:#49553e
}
tbody tr:hover{
  background:#fcfdf9
}
.row-index{
  font-size:10px;
  color:#aeb69f;
  margin-right:15px
}
.table-link{
  font-size:11px;
  color:#697c51
}
.table-link:hover{
  color:#354627
}
.small-square{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#eff2e7;
  min-width:23px;
  height:23px;
  padding:0 7px;
  font-size:11px;
  color:#7f8c6c;
  border-radius:3px
}
.todo{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:0 23px;
  padding:17px 0;
  border-bottom:1px solid #eff0e9;
  font-size:11px;
  color:#7f8774;
  gap:15px
}
.todo strong{
  font-weight:500;
  color:#919a83
}
.todo i{
  display:inline-block;
  width:5px;
  height:5px;
  background:#b99b6b;
  border-radius:50%;
  margin-right:10px
}
.todo-panel>.field-hint{
  padding:16px 23px;
  margin:0;
  font-size:10px
}
.editorial-note{
  margin-top:23px;
  border-radius:7px;
  background:#e9eddf;
  padding:28px
}
.editorial-note h2{
  font-family:"Songti SC","STSong",serif;
  font-size:25px;
  line-height:1.7;
  font-weight:500;
  letter-spacing:.07em;
  margin-bottom:14px
}
.editorial-note p{
  font-size:11px;
  color:#838c76;
  line-height:2
}
.editorial-note>span:last-child{
  font-size:10px;
  color:#89967a
}
.note-line{
  height:1px;
  background:#d6deca;
  margin:25px 0 20px
}
.page-footer{
  margin:0 38px;
  padding:18px 0;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  color:#a1a794;
  font-size:9px;
  letter-spacing:.04em
}
.filters{
  display:flex;
  align-items:end;
  gap:16px;
  padding:24px;
  border-bottom:1px solid var(--line);
  flex-wrap:wrap
}
.filters label{
  min-width:145px;
  display:block
}
.filters label>span{
  display:block;
  font-size:10px;
  color:#919985;
  margin-bottom:8px
}
.filters input,.filters select{
  font-size:12px;
  min-height:38px;
  padding:8px 11px
}
.filters .search-field{
  flex:1;
  max-width:340px
}
.filters .secondary{
  padding:8px 20px
}
.filters .text-button{
  padding:9px 0
}
.list-summary{
  display:flex;
  justify-content:space-between;
  padding:16px 24px;
  font-size:10px;
  color:#969e89
}
.item-id{
  display:block;
  font-size:10px;
  color:#a0a88e;
  margin-top:5px
}
.badge{
  padding:4px 8px;
  font-size:10px;
  border-radius:3px;
  background:#f0f1ed;
  color:#909681;
  white-space:nowrap
}
.badge.pending{
  background:#f8f0dc;
  color:#ad8a3c
}
.badge.verified,.badge.published{
  background:#e8f1e5;
  color:#6a8a5c
}
.badge.rejected{
  background:#faede7;
  color:#b78061
}
.badge.on_hold{
  background:#eeedf3;
  color:#9384a4
}
.issue-count{
  font-size:11px;
  color:#b28c61
}
.pagination{
  text-align:center;
  padding:24px;
  border-top:1px solid var(--line)
}
.empty{
  padding:50px 24px;
  text-align:center;
  color:#a1a58f;
  font-size:12px;
  line-height:2
}
.empty h3{
  color:#727f60
}
.editor-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 285px;
  align-items:start;
  gap:24px
}
.editor-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding:0 20px;
  gap:15px
}
.editor-toolbar>div{
  display:flex;
  gap:18px
}
.tab{
  padding:20px 0;
  background:none;
  border-bottom:2px solid transparent;
  color:#939a88;
  font-size:12px
}
.tab.selected{
  border-bottom-color:#6f8055;
  color:#4b5f35
}
.editor-toolbar>span{
  color:#9aa48b;
  font-size:10px
}
.info-strip{
  font-size:11px;
  background:#f7f9f1;
  color:#919b80;
  padding:12px 24px;
  border-bottom:1px solid #edf0e5
}
.tab-panel{
  padding:25px
}
.tab-panel[hidden]{
  display:none
}
.field{
  margin-bottom:22px;
  min-width:0
}
.field>label{
  display:block;
  color:#6e785f;
  font-size:12px;
  margin-bottom:9px
}
.required{
  color:#b39161;
  font-size:13px;
  margin-left:4px
}
.field input,.field select,.field textarea{
  font-size:12px
}
.field-hint{
  display:block;
  font-size:10px;
  line-height:1.9;
  color:#a1a68f;
  margin-top:8px
}
.object,.array,.choices{
  border:1px solid #e9ece1;
  margin:0 0 24px;
  padding:18px;
  border-radius:4px;
  min-width:0
}
.object>legend,.array>legend,.choices>legend{
  font-size:12px;
  color:#6d785e;
  padding:0 7px
}
.object>.fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 18px
}
.fields>.object,.fields>.array,.fields>.choices{
  grid-column:1/-1
}
.choices>label{
  font-size:12px;
  margin:8px 14px 8px 0;
  display:inline-flex;
  align-items:center;
  gap:6px
}
.array-row{
  padding:10px 0;
  border-bottom:1px dashed #e7eadf;
  margin-bottom:15px
}
.array-row>.object{
  border:0;
  padding:0;
  margin:0
}
.array-row>.field{
  margin-bottom:4px
}
.array-row>.text-button{
  color:#b08c76
}
.boolean{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:48px
}
.boolean>label{
  margin:0
}
.form-actions{
  padding:22px 25px;
  display:flex;
  gap:20px;
  border-top:1px solid var(--line);
  position:sticky;
  bottom:0;
  background:#fffffff5
}
.editor-aside>.paper{
  margin-bottom:20px
}
.editor-aside .section-title{
  padding:18px
}
.editor-aside .section-title h2{
  font-size:13px
}
.editor-aside .field-hint{
  padding:0 18px 12px;
  margin-top:15px
}
.editor-aside .metadata{
  padding:0 18px 15px;
  margin:0
}
.metadata dt{
  color:#a1a88e;
  font-size:10px;
  margin-top:16px
}
.metadata dd{
  margin:5px 0 0;
  font-size:10px;
  color:#778568;
  overflow-wrap:anywhere
}
#workflow-actions{
  padding:18px 18px 0
}
#workflow-actions>button{
  width:100%;
  margin-bottom:10px
}
#workflow-actions>p{
  font-size:11px
}
#item-issues>.muted,#item-history>.muted{
  padding:20px;
  font-size:11px
}
.issues{
  list-style:none;
  padding:8px 18px;
  margin:0
}
.issues li{
  padding:12px 0;
  border-bottom:1px solid #f0f0e8
}
.issues li:last-child{
  border:0
}
.issues strong{
  font-size:11px;
  font-weight:400;
  color:#a58b65
}
.issues span{
  display:block;
  font-size:10px;
  color:#b1af9a;
  margin-top:5px;
  overflow-wrap:anywhere
}
.history{
  list-style:none;
  padding:0 18px
}
.history li{
  border-left:1px solid #e2e7d8;
  padding:0 0 18px 15px;
  font-size:10px
}
.history strong{
  font-weight:500;
  color:#7b8968
}
.history span,.history time{
  display:block;
  font-size:9px;
  color:#a0a78e;
  margin-top:5px
}
.error-box{
  background:#fbf1ec;
  border:1px solid #eed9cc;
  color:#a76e52;
  padding:15px 18px;
  margin:0 0 22px;
  border-radius:4px;
  font-size:12px
}
.error-box strong{
  font-weight:500
}
.error-box p{
  margin:8px 0 0
}
.error-box ul{
  padding-left:20px;
  margin-bottom:0
}
.error-text{
  color:#b07a62;
  font-size:11px
}
#notice{
  position:fixed;
  bottom:30px;
  left:50%;
  transform:translate(-50%,12px);
  padding:12px 24px;
  background:#34402f;
  color:#f3f5ed;
  font-size:12px;
  border-radius:5px;
  opacity:0;
  transition:opacity .2s,transform .2s;
  pointer-events:none;
  z-index:20;
  max-width:min(640px,90vw)
}
#notice.visible{
  opacity:1;
  transform:translate(-50%,0)
}
@keyframes appear{
  from{
    opacity:0;
    transform:translateY(6px)
  }
  to{
    opacity:1;
    transform:translateY(0)
  }
}
@media(min-width:1600px){
  #page{
    padding:50px 60px
  }
  .topbar{
    padding:0 60px
  }
  .page-footer{
    margin:0 60px
  }
  .overview-grid{
    grid-template-columns:minmax(0,1fr) 350px
  }
  .stat-grid>div{
    padding:30px 35px
  }
}
@media(max-width:1200px){
  .workspace{
    grid-template-columns:190px minmax(0,1fr)
  }
  .sidebar{
    padding-left:15px;
    padding-right:15px
  }
  #page{
    padding:30px 24px
  }
  .topbar{
    padding:0 24px
  }
  .overview-grid{
    grid-template-columns:1fr
  }
  .overview-grid>aside{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px
  }
  .editorial-note{
    margin-top:0
  }
  .stat-grid>div{
    padding:20px
  }
  .editor-layout{
    grid-template-columns:minmax(0,1fr) 250px
  }
  .page-footer{
    margin:0 24px
  }
  .topbar-right{
    gap:12px
  }
  .topbar .environment{
    display:none
  }
}
@media(max-width:850px){
  .login-layout{
    grid-template-columns:1fr
  }
  .login-story{
    min-height:260px;
    padding:30px
  }
  .login-story>div{
    margin:35px 0 0
  }
  .login-story h1{
    font-size:27px;
    line-height:1.5
  }
  .login-story p,.login-story footer,.login-story .eyebrow{
    display:none
  }
  .login-panel{
    padding:40px 25px
  }
  .workspace{
    grid-template-columns:150px minmax(0,1fr)
  }
  .sidebar .brand{
    font-size:18px;
    letter-spacing:.05em
  }
  .sidebar .brand span{
    font-size:8px
  }
  .sidebar nav a{
    font-size:11px;
    padding:10px 6px;
    gap:7px
  }
  .workspace-label{
    font-size:9px
  }
  .page-heading{
    align-items:start;
    flex-direction:column
  }
  h1{
    font-size:27px
  }
  .stat-grid{
    grid-template-columns:1fr 1fr
  }
  .stat-grid>div:nth-child(2){
    border-right:0
  }
  .stat-grid>div:nth-child(-n+2){
    border-bottom:1px solid var(--line)
  }
  .editor-layout{
    grid-template-columns:1fr
  }
  .topbar-right>span:not(.environment){
    font-size:10px
  }
  .topbar-right{
    gap:8px
  }
  .topbar small{
    display:none
  }
  .topbar{
    padding:10px 20px;
    height:auto;
    min-height:65px;
    flex-wrap:wrap;
    gap:10px
  }
  .overview-grid>aside{
    grid-template-columns:1fr
  }
  .sidebar-bottom p{
    font-size:11px
  }
  .page-footer{
    flex-direction:column;
    gap:8px
  }
  .object>.fields{
    grid-template-columns:1fr
  }
  .editor-toolbar{
    flex-wrap:wrap;
    padding-bottom:12px
  }
  .filters label{
    min-width:120px;
    flex:1
  }
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation:none!important;
    transition:none!important
  }
}

/* Asset management and content-configuration pages share the existing workspace. */
.record-id-field { padding: 24px 25px 0; }
.record-id-field label { display: block; margin-bottom: 9px; font-size: 12px; color: #6e785f; }
.choose-media { margin-top: 9px; }
.media-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; padding: 24px; }
.media-card { border: 1px solid var(--line); border-radius: 5px; overflow: hidden; background: #fff; }
.media-card:hover { background: #fafcf5; border-color: #c7d0b7; }
.media-thumb { height: 155px; background: #f0f2e9; display: grid; place-items: center; overflow: hidden; }
.media-thumb img { width: 100%; height: 100%; object-fit: contain; }
.media-thumb>span { font-family: 'Songti SC','STSong',serif; color: #929d81; font-size: 26px; }
.media-caption { padding: 17px; }
.media-caption h3 { font-size: 14px; margin: 13px 0 7px; overflow-wrap: anywhere; }
.media-caption p { font-size: 11px; color: #889277; margin-bottom: 9px; overflow-wrap: anywhere; }
.media-caption>span { font-size: 10px; color: #a0a68f; }
.media-caption .badge { margin-right: 6px; }
.rights-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; padding: 24px; }
.rights-grid label,.feedback-process label { display: block; color: #6d785e; font-size: 12px; }
.rights-grid input,.rights-grid select,.rights-grid textarea,.feedback-process textarea,.feedback-process select { margin-top: 9px; font-size: 12px; }
.rights-grid .wide { grid-column: 1/-1; }
.rights-grid .checkbox-label { display: flex; align-items: center; gap: 10px; }
.rights-grid .checkbox-label input { margin: 0; }
.upload-paper #upload-state { font-size: 11px; color: #8a9778; }
.asset-preview { padding: 24px; margin-bottom: 24px; }
.asset-preview>img { display: block; width: 100%; max-height: 420px; object-fit: contain; background: #f5f7ef; }
.asset-preview>p { font-size: 11px; margin: 20px 0 13px; color: #8b957b; overflow-wrap: anywhere; }
.asset-actions { padding: 18px; }
.asset-actions>button { display: flex; width: 100%; margin-bottom: 12px; }
.asset-actions .field-hint { margin-bottom: 0; padding: 0; }
.asset-rights .rights-grid { padding: 24px; }
.usage-list { padding: 18px; }
.usage-list>div { padding: 9px 0; border-bottom: 1px solid var(--line); }
.usage-list p { font-size: 11px; }
#media-picker { padding: 0; width: min(820px,92vw); max-height: 85vh; overflow: auto; border: 1px solid #dbe1ce; border-radius: 7px; color: var(--ink); }
#media-picker::backdrop { background: #303b2c66; }
#picker-error { padding: 0 20px; }
.picker-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; padding: 24px; }
.picker-card { padding: 0; border: 1px solid var(--line); border-radius: 4px; overflow: hidden; background: #fff; text-align: left; color: #657652; }
.picker-card:hover { border-color: #809463; background: #f5f8ef; }
.picker-card img { width: 100%; height: 115px; object-fit: contain; background: #f0f3e8; }
.picker-card>span { display: block; padding: 40px 10px; background: #f0f3e8; text-align: center; }
.picker-card strong { display: block; font-size: 12px; padding: 12px 12px 5px; overflow-wrap: anywhere; }
.picker-card small { display: block; font-size: 10px; padding: 0 12px 14px; color: #97a187; overflow-wrap: anywhere; }
.feedback-paper blockquote { margin: 24px; padding: 18px; border-left: 2px solid #bac7a1; background: #f7f9f1; font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.feedback-paper .metadata { padding: 0 24px; }
.feedback-paper .edit-target { margin: 24px; }
.feedback-process { padding: 24px; }
.feedback-process label { margin-bottom: 22px; }
.feedback-process>button { width: 100%; }
.coverage-table td:nth-child(3) { white-space: normal; min-width: 260px; }
@media(max-width:1200px) { .media-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:850px) { .media-grid,.picker-grid,.rights-grid { grid-template-columns: 1fr; } .picker-grid { gap: 12px; } }
.studio-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; align-items:start; }
.studio-form { padding:24px; margin-bottom:24px; min-width:0; }
.studio-form h2 { font-size:19px; margin:6px 0 18px; }
.studio-form h3 { font-size:14px; margin-top:24px; }
.studio-form label { display:block; margin:18px 0; font-size:12px; }
.studio-form input:not([type=checkbox]),.studio-form select,.studio-form textarea { display:block; width:100%; margin-top:8px; box-sizing:border-box; }
.studio-form input[type=checkbox] { width:auto; margin-right:9px; }
.studio-form fieldset { padding:0; margin:0; border:0; min-width:0; }
.studio-form button { margin:5px 6px 5px 0; }
.studio-form video { width:100%; max-height:330px; background:#273027; margin-top:18px; }
.studio-row { display:flex; align-items:center; gap:18px; padding:22px; border-bottom:1px solid var(--line); font-size:12px; }
.studio-row strong { flex:1; overflow-wrap:anywhere; }
.studio-chapter,.step-editor { border:1px solid var(--line); padding:16px; margin:18px 0; border-radius:4px; }
.step-editor summary { font-size:13px; cursor:pointer; overflow-wrap:anywhere; }
.geometry-canvas,#craft-canvas,#puzzle-canvas { width:100%; background:#f2f5eb; border:1px solid #dbe1ce; touch-action:none; box-sizing:border-box; }
.geometry-canvas { cursor:crosshair; }
#workshop-preview { padding-top:20px; font-size:13px; line-height:1.8; }
.json-view { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; max-height:400px; overflow:auto; }
.reference-row { border-bottom:1px solid var(--line); padding-bottom:10px; }
.reference-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.reference-grid img { width:100%; height:100px; object-fit:contain; background:#f4f6ef; }
.reference-grid span { display:block; font-size:9px; overflow-wrap:anywhere; }
.model-viewer { width:100%; min-height:80px; background:#eff2e7; margin-top:20px; overflow:hidden; }
.model-viewer canvas { display:block; max-width:100%; touch-action:none; }
.ledger { padding-left:18px; font-size:11px; line-height:2; overflow-wrap:anywhere; }
#model-checks p { padding:10px; background:#f4f6ef; font-size:12px; overflow-wrap:anywhere; }
@media(max-width:1100px) { .studio-grid { grid-template-columns:minmax(0,1fr); } }
.ops-dialog { width:min(560px,90vw); border:1px solid var(--line); border-radius:6px; padding:30px; color:var(--ink); }
.ops-dialog::backdrop { background:#27302766; }
.ops-dialog input { width:100%; font-family:monospace; }
#ops-body details { border-bottom:1px solid var(--line); padding:16px 0; }
#ops-body summary { cursor:pointer; font-size:13px; }
#connection-result { margin-top:24px; }
#connection-result>div { margin-bottom:14px; overflow-wrap:anywhere; }
#ops-body td { overflow-wrap:anywhere; }
#ops-body fieldset { min-width:0; }
.ops-tabs { margin-bottom:24px; }
.ai-source,.ai-paragraph { border-bottom:1px solid var(--line); padding:20px 0; font-size:13px; overflow-wrap:anywhere; }
.ai-paragraph blockquote { border-left:2px solid #b9c49f; margin:12px 0; padding:12px; background:#f5f7ee; }
.ai-ungrounded { background:#fcf1d7; border-left:3px solid #b48b49; padding:12px; }
.map-label { font-size:11px; color:#6b7d5c; padding:12px 0; }
.geo-canvas { width:100%; background:#f0f3e9; border:1px solid var(--line); touch-action:none; cursor:crosshair; }
.map-hint { font-size:11px; line-height:1.6; color:#738167; }
.map-dialog { width:min(920px,94vw); max-height:92vh; overflow:auto; padding:25px; border:1px solid var(--line); border-radius:6px; color:var(--ink); }
.map-dialog::backdrop { background:#27302766; }
.map-dialog form { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.map-dialog label input { display:block; width:100%; margin-top:8px; }
.map-dialog .form-actions { grid-column:1/-1; }
.graph-canvas svg { width:100%; height:auto; aspect-ratio:5/3; background:#f3f5ee; touch-action:none; }
.graph-canvas circle { fill:#71825d; stroke:white; stroke-width:2; }
.graph-canvas g { cursor:grab; }
.graph-canvas g:focus circle { stroke:#bd7e47; stroke-width:4; }
.graph-canvas text { font-size:13px; fill:#46543d; }
.graph-canvas line { stroke:#a2b28e; stroke-width:1.5; }
.graph-canvas .derived-edge { stroke:#b7c2ac; stroke-dasharray:4 4; }
